| 
									
										
										
										
											2017-07-24 23:12:50 +02:00
										 |  |  | package msg
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | import (
 | 
					
						
							|  |  |  | 	"net"
 | 
					
						
							|  |  |  | 	"reflect"
 | 
					
						
							|  |  |  | 	"testing"
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-09-14 09:36:06 +01:00
										 |  |  | 	"github.com/coredns/coredns/plugin/test"
 | 
					
						
							| 
									
										
										
										
											2017-07-24 23:12:50 +02:00
										 |  |  | 	"github.com/coredns/coredns/request"
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	tap "github.com/dnstap/golang-dnstap"
 | 
					
						
							|  |  |  | 	"github.com/miekg/dns"
 | 
					
						
							|  |  |  | )
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-03-01 03:19:01 +01:00
										 |  |  | func testRequest(t *testing.T, expected Builder, r request.Request) {
 | 
					
						
							|  |  |  | 	d := Builder{}
 | 
					
						
							|  |  |  | 	d.Addr(r.W.RemoteAddr())
 | 
					
						
							| 
									
										
										
										
											2017-07-24 23:12:50 +02:00
										 |  |  | 	if d.SocketProto != expected.SocketProto ||
 | 
					
						
							|  |  |  | 		d.SocketFam != expected.SocketFam ||
 | 
					
						
							|  |  |  | 		!reflect.DeepEqual(d.Address, expected.Address) ||
 | 
					
						
							|  |  |  | 		d.Port != expected.Port {
 | 
					
						
							| 
									
										
										
										
											2018-05-07 22:47:25 +01:00
										 |  |  | 		t.Fatalf("Expected: %v, have: %v", expected, d)
 | 
					
						
							| 
									
										
										
										
											2017-07-24 23:12:50 +02:00
										 |  |  | 		return
 | 
					
						
							|  |  |  | 	}
 | 
					
						
							|  |  |  | }
 | 
					
						
							|  |  |  | func TestRequest(t *testing.T) {
 | 
					
						
							| 
									
										
										
										
											2018-03-01 03:19:01 +01:00
										 |  |  | 	testRequest(t, Builder{
 | 
					
						
							| 
									
										
										
										
											2017-07-24 23:12:50 +02:00
										 |  |  | 		SocketProto: tap.SocketProtocol_UDP,
 | 
					
						
							|  |  |  | 		SocketFam:   tap.SocketFamily_INET,
 | 
					
						
							|  |  |  | 		Address:     net.ParseIP("10.240.0.1"),
 | 
					
						
							|  |  |  | 		Port:        40212,
 | 
					
						
							|  |  |  | 	}, testingRequest())
 | 
					
						
							|  |  |  | }
 | 
					
						
							|  |  |  | func testingRequest() request.Request {
 | 
					
						
							|  |  |  | 	m := new(dns.Msg)
 | 
					
						
							|  |  |  | 	m.SetQuestion("example.com.", dns.TypeA)
 | 
					
						
							|  |  |  | 	m.SetEdns0(4097, true)
 | 
					
						
							|  |  |  | 	return request.Request{W: &test.ResponseWriter{}, Req: m}
 | 
					
						
							|  |  |  | }
 |