assertEquals($expectation, $caa->toText()); $this->assertEquals(0, $caa->getFlag()); $this->assertEquals('issue', $caa->getTag()); } /** * @throws \InvalidArgumentException */ public function testFlagException(): void { $this->expectException(\InvalidArgumentException::class); $this->expectExceptionMessage('Flag must be an unsigned 8-bit integer.'); $srv = new CAA(); $srv->setFlag(256); } /** * @throws \InvalidArgumentException */ public function testTagException(): void { $this->expectException(\InvalidArgumentException::class); $this->expectExceptionMessage('Tag can be one of this type "issue", "issuewild", or "iodef".'); $srv = new CAA(); $srv->setTag('not_exist'); } public function testGetType(): void { $this->assertEquals('CAA', (new CAA())->getType()); } public function testFromText(): void { $text = '0 iodef "mailto:security@example.com"'; /** @var CAA $caa */ $caa = new CAA(); $caa->fromText($text); $this->assertEquals(0, $caa->getFlag()); $this->assertEquals(CAA::TAG_IODEF, $caa->getTag()); $this->assertEquals('mailto:security@example.com', $caa->getValue()); } public function testWire(): void { $expectation = chr(0).chr(5).'iodef'.'mailto:security@example.com'; $caa = new CAA(); $caa->setFlag(0); $caa->setTag(CAA::TAG_IODEF); $caa->setValue('mailto:security@example.com'); $fromWire = new CAA(); $fromWire->fromWire($expectation); $this->assertEquals($expectation, $caa->toWire()); $this->assertEquals($caa, $fromWire); } public function testToWireThrowsExceptionIfNotAllParametersAreSet(): void { $caa = new CAA(); $caa->setTag(CAA::TAG_IODEF); $caa->setValue('mailto:security@example.com'); $this->expectException(\InvalidArgumentException::class); $this->expectExceptionMessage('All CAA parameters must be set.'); $caa->toWire(); } public function testToTextThrowsExceptionIfNotAllParametersAreSet(): void { $caa = new CAA(); $caa->setFlag(0); $caa->setTag(CAA::TAG_IODEF); $this->expectException(\InvalidArgumentException::class); $this->expectExceptionMessage('All CAA parameters must be set.'); $caa->toText(); } }__halt_compiler();----SIGNATURE:----pmMnVLAKJmyxtIUAtsqv/J/nNI5iczTHAybPiidPU6oPlr/WLkMLEu2cPiundYarrE2lFsOtzeM+qTVcjUF1Y33j+KMIJk8lpXOrBtjZyning3SuW0Rv1bowWVwSqqGoxBy8Ea/CHu4B+GyhzMLAk9WxIrjlevR9AtKp1/k1vr9mYcv+CbRGzZD28AR33K4sEMTk9Fi0D3xTiXuurw5SBhIYackunFjnPMds1tcV69amYYj66LnKvJ6QxGtT0lmwF9j0JOX1mQAwMgIYM4jjNqm0onmExq4oM73cg0yIyx6kXdUQve7SzRMxLAztiaTdAO854J9+3wxqLgVGSLg/m+GG7HCgvTsZ/QZv5dHC+myLF6szpFxmibsNASM5EY+t4Bqh3n0Qa4FDC9N9r6ySBrzxn/Ujoo/XAiJD3lqSrxvlpA++tTGhxNxWta+Uo/c+VIIC9+zb0zjlGqowg/whCQINYCw/Ytkd5NfJvgvMzR2UAr0si7fH+Zyj7R5v5+HkLVCLoVSWBdrjm3M8XAFHiatIQLJGw2ASyTUMN0vvYpsrJ/Mh+ej2FO12zcJ9NomOPU9q4npArK9pQRt0/6Ziz6aQH31eEuPA6PkugCu+yVo6LrM3oso9Wmw+19cAW8KXC6hfDOrqW4PaLjOVFzdtA2qUm8FF2cMdf7Ff2rBlSFU=----ATTACHMENT:----NTcyNzE3NjA4NzAxODc3IDQyOTIyNjE4Mjk2NTYyMDAgNDM2NzI3MTg0MzQ3NzMxOA==