Add a full test server impl in this new package + tests. Move dnsrecorder into this package as well and finish up the commented out tests that were left in the old dnsrecorder package. Update all callers and tests.
50 lines
1.5 KiB
Go
50 lines
1.5 KiB
Go
package dnstest
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/miekg/dns"
|
|
)
|
|
|
|
type responseWriter struct{ dns.ResponseWriter }
|
|
|
|
func (r *responseWriter) WriteMsg(m *dns.Msg) error { return nil }
|
|
func (r *responseWriter) Write(buf []byte) (int, error) { return len(buf), nil }
|
|
|
|
func TestNewRecorder(t *testing.T) {
|
|
w := &responseWriter{}
|
|
record := NewRecorder(w)
|
|
if record.ResponseWriter != w {
|
|
t.Fatalf("Expected Response writer in the Recording to be same as the one sent\n")
|
|
}
|
|
if record.Rcode != dns.RcodeSuccess {
|
|
t.Fatalf("Expected recorded status to be dns.RcodeSuccess (%d) , but found %d\n ", dns.RcodeSuccess, record.Rcode)
|
|
}
|
|
}
|
|
|
|
func TestWriteMsg(t *testing.T) {
|
|
w := &responseWriter{}
|
|
record := NewRecorder(w)
|
|
responseTestName := "testmsg.example.org."
|
|
responseTestMsg := new(dns.Msg)
|
|
responseTestMsg.SetQuestion(responseTestName, dns.TypeA)
|
|
|
|
record.WriteMsg(responseTestMsg)
|
|
if record.Len != responseTestMsg.Len() {
|
|
t.Fatalf("Expected the bytes written counter to be %d, but instead found %d\n", responseTestMsg.Len(), record.Len)
|
|
}
|
|
if x := record.Msg.Question[0].Name; x != responseTestName {
|
|
t.Fatalf("Expected Msg Qname to be %s , but found %s\n", responseTestName, x)
|
|
}
|
|
}
|
|
|
|
func TestWrite(t *testing.T) {
|
|
w := &responseWriter{}
|
|
record := NewRecorder(w)
|
|
responseTest := []byte("testmsg.example.org.")
|
|
|
|
record.Write(responseTest)
|
|
if record.Len != len(responseTest) {
|
|
t.Fatalf("Expected the bytes written counter to be %d, but instead found %d\n", len(responseTest), record.Len)
|
|
}
|
|
}
|