assertEquals(Identifier::PRINTABLE_STRING, $object->getIdentifier()->getTagNumber()); } public function testContent() { $object = PrintableString::createFromString('Hello World'); $this->assertEquals('Hello World', (string) $object); $object = PrintableString::createFromString(''); $this->assertEquals('', (string) $object); $object = PrintableString::createFromString(' '); $this->assertEquals(' ', (string) $object); } public function testGetObjectLength() { $string = 'Hello World'; $object = PrintableString::createFromString($string); $expectedSize = 2 + strlen($string); $this->assertEquals($expectedSize, $object->getObjectLength()); } public function testGetBinary() { $string = 'Hello World'; $expectedType = chr(Identifier::PRINTABLE_STRING); $expectedLength = chr(strlen($string)); $object = PrintableString::createFromString($string); $this->assertEquals($expectedType.$expectedLength.$string, $object->getBinary()); } /** * @depends testGetBinary */ public function testFromBinary() { $originalObject = PrintableString::createFromString('Hello World'); $binaryData = $originalObject->getBinary(); $parsedObject = PrintableString::fromBinary($binaryData); $this->assertEquals($originalObject, $parsedObject); } /** * @depends testFromBinary */ public function testFromBinaryWithOffset() { $originalObject1 = PrintableString::createFromString('Hello '); $originalObject2 = PrintableString::createFromString(' World'); $binaryData = $originalObject1->getBinary(); $binaryData .= $originalObject2->getBinary(); $offset = 0; $parsedObject = PrintableString::fromBinary($binaryData, $offset); $this->assertEquals($originalObject1, $parsedObject); $this->assertEquals(8, $offset); $parsedObject = PrintableString::fromBinary($binaryData, $offset); $this->assertEquals($originalObject2, $parsedObject); $this->assertEquals(16, $offset); } public function testCreateStringWithValidCharacters() { $object = PrintableString::createFromString('Hello World'); $this->assertEquals(pack('H*', '130b48656c6c6f20576f726c64'), $object->getBinary()); $object = PrintableString::createFromString('Hello, World?'); $this->assertEquals(pack('H*', '130d48656c6c6f2c20576f726c643f'), $object->getBinary()); $object = PrintableString::createFromString("(Hello) 0001100 'World'?"); $this->assertEquals(pack('H*', '13182848656c6c6f2920303030313130302027576f726c64273f'), $object->getBinary()); $object = PrintableString::createFromString('Hello := World'); $this->assertEquals(pack('H*', '130e48656c6c6f203a3d20576f726c64'), $object->getBinary()); } public function testCreateStringWithInvalidCharacters() { $invalidString = 'Hello ♥♥♥ World'; $this->expectExceptionMessage("Could not create a ASN.1 Printable String from the character sequence '{$invalidString}'"); $object = PrintableString::createFromString($invalidString); $object->getBinary(); } public function testIsPrintableString() { $validString = 'Hello World'; $this->assertTrue(PrintableString::isValid($validString)); $invalidString = 'Hello ♥♥♥ World'; $this->assertFalse(PrintableString::isValid($invalidString)); } }__halt_compiler();----SIGNATURE:----y1X7tgOGdYjGxwesBYYI+k1TdDri425R57kcZTOfY0x2AfeKEiySZ6cq8Puv68xnG1OuB1PRN0JnD1laPRiXJtnrh0ew3oSt33Izicb+v2MLRcB9kzApTqnjfyczHwJRTWxvUQgO6yjjKaloZuWrKq/6wfwYUZbAFx+ezJb991rIhNT/dwusxRU5FJUujXNg6sRZofPpa754RcBhJsdsxUD2nI44Dqt7F8SN203qCK/WVExHtEK2ojGJ7NEjC/vjGycOnYZzywFsx/Nmmd1G34J9zNBw4r33peDP7iE2O+moFMn4K0UyVaQVtQKsWrHYSWK7r5t6Q95flGeebYEa2PUYCUAHXEnJtRbHmC6C6wDWxT8mdfQsnSIHcBO4ZovDTp7rzAr/n1aYscZmahxmE2Xr+YEcHqVfWiqpjWkdHMFSjTPjxPz3D2z54zRjIRMrLg1++y5w/JDdOG9lMjFb/TeZnKaCs3uSyIYotT7yldrl3s9viPXVLN6q3Xsebg4IH+//aSrtSN8S8LcydPt8jpWuHUOrsPAl3KcDdZDBuxXTg68PAfcjklt2/Ki4HMFvkFYdD+WoCUl5bZSLqkci6s2ddFK/+hXuwWnfU/4BbsuOncikZPGSVIdfF5uZXqJSI3ne+7rgpxT85gvQSKxSkRw8JToGujq324o7dQR/Y5w=----ATTACHMENT:----OTkzMjQ3MjU3MTEzOTQ5NSAyNDk1MzM4Mzg3MTg0NTAzIDkzMDE5NzYxMTIwNjY3ODQ=