diff options
Diffstat (limited to 'middleware/cache/setup_test.go')
-rw-r--r-- | middleware/cache/setup_test.go | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/middleware/cache/setup_test.go b/middleware/cache/setup_test.go new file mode 100644 index 000000000..493ade5a7 --- /dev/null +++ b/middleware/cache/setup_test.go @@ -0,0 +1,71 @@ +package cache + +import ( + "testing" + "time" + + "github.com/mholt/caddy" +) + +func TestSetup(t *testing.T) { + tests := []struct { + input string + shouldErr bool + expectedNcap int + expectedPcap int + expectedNttl time.Duration + expectedPttl time.Duration + }{ + {`cache`, false, defaultCap, defaultCap, maxNTTL, maxTTL}, + {`cache {}`, false, defaultCap, defaultCap, maxNTTL, maxTTL}, + {`cache example.nl { + positive 10 + }`, false, defaultCap, 10, maxNTTL, maxTTL}, + {`cache example.nl { + positive 10 + negative 10 15 + }`, false, 10, 10, 15 * time.Second, maxTTL}, + {`cache 25 example.nl { + positive 10 + negative 10 15 + }`, false, 10, 10, 15 * time.Second, 25 * time.Second}, + {`cache aaa example.nl`, false, defaultCap, defaultCap, maxNTTL, maxTTL}, + + // fails + {`cache example.nl { + positive + negative 10 15 + }`, true, defaultCap, defaultCap, maxTTL, maxTTL}, + {`cache example.nl { + positive 15 + negative aaa + }`, true, defaultCap, defaultCap, maxTTL, maxTTL}, + } + for i, test := range tests { + c := caddy.NewTestController("dns", test.input) + ca, err := cacheParse(c) + if test.shouldErr && err == nil { + t.Errorf("Test %v: Expected error but found nil", i) + continue + } else if !test.shouldErr && err != nil { + t.Errorf("Test %v: Expected no error but found error: %v", i, err) + continue + } + if test.shouldErr && err != nil { + continue + } + + if ca.ncap != test.expectedNcap { + t.Errorf("Test %v: Expected ncap %v but found: %v", i, test.expectedNcap, ca.ncap) + } + if ca.pcap != test.expectedPcap { + t.Errorf("Test %v: Expected pcap %v but found: %v", i, test.expectedPcap, ca.pcap) + } + if ca.nttl != test.expectedNttl { + t.Errorf("Test %v: Expected nttl %v but found: %v", i, test.expectedNttl, ca.nttl) + } + if ca.pttl != test.expectedPttl { + t.Errorf("Test %v: Expected pttl %v but found: %v", i, test.expectedPttl, ca.pttl) + } + } +} |