@@ -465,6 +465,49 @@ public function testLookupReturnsApexAAAARecord(): void
465465 $ this ->assertSame ($ aaaaRecord , $ response ->answers [0 ]);
466466 }
467467
468+ public function testLookupReturnsSoaAnswerForApexSoaQueryWithRecords (): void
469+ {
470+ $ soa = new Record (
471+ 'example.com ' ,
472+ Record::TYPE_SOA ,
473+ ttl: 300 ,
474+ rdata: 'ns1.appwrite.zone. team@appwrite.io. 1761705275 3600 600 86400 300 '
475+ );
476+ $ aRecord = new Record ('example.com ' , Record::TYPE_A , ttl: 3600 , rdata: '1.1.1.1 ' );
477+ $ zone = new Zone ('example.com ' , [$ aRecord ], $ soa );
478+
479+ $ question = new Question ('example.com ' , Record::TYPE_SOA );
480+ $ query = Message::query ($ question );
481+ $ response = Resolver::lookup ($ query , $ zone );
482+
483+ $ this ->assertSame (Message::RCODE_NOERROR , $ response ->header ->responseCode );
484+ $ this ->assertCount (1 , $ response ->answers );
485+ $ this ->assertSame ($ soa , $ response ->answers [0 ]);
486+ $ this ->assertTrue ($ response ->header ->authoritative );
487+ $ this ->assertFalse ($ response ->header ->recursionAvailable );
488+ }
489+
490+ public function testLookupReturnsSoaAnswerForApexSoaQueryWithNoRecords (): void
491+ {
492+ $ soa = new Record (
493+ 'example.com ' ,
494+ Record::TYPE_SOA ,
495+ ttl: 300 ,
496+ rdata: 'ns1.appwrite.zone. team@appwrite.io. 1761705275 3600 600 86400 300 '
497+ );
498+ $ zone = new Zone ('example.com ' , [], $ soa );
499+
500+ $ question = new Question ('example.com ' , Record::TYPE_SOA );
501+ $ query = Message::query ($ question );
502+ $ response = Resolver::lookup ($ query , $ zone );
503+
504+ $ this ->assertSame (Message::RCODE_NOERROR , $ response ->header ->responseCode );
505+ $ this ->assertCount (1 , $ response ->answers );
506+ $ this ->assertSame ($ soa , $ response ->answers [0 ]);
507+ $ this ->assertTrue ($ response ->header ->authoritative );
508+ $ this ->assertFalse ($ response ->header ->recursionAvailable );
509+ }
510+
468511 public function testLookupReturnsSoaInAuthorityForApexNonNSQuery (): void
469512 {
470513 $ soa = new Record (
0 commit comments