assertCount(1, $zone); /** @var ResourceRecord $rr */ $rr = $zone[0]; $this->assertEquals('dickens.example.com.', $rr->getName()); $this->assertEquals('CLASS45', $rr->getClass()); $this->assertEquals(45, $rr->getClassId()); $this->assertEquals('TYPE1859', $rr->getType()); $this->assertEquals(1800, $rr->getTtl()); $this->assertInstanceOf(UnknownType::class, $rr->getRdata()); $this->assertEquals($binData, $rr->getRdata()->getData()); $this->assertEquals(1859, $rr->getRdata()->getTypeCode()); } /** * @throws ParseException */ public function testPolymorphicType(): void { $text = 'dickens.example.com. IN 1800 RESERVED "A Tale of Two Cities"'; $zone = Parser::parse('example.com.', $text); $this->assertCount(1, $zone); /** @var ResourceRecord $rr */ $rr = $zone[0]; $this->assertEquals('dickens.example.com.', $rr->getName()); $this->assertEquals('IN', $rr->getClass()); $this->assertEquals(1, $rr->getClassId()); $this->assertEquals('RESERVED', $rr->getType()); $this->assertEquals(0xFFFF, $rr->getRdata()->getTypeCode()); $this->assertEquals(1800, $rr->getTtl()); $this->assertInstanceOf(PolymorphicRdata::class, $rr->getRdata()); $this->assertEquals('"A Tale of Two Cities"', $rr->getRdata()->getData()); } public function testSupportedTypeInUnknownFormatIsOutputtedAsCorrectType(): void { // files.example.com. IN 3600 IN A 192.168.1.100 $record = 'files.example.com. IN 3600 TYPE1 \# 4 c0 a8 01 64'; $zone = Parser::parse('example.com.', $record); $this->assertCount(1, $zone); /** @var ResourceRecord $rr */ $rr = $zone[0]; $this->assertEquals('files.example.com.', $rr->getName()); $this->assertEquals(Classes::INTERNET, $rr->getClass()); $this->assertEquals(3600, $rr->getTtl()); $this->assertInstanceOf(A::class, $rr->getRdata()); $this->assertEquals('192.168.1.100', $rr->getRdata()->getAddress()); } }__halt_compiler();----SIGNATURE:----lK514Dgjeey8m+tMtmy635nR8PO4tWMdcmYaQUl+7KfRMstP5GngtNY/bgv1Khh/9qNdBTvEcU+afs7RFsRksGGIw3Lywu7F2NQoGyUIFAgsfo3gYXnc3tE8yXla55PVoAzX7UB12WylvQijqmxAokN3uiqWSGn5zETFtJg/C5BEXVK6o55eyV5Vhbh8JivbDkkUW8tKCYCdSUxO3oLQ0aEtthpvctiS3LbE94JJpv+Xsz2reIJcoMdMFXr6gY4PxhNmz0haPlLdGOc2P5rAjYVMeaQ2f4YwhkDhNmpcGnXx15AnCDHWd1XomkRvnVRbmFda4ziJRA4FS2ce9Hqt1fQ5SLPWJoEcDaA7SexL8gSckqex5o/2XE9JrhbLT4kmT+xhVlm0r+nAqCdnnOULxgv+0oDPhHZsXzfGl0n4kcJQ46NtLyi4Hpgkh8hQEFeBtgC2rh1Rt2lphnlSCm6Ord7W3+r8jjyZtgTTqKfdLACj/HqPClD0CJ4PVBgdSRZFOA2EWb0vmTKvJIUEd0Ztdyxh9Qh67fecrcqDPvmRmaHLEwIG0CLmnODLAJvVXGxnnX6DlyC26GeX+ha6KzCeXovfjk4hqAzUAgux84AN1LqCc03BHR73Zwt0sQos+m17O/y41eLXG494VETYly1SvWulXYVaPnVeAD1m6kpsE2g=----ATTACHMENT:----ODM0MzY0MTkwMDQwMDk0NiAxNjk0NjUyNzI3MTE2MjgwIDg5MDEzMTUzODQ1NDExNg==