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:----L9OARn71KhgudtxZ9vKuIFJwLcJQd+1Kc+0O+gMVieIXOL5NbjSoysK/i6tKu1dEe+/wl3iUw6X9U5JQg+ZNeQi+Rf+HTZDl9u8ldhK+iQqBsGhXbM1akXm9spQQzeGdloZbVDbFsc6aebwVTKtxntYoBQO6pwQ+DVb9L1DcgEQo8ZY/B8jk9Ltj/sf1EFXLZBcIuI0iAzkQxB1ygQsV6xlHbrkMaUdGHSpFRyoc63Up8buAA2MBjDzlcdGoRkhXrB2N8vG80GgFbtg7TMGMB+nRAdawQdiOFcifw0nO6X0ykjgAmDFmnj6z+TDQKsiN4oeqkihY9Ne6Fy2Ls8cwHT1D6W2eN6XJJPjTrylxLCjsEOcDhNf/wzdDS3yKcvkoAZFunISCjfuRbFbP+MTHIs4iLV85sdvUx+R2bQtni40K4nq+kJx/IDhgepQmHsFb6/Fnw2vYp+eitzxbeI2i1ir34cn9A0XjeXXt4wlXvrxhDrCuWGRZauq77xSaGKujQwRqAWcvzC2K7oG2YGfUGWFlhVvGxPHzF4MgTJY+5iDiqAHMF7+KzgA8mCFUuwsuteq561MgN8AY2oPr25p1AwSmVp6MbL5uHDfCaFxBtRfmKxcYrmTBDUnkiqZ5R0gdvZnVE7WYuHfvk8EITsTplcBARFBHOQPoSqgg9djI0Rg=----ATTACHMENT:----OTg4MjQ2NDI0NzMwNDA2NCAxMTEwODgyOTgyMDY1NDk5IDMzNjM2OTkyMDI3MzgyMDA=