diff options
author | 2016-10-02 15:58:01 +0100 | |
---|---|---|
committer | 2016-10-02 15:58:01 +0100 | |
commit | 4096c4906d5835292b9968d5261b91a1db9d89b6 (patch) | |
tree | b17d7048efc43fdb507410520db3a6951de7f0cb /middleware/file/setup_test.go | |
parent | e54c232c8c97fb163647c697e921e6f69846e304 (diff) | |
download | coredns-4096c4906d5835292b9968d5261b91a1db9d89b6.tar.gz coredns-4096c4906d5835292b9968d5261b91a1db9d89b6.tar.zst coredns-4096c4906d5835292b9968d5261b91a1db9d89b6.zip |
Pr 311 2 (#312)
* Add a setup test for middleware/file
This fix adds a setup test for middleware/file so that there is
a basic coverage for the Corefile processing of middleware/file.
This fix is related to 308 (Will look into it).
Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
* middleware/file: use helper function for test
Fixup setup_test.go and use the test.TempFile function to make things
somewhat shorter.
Use clean up the use of testing.T in TempFile - it is not used.
Diffstat (limited to 'middleware/file/setup_test.go')
-rw-r--r-- | middleware/file/setup_test.go | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/middleware/file/setup_test.go b/middleware/file/setup_test.go new file mode 100644 index 000000000..d2cb1cc60 --- /dev/null +++ b/middleware/file/setup_test.go @@ -0,0 +1,65 @@ +package file + +import ( + "testing" + + "github.com/miekg/coredns/middleware/test" + + "github.com/mholt/caddy" +) + +func TestFileParse(t *testing.T) { + zoneFileName1, rm, err := test.TempFile(".", dbMiekNL) + if err != nil { + t.Fatal(err) + } + defer rm() + + zoneFileName2, rm, err := test.TempFile(".", dbDnssexNLSigned) + if err != nil { + t.Fatal(err) + } + defer rm() + + tests := []struct { + inputFileRules string + shouldErr bool + expectedZones Zones + }{ + { + `file`, + true, + Zones{}, + }, + { + `file ` + zoneFileName1 + ` miek.nl.`, + false, + Zones{Names: []string{"miek.nl."}}, + }, + { + `file ` + zoneFileName2 + ` dnssex.nl.`, + false, + Zones{Names: []string{"dnssex.nl."}}, + }, + } + + for i, test := range tests { + c := caddy.NewTestController("file", test.inputFileRules) + actualZones, err := fileParse(c) + + if err == nil && test.shouldErr { + t.Fatalf("Test %d expected errors, but got no error", i) + } else if err != nil && !test.shouldErr { + t.Fatalf("Test %d expected no errors, but got '%v'", i, err) + } else { + if len(actualZones.Names) != len(test.expectedZones.Names) { + t.Fatalf("Test %d expected %v, got %v", i, test.expectedZones.Names, actualZones.Names) + } + for j, name := range test.expectedZones.Names { + if actualZones.Names[j] != name { + t.Fatalf("Test %d expected %v for %d th zone, got %v", i, name, j, actualZones.Names[j]) + } + } + } + } +} |