@@ -27,44 +27,39 @@ abstract class AbstractResolverTest extends TestCase
27
27
28
28
public function testGetAnswer ()
29
29
{
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 ())
53
31
->setName ('example.com. ' )
54
32
->setType (RecordTypeEnum::TYPE_SOA )
55
33
->setClass (ClassEnum::INTERNET )
56
34
->setQuestion (true );
57
35
58
- $ aaaa_query = (new ResourceRecord ())
36
+ $ query [] = (new ResourceRecord ())
59
37
->setName ('example.com. ' )
60
38
->setType (RecordTypeEnum::TYPE_AAAA )
61
39
->setClass (ClassEnum::INTERNET )
62
40
->setQuestion (true );
63
41
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 ()));
68
63
}
69
64
70
65
public function testUnconfiguredRecordDoesNotResolve ()
@@ -84,19 +79,16 @@ public function testHostRecordReturnsArray()
84
79
->setType (RecordTypeEnum::TYPE_A )
85
80
->setQuestion (true );
86
81
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 ());
100
92
}
101
93
102
94
public function testWildcardDomains ()
@@ -106,13 +98,12 @@ public function testWildcardDomains()
106
98
->setType (RecordTypeEnum::TYPE_A )
107
99
->setQuestion (true );
108
100
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 ());
116
107
}
117
108
118
109
/**
@@ -137,7 +128,7 @@ public function testIsAuthority()
137
128
138
129
public function testSrvRdata ()
139
130
{
140
- $ question [] = (new ResourceRecord ())
131
+ $ query [] = (new ResourceRecord ())
141
132
->setName ('_ldap._tcp.example.com. ' )
142
133
->setType (RecordTypeEnum::TYPE_SRV )
143
134
->setQuestion (true );
@@ -153,6 +144,18 @@ public function testSrvRdata()
153
144
'target ' => 'ldap.example.com. ' ,
154
145
]);
155
146
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 ' ]);
157
160
}
158
161
}
0 commit comments