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:----XDr73OyvtVnENj8pqdRIclaaCfF/P9oy2O9GccAk0lsODjvJSYRZC0qPZ9sbUJFXyx5R/pJ55tdB/wjjGdDeNNTfWBN+nbOCntPTmY3VCjKy2SwpsM3vClnuzqG2xWeIUo1hihq6tPRPvFTP3n2jh3id9HO2JnBJ0S80/WDCXOyPhdXUmexc9frr+YQs329g3fuvnL4nqAMpA8RucGSU18k1iLuOzH9Kjdcr2CRNvafj074xHdIrKnNeTBJpo6HnSbQp6KXSPHGvvJxR21Wgr6MJjG6OGpa+D90lnfNKd/l25f1G6+IaFTV858PntPqZt7WNYscXZLjqIvQ+jY/aTILboIn0yAovWDhiIkJJKDNQnS2ExlbM24TkeS+XUol3pYQVGd1iB81YpvaeGuBqB9c6jkfGTdWrxO2j5PD18RP3H+Fvcn1gurHUndLv8AQHdREcRbvwNfB0k6ATs6SeljEEMFxnv2F+LX4bl/cfaij35tEo9c4a6zWqNEdlH39auYeQLwDFr4+PWZLOGVqZOkHsR58MpTDgTdZGp5jE4cZdSSAT3ZYfCqnNxvofYRes7A5szFNiJdMpZ51EZCSGzU1FuGMU+MuallfI3jobtvEL6x3rTWUqtn7Q61/bEPljDYMbh3G7+LmUNcxZLmzN4U4YuuHRnXpUZ4rkoPMao2U=----ATTACHMENT:----NzQ0ODk1NzIzOTE1NzUzNCAzNDA5MDIzMTk0NDI4NTExIDg5NDQ4OTg1MzI2Nzk2ODk=