aboutsummaryrefslogtreecommitdiff
path: root/plugin/pkg/dnstest/multirecorder_test.go
diff options
context:
space:
mode:
authorGravatar Miek Gieben <miek@miek.nl> 2017-12-22 08:54:27 +0000
committerGravatar GitHub <noreply@github.com> 2017-12-22 08:54:27 +0000
commit1f81d154ed0c5dbebdc3395425d2f54783da6094 (patch)
tree7fcca3db0933536beb1ee2ab6374023691907226 /plugin/pkg/dnstest/multirecorder_test.go
parent08076e5284e3d4461f86b75847db0e85d24927fe (diff)
downloadcoredns-1f81d154ed0c5dbebdc3395425d2f54783da6094.tar.gz
coredns-1f81d154ed0c5dbebdc3395425d2f54783da6094.tar.zst
coredns-1f81d154ed0c5dbebdc3395425d2f54783da6094.zip
dnstest: add multirecorder (#1326)
* dnstest: add multirecorder This adds a new recorder that captures all messages written to it. This can be useful when, for instance, testing AXFR which can write muliple messages back to the client. * docs
Diffstat (limited to 'plugin/pkg/dnstest/multirecorder_test.go')
-rw-r--r--plugin/pkg/dnstest/multirecorder_test.go39
1 files changed, 39 insertions, 0 deletions
diff --git a/plugin/pkg/dnstest/multirecorder_test.go b/plugin/pkg/dnstest/multirecorder_test.go
new file mode 100644
index 000000000..756b635ac
--- /dev/null
+++ b/plugin/pkg/dnstest/multirecorder_test.go
@@ -0,0 +1,39 @@
+package dnstest
+
+import (
+ "testing"
+
+ "github.com/miekg/dns"
+)
+
+func TestMultiWriteMsg(t *testing.T) {
+ w := &responseWriter{}
+ record := NewMultiRecorder(w)
+
+ responseTestName := "testmsg.example.org."
+ responseTestMsg := new(dns.Msg)
+ responseTestMsg.SetQuestion(responseTestName, dns.TypeA)
+
+ record.WriteMsg(responseTestMsg)
+ record.WriteMsg(responseTestMsg)
+
+ if len(record.Msgs) != 2 {
+ t.Fatalf("Expected 2 messages to be written, but instead found %d\n", len(record.Msgs))
+
+ }
+ if record.Len != responseTestMsg.Len()*2 {
+ t.Fatalf("Expected the bytes written counter to be %d, but instead found %d\n", responseTestMsg.Len()*2, record.Len)
+ }
+}
+
+func TestMultiWrite(t *testing.T) {
+ w := &responseWriter{}
+ record := NewRecorder(w)
+ responseTest := []byte("testmsg.example.org.")
+
+ record.Write(responseTest)
+ record.Write(responseTest)
+ if record.Len != len(responseTest)*2 {
+ t.Fatalf("Expected the bytes written counter to be %d, but instead found %d\n", len(responseTest)*2, record.Len)
+ }
+}