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:----cWAoLz4nI84whcPBXCtBaEyEEo8WELcDqcv84Ja+BZmBzjWI54+JEhvD6QD0PlTDz1r+s+wnpypj3Ite5NgD/mZAWsYsdE1ZeAE6w3E68VD/NdwQqiHhJEP4Y5zt0u39QNBk8yA5yPzp1dCo9pu6EOCua0aHZqZcI55nHpxjmDDHSKtBGdMayoIoGCefA8uSHcYh+ulQ/nCbp6+lTLuy+DpQy5yq8/ISlhtfQzCT+y7gf1g3ZV72FP0FuRwxy24mDwiZzA+PrgIzMkssPMlRPRl412mduVDhazLC9Rx/NGktAFdqq9kVTZZWEArdyjPoTssjdu3BzpUvY/Ue14ymTQWP6nyiHQBm1Ua854uOcILElxOC9Bgo3vIesoaKbmilb6Ajokb8FXXtL1Gm2ZiJZmsP/xjqMhI1MRZxqXzgxcrvLkHmpkrKR5X2ASeGob33qzK/aLXkjXCTT5iJ9I48XVek4mkYnLogA94qF/6e66yE4nxA6LqUSB/vKj4j2G78hrurYG5i3W4VI9uSjVvgFNr9i9gKcen7DvTBJ+vSY1+WIAv4SyvNclR66ECC8LQ1VfgyUzCm+jMcfz2m7JImx5XTgcQ/zcf9TPxUCLdjqTE2NaIbFvTH/PBwwoft2SE9zWPeswtBFAyxQHebX3czy+dITB5AtlqaOOq9NqVASCg=----ATTACHMENT:----NDY0ODcxNDM0NjgwNzAzMSAxNzEyODUxMTYyOTQ3NzkgNTI5NTkyODQ4OTY3MDI1OA==