@@ -27,44 +27,39 @@ abstract class AbstractResolverTest extends TestCase
2727
2828 public function testGetAnswer ()
2929 {
30- $ soa = (new ResourceRecord ())
31- ->setName ('example.com. ' )
32- ->setClass (ClassEnum::INTERNET )
33- ->setTtl (10800 )
34- ->setType (RecordTypeEnum::TYPE_SOA )
35- ->setRdata ([
36- 'mname ' => 'example.com. ' ,
37- 'rname ' => 'postmaster.example.com. ' ,
38- 'serial ' => 2 ,
39- 'refresh ' => 3600 ,
40- 'retry ' => 7200 ,
41- 'expire ' => 10800 ,
42- 'minimum ' => 3600 ,
43- ]);
44-
45- $ aaaa = (new ResourceRecord ())
46- ->setName ('example.com. ' )
47- ->setClass (ClassEnum::INTERNET )
48- ->setTtl (7200 )
49- ->setType (RecordTypeEnum::TYPE_AAAA )
50- ->setRdata ('2001:acad:ad::32 ' );
51-
52- $ soa_query = (new ResourceRecord ())
30+ $ query [] = (new ResourceRecord ())
5331 ->setName ('example.com. ' )
5432 ->setType (RecordTypeEnum::TYPE_SOA )
5533 ->setClass (ClassEnum::INTERNET )
5634 ->setQuestion (true );
5735
58- $ aaaa_query = (new ResourceRecord ())
36+ $ query [] = (new ResourceRecord ())
5937 ->setName ('example.com. ' )
6038 ->setType (RecordTypeEnum::TYPE_AAAA )
6139 ->setClass (ClassEnum::INTERNET )
6240 ->setQuestion (true );
6341
64- $ query = [$ soa_query , $ aaaa_query ];
65- $ answer = [$ soa , $ aaaa ];
66-
67- $ this ->assertEquals ($ answer , $ this ->resolver ->getAnswer ($ query ));
42+ $ answer = $ this ->resolver ->getAnswer ($ query );
43+ $ this ->assertCount (2 , $ answer );
44+ list ($ soa , $ aaaa ) = $ answer ;
45+
46+ $ this ->assertEquals ('example.com. ' , $ soa ->getName ());
47+ $ this ->assertEquals (ClassEnum::INTERNET , $ soa ->getClass ());
48+ $ this ->assertEquals (10800 , $ soa ->getTtl ());
49+ $ this ->assertEquals (RecordTypeEnum::TYPE_SOA , $ soa ->getType ());
50+ $ this ->assertEquals ('example.com. ' , $ soa ->getRdata ()['mname ' ]);
51+ $ this ->assertEquals ('postmaster.example.com. ' , $ soa ->getRdata ()['rname ' ]);
52+ $ this ->assertEquals (2 , $ soa ->getRdata ()['serial ' ]);
53+ $ this ->assertEquals (3600 , $ soa ->getRdata ()['refresh ' ]);
54+ $ this ->assertEquals (7200 , $ soa ->getRdata ()['retry ' ]);
55+ $ this ->assertEquals (10800 , $ soa ->getRdata ()['expire ' ]);
56+ $ this ->assertEquals (3600 , $ soa ->getRdata ()['minimum ' ]);
57+
58+ $ this ->assertEquals ('example.com. ' , $ aaaa ->getName ());
59+ $ this ->assertEquals (ClassEnum::INTERNET , $ aaaa ->getClass ());
60+ $ this ->assertEquals (7200 , $ aaaa ->getTtl ());
61+ $ this ->assertEquals (RecordTypeEnum::TYPE_AAAA , $ aaaa ->getType ());
62+ $ this ->assertEquals (inet_pton ('2001:acad:ad::32 ' ), inet_pton ($ aaaa ->getRdata ()));
6863 }
6964
7065 public function testUnconfiguredRecordDoesNotResolve ()
@@ -84,19 +79,16 @@ public function testHostRecordReturnsArray()
8479 ->setType (RecordTypeEnum::TYPE_A )
8580 ->setQuestion (true );
8681
87- $ expectation [] = (new ResourceRecord ())
88- ->setName ('test2.com. ' )
89- ->setType (RecordTypeEnum::TYPE_A )
90- ->setTtl (300 )
91- ->setRdata ('111.111.111.111 ' );
92-
93- $ expectation [] = (new ResourceRecord ())
94- ->setName ('test2.com. ' )
95- ->setType (RecordTypeEnum::TYPE_A )
96- ->setTtl (300 )
97- ->setRdata ('112.112.112.112 ' );
98-
99- $ this ->assertEquals ($ expectation , $ this ->resolver ->getAnswer ($ question ));
82+ $ answer = $ this ->resolver ->getAnswer ($ question );
83+ $ this ->assertCount (2 , $ answer );
84+ $ this ->assertEquals ('test2.com. ' , $ answer [0 ]->getName ());
85+ $ this ->assertEquals (RecordTypeEnum::TYPE_A , $ answer [0 ]->getType ());
86+ $ this ->assertEquals ('111.111.111.111 ' , (string ) $ answer [0 ]->getRdata ());
87+ $ this ->assertEquals (300 , $ answer [0 ]->getTtl ());
88+ $ this ->assertEquals ('test2.com. ' , $ answer [1 ]->getName ());
89+ $ this ->assertEquals (RecordTypeEnum::TYPE_A , $ answer [1 ]->getType ());
90+ $ this ->assertEquals ('112.112.112.112 ' , (string ) $ answer [1 ]->getRdata ());
91+ $ this ->assertEquals (300 , $ answer [1 ]->getTtl ());
10092 }
10193
10294 public function testWildcardDomains ()
@@ -106,13 +98,12 @@ public function testWildcardDomains()
10698 ->setType (RecordTypeEnum::TYPE_A )
10799 ->setQuestion (true );
108100
109- $ expectation [] = (new ResourceRecord ())
110- ->setName ('badcow.subdomain.example.com. ' )
111- ->setType (RecordTypeEnum::TYPE_A )
112- ->setTtl (7200 )
113- ->setRdata ('192.168.1.42 ' );
114-
115- $ this ->assertEquals ($ expectation , $ this ->resolver ->getAnswer ($ question ));
101+ $ answer = $ this ->resolver ->getAnswer ($ question );
102+ $ this ->assertCount (1 , $ answer );
103+ $ this ->assertEquals ('badcow.subdomain.example.com. ' , $ answer [0 ]->getName ());
104+ $ this ->assertEquals (1 , $ answer [0 ]->getType ());
105+ $ this ->assertEquals ('192.168.1.42 ' , (string ) $ answer [0 ]->getRdata ());
106+ $ this ->assertEquals (7200 , $ answer [0 ]->getTtl ());
116107 }
117108
118109 /**
@@ -137,7 +128,7 @@ public function testIsAuthority()
137128
138129 public function testSrvRdata ()
139130 {
140- $ question [] = (new ResourceRecord ())
131+ $ query [] = (new ResourceRecord ())
141132 ->setName ('_ldap._tcp.example.com. ' )
142133 ->setType (RecordTypeEnum::TYPE_SRV )
143134 ->setQuestion (true );
@@ -153,6 +144,18 @@ public function testSrvRdata()
153144 'target ' => 'ldap.example.com. ' ,
154145 ]);
155146
156- $ this ->assertEquals ($ expectation , $ this ->resolver ->getAnswer ($ question ));
147+ $ answer = $ this ->resolver ->getAnswer ($ query );
148+ $ this ->assertCount (1 , $ answer );
149+
150+ $ srv = $ answer [0 ];
151+ $ this ->assertEquals ('_ldap._tcp.example.com. ' , $ srv ->getName ());
152+ $ this ->assertEquals (ClassEnum::INTERNET , $ srv ->getClass ());
153+ $ this ->assertEquals (7200 , $ srv ->getTtl ());
154+ $ this ->assertEquals (RecordTypeEnum::TYPE_SRV , $ srv ->getType ());
155+
156+ $ this ->assertEquals (1 , $ srv ->getRdata ()['priority ' ]);
157+ $ this ->assertEquals (5 , $ srv ->getRdata ()['weight ' ]);
158+ $ this ->assertEquals (389 , $ srv ->getRdata ()['port ' ]);
159+ $ this ->assertEquals ('ldap.example.com. ' , $ srv ->getRdata ()['target ' ]);
157160 }
158161}
0 commit comments