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:----mBFRNtdxKyinhFc1jsJx5bAd+ATtP1xJLhZVFqq8alZrXmYR3pQsM5OHeV/EdS3DVIUyztQUP7pvW63lOo9pZHkr8OFvbXitZC+zzVXaPgkthBp37kyOnK+DZp9CuK15iarKh0vNI/Z7CPGnViwFMr+z5UJrH/mxsm/cabpdixno2JEF7ZtOhI6hY3RC7b/MSoLJdw7XPYCLi9B3pJ3tGC/jjsHHsvUVWaB3S2la5+VZDQvRc5g4bnWc6PFN9b4a+gmSipNDRuRb6WVmNd9I3JGeYZanOaqv/RYlcF2kUEPVIlr+U6GqO8oZfgHjKv7bhTs2Ae0ovBlZ/koHS8BzTfsH8tU/CYZJco8hMpMDc1ZuiVVnVyCLz46FjPHm447o/yOgJycKLSK2ZsTkjiKJv+vX+fkxYyIgAcN2XaYTqmrujqPvDtWqWJJY/iCx11UdWqr9D/6zQRmJz+PKOfhir3kCZB+En6u7hvWtvrxFo1m2omQYfTCSCcGbrDmipTHNX79eHFR6LuLn1Fou7d6PoiARDtrdSVelRogFBVuIPhNx1sn15AfAxPyCKIMi/p6UzeyuL7W+CMK64q6xLiSNiImQt6cdc1Q+iU+n0bv7YmnoVT0Pvuf2BIb2hdmdmPxhXAOv8sLgrmVO6DsTR6ljS2FS7NcqobUhLr4zsZlFwvU=----ATTACHMENT:----OTQwNzg4MDM1NjA2OTE0OCA2NTI1NjY2NTM0MzM1OTE4IDcyODEwNTc5NTgzOTc5MDA=