aboutsummaryrefslogtreecommitdiff
path: root/plugin/kubernetes/setup_transfer_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'plugin/kubernetes/setup_transfer_test.go')
-rw-r--r--plugin/kubernetes/setup_transfer_test.go47
1 files changed, 47 insertions, 0 deletions
diff --git a/plugin/kubernetes/setup_transfer_test.go b/plugin/kubernetes/setup_transfer_test.go
new file mode 100644
index 000000000..fce4e10c5
--- /dev/null
+++ b/plugin/kubernetes/setup_transfer_test.go
@@ -0,0 +1,47 @@
+package kubernetes
+
+import (
+ "testing"
+
+ "github.com/caddyserver/caddy"
+)
+
+func TestKubernetesParseTransfer(t *testing.T) {
+ tests := []struct {
+ input string // Corefile data as string
+ expected string
+ shouldErr bool
+ }{
+ {`kubernetes cluster.local {
+ transfer to 1.2.3.4
+ }`, "1.2.3.4:53", false},
+ {`kubernetes cluster.local {
+ transfer to 1.2.3.4:53
+ }`, "1.2.3.4:53", false},
+ {`kubernetes cluster.local {
+ transfer to *
+ }`, "*", false},
+ {`kubernetes cluster.local {
+ transfer
+ }`, "", true},
+ }
+
+ for i, tc := range tests {
+ c := caddy.NewTestController("dns", tc.input)
+ k, err := kubernetesParse(c)
+ if err != nil && !tc.shouldErr {
+ t.Fatalf("Test %d: Expected no error, got %q", i, err)
+ }
+ if err == nil && tc.shouldErr {
+ t.Fatalf("Test %d: Expected error, got none", i)
+ }
+ if err != nil && tc.shouldErr {
+ // input should error
+ continue
+ }
+
+ if k.TransferTo[0] != tc.expected {
+ t.Errorf("Test %d: Expected Transfer To to be %s, got %s", i, tc.expected, k.TransferTo[0])
+ }
+ }
+}