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:----GaLiNDBjkLpoV9RaYibywEYeld1tE2vWVcCDP7luY3BCvrtfC0eRPFccU2O4ELq0IZWqr7jbhjCmRed4dosOIKnNclc18XkM5y97tbejji7tiwuONWp24ovE0zZPZmhAt7R/UfW7qJaIWjp59ZYt4r6z+r2NacvP8w7HJ5KAam4PToB6z8XHtxMelylmbcy59u3MUHMV2rXQnE5rBQx8Pq6sahBELsZ/8XeYElYTzve4z+6vD3xdUX8IAcndRRPgGKTJmt6MR6POlpJiqwb2yQVwx2eT5SnUTWwA4verfD+Myw/Y+GJGRBHIeB0MOwX12UF9a4D0/0e/eKx1h64Pthl48qugFpAD9aNhaXIzEDtYmv+dDlRgdS+YTXsd+MsbcIfoXEy2jQVTZS2rujh90W1GXnlgAUENkCy7scmI1MKREzLoW3BDwiCbViJl96YdsZ6xu3j6mzPCDJ23XWbgNwEG2m4AurWowjpDgWEEsINEpYe7MRx+rmvkN34UelYgz0BKNLZK/IEIuUV45a9Yy7A9b+lNQd8uPNpc5eW37vp4U0+t2xW6ycb7LJqROvZJPa9C6ERbLwNakWNb6X/KpxnfqlxG6w/RHmhMSC4/Cx7vxk/4SZp4hQ/IDOinbj6uqroG0HqKd3PabLwgOXtcxixrLMaaQruPEeuSLnzcqo0=----ATTACHMENT:----NTMyODgwMDU1NDQ1ODA5OCAyNzQ2NTUwODAwMTEzMTgxIDU1MDkwMjkzNTA2NzcyOTU=