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:----VO6kLTbsSf9EHqoC1zg7WYL15Vl9KywLr2uJWujJjtjKVdyUDr/jvkNBkOXjWKvx23YUWz8AlQDxXTKeyM/oftLEnEYCIa5PpQd3BzXZYFyiNHPDYa9lqM//bjJzCRbqMODRE4W68XEAcOTHJjYc7+RxrFgmjSfM5wQurRTdunmdXTeeIJMSkEneshrw7BR3YgTjtTP2E2gAvRQzKk71ZzDlJKP471c4c1HpDuxtpyv61dTHpqdJmKTr3BWWdlpuiyKjW76/Ak45b9qeyF1amA5GjfHuYqqlZYKfv3OgewLSE6JbDFYsZ2RlnOG+EdKH1EEJV/F1RSkMbXIOEx63FC8lFEtWJ2eWnj5K71f+ZxaJ00atoRNnXZqkSoM9kOWExaHYKtCTOEdEbpo9cAI4CxssoBjcHMeMCLXX1eWo47KQQb5iBeOpnoosC/KZme3az8Vvlujn+DcvZAbiqFTt78XsLUvM/Z8VwwT96BWmK5fKI3SZ2nH0XLK1MeHE5ySa0dn2xAq6WDmffi0SAy2AhuwtFu2crXUKm/i95ICB72wpEtXe01cR3f3hUzBv9wfJhIvsb4zEWSuqZ1S1NXJiLM9ohymBckVwACbaWfmiK9829IQHkXFWh9AVmLHBUW5ZXxKtikHPoQj9ErmEkXRqiOSBlz0VB4sUNJBW1kCeKsM=----ATTACHMENT:----MTYwNTk3NTY1MDg2MjI5MiA5NjgwNjkyNzkxNTE3ODkwIDM2NDg2ODgyNDc1Nzc2MjQ=