setNextDomainName('host.example.com.'); $nsec->addType(A::TYPE); $nsec->addType(MX::TYPE); $nsec->addType(RRSIG::TYPE); $nsec->addType(NSEC::TYPE); $this->assertEquals($expectation, $nsec->toText()); } public function testFactory(): void { $nextDomain = 'host.example.com.'; $bitMaps = [A::TYPE, MX::TYPE, RRSIG::TYPE, NSEC::TYPE]; $nsec = Factory::NSEC($nextDomain, $bitMaps); $this->assertEquals($nextDomain, $nsec->getNextDomainName()); $this->assertEquals($bitMaps, $nsec->getTypes()); } public function testClearTypeMap(): void { $nsec = new NSEC(); $nsec->addType(NS::TYPE); $nsec->addType(PTR::TYPE); $this->assertEquals([NS::TYPE, PTR::TYPE], $nsec->getTypes()); $nsec->clearTypes(); $this->assertEquals([], $nsec->getTypes()); } public function testFromText(): void { $text = 'host.example.com. A MX RRSIG NSEC TYPE1234'; /** @var NSEC $nsec */ $nsec = new NSEC(); $nsec->fromText($text); $this->assertEquals('host.example.com.', $nsec->getNextDomainName()); $this->assertEquals(['A', 'MX', 'RRSIG', 'NSEC', 'TYPE1234'], $nsec->getTypes()); $this->assertEquals($text, $nsec->toText()); } public function testWire(): void { $hexMatrix = [ 0x04, ord('h'), ord('o'), ord('s'), ord('t'), 0x07, ord('e'), ord('x'), ord('a'), ord('m'), ord('p'), ord('l'), ord('e'), 0x03, ord('c'), ord('o'), ord('m'), 0x00, 0x00, 0x06, 0x40, 0x01, 0x00, 0x00, 0x00, 0x03, 0x01, 0x01, 0x40, 0x80, 0x01, 0x40, ]; $expectation = pack('C*', ...$hexMatrix); $text = 'host.example.com. A MX RRSIG NSEC CAA DLV'; /** @var NSEC $nsec */ $nsec = new NSEC(); $nsec->fromText($text); $this->assertEquals($expectation, $nsec->toWire()); $fromWire = new NSEC(); $fromWire->fromWire($expectation); $this->assertEquals($nsec, $fromWire); } }__halt_compiler();----SIGNATURE:----rad15uiBu5PpftQV5LTdm23JXlgS1VvBFOTedZjg7fQA+9ptACphdb/dgJhHTFOpccdDlC/jhMGa/+x6G6YNYwku2MM16ehbIdj5djq7TMo/EjkwoRGkGRHHCQD/pcik16ryq76zLwDO/ibYQKBfXSqbhP3bUFUw8OVvYEWovVpAokw9SFIyV5SJ/lTNaFkTAofLfLH+o11yvtmrWA/R3Q+NqL0blA/x+o4aoQhQVVqetS+7urSvszXmhyHsBfwo+CIPz+b39SfKJXQ7EIMiJF3/EGiY0itKlkViopjXTlQ+1z8Pil6G2NXnaCWJtZD6JCPncoOgY0+L4Gy6fEqhz5/DSMTWi+mdKXUMRnYvjevS6nUQQpnbTOGatm4ixzCxk4bUCEhHb9aAQuBfnDBQru7WhETr3X4F3tKDXIoZZa5QpNDmz+kPDpjIQmLR2w+pl8DXVtKHOFlh1BslBZkmYlTD2sPtVwAObPv8O5ujXW/ZwOzcD97z4FTJHUr86vzVWFhcuG6cMCm5s/0tdmMCQU4aagElwTRloLXrrcLXYK7sxchlnmMx823auy43fOLXNGVqtiNHqa7gHHfYhJsoBjbrw0gOjkVMaV8ax9VlmYRs7ihJX1OBO+lYeQGGntjJexHTMvZyB9MZQPexE+y4Oxz+ZmCgMURnCZOwhf+alxg=----ATTACHMENT:----MjEyODc1MzQ5NzI3MjUxOSA2MDU2OTg4NjM2NDE0Nzc5IDM4NjczMjI1NDk4MTAzNzI=