aboutsummaryrefslogtreecommitdiff
path: root/plugin/pkg/replacer/replacer_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'plugin/pkg/replacer/replacer_test.go')
-rw-r--r--plugin/pkg/replacer/replacer_test.go61
1 files changed, 61 insertions, 0 deletions
diff --git a/plugin/pkg/replacer/replacer_test.go b/plugin/pkg/replacer/replacer_test.go
new file mode 100644
index 000000000..95c3bbd52
--- /dev/null
+++ b/plugin/pkg/replacer/replacer_test.go
@@ -0,0 +1,61 @@
+package replacer
+
+import (
+ "testing"
+
+ "github.com/coredns/coredns/plugin/pkg/dnsrecorder"
+ "github.com/coredns/coredns/plugin/test"
+
+ "github.com/miekg/dns"
+)
+
+func TestNewReplacer(t *testing.T) {
+ w := dnsrecorder.New(&test.ResponseWriter{})
+
+ r := new(dns.Msg)
+ r.SetQuestion("example.org.", dns.TypeHINFO)
+ r.MsgHdr.AuthenticatedData = true
+
+ replaceValues := New(r, w, "")
+
+ switch v := replaceValues.(type) {
+ case replacer:
+
+ if v.replacements["{type}"] != "HINFO" {
+ t.Errorf("Expected type to be HINFO, got %q", v.replacements["{type}"])
+ }
+ if v.replacements["{name}"] != "example.org." {
+ t.Errorf("Expected request name to be example.org., got %q", v.replacements["{name}"])
+ }
+ if v.replacements["{size}"] != "29" { // size of request
+ t.Errorf("Expected size to be 29, got %q", v.replacements["{size}"])
+ }
+
+ default:
+ t.Fatal("Return Value from New Replacer expected pass type assertion into a replacer type\n")
+ }
+}
+
+func TestSet(t *testing.T) {
+ w := dnsrecorder.New(&test.ResponseWriter{})
+
+ r := new(dns.Msg)
+ r.SetQuestion("example.org.", dns.TypeHINFO)
+ r.MsgHdr.AuthenticatedData = true
+
+ repl := New(r, w, "")
+
+ repl.Set("name", "coredns.io.")
+ repl.Set("type", "A")
+ repl.Set("size", "20")
+
+ if repl.Replace("This name is {name}") != "This name is coredns.io." {
+ t.Error("Expected name replacement failed")
+ }
+ if repl.Replace("This type is {type}") != "This type is A" {
+ t.Error("Expected type replacement failed")
+ }
+ if repl.Replace("The request size is {size}") != "The request size is 20" {
+ t.Error("Expected size replacement failed")
+ }
+}