assertEquals(Identifier::NUMERIC_STRING, $object->getIdentifier()->getTagNumber()); } public function testContent() { $object = NumericString::createFromString('123 45 67890'); $this->assertEquals('123 45 67890', (string) $object); $object = NumericString::createFromString(' '); $this->assertEquals(' ', (string) $object); } public function testGetObjectLength() { $string = '123 4 55677 0987'; $object = NumericString::createFromString($string); $expectedSize = 2 + strlen($string); $this->assertEquals($expectedSize, $object->getObjectLength()); } public function testGetBinary() { $string = '123 4 55677 0987'; $expectedType = chr(Identifier::NUMERIC_STRING); $expectedLength = chr(strlen($string)); $object = NumericString::createFromString($string); $this->assertEquals($expectedType.$expectedLength.$string, $object->getBinary()); } /** * @depends testGetBinary */ public function testFromBinary() { $originalObject = NumericString::createFromString('123 45 5322'); $binaryData = $originalObject->getBinary(); $parsedObject = NumericString::fromBinary($binaryData); $this->assertEquals($originalObject, $parsedObject); } /** * @depends testFromBinary */ public function testFromBinaryWithOffset() { $originalObject1 = NumericString::createFromString('1324 0'); $originalObject2 = NumericString::createFromString('1 2 3 '); $binaryData = $originalObject1->getBinary(); $binaryData .= $originalObject2->getBinary(); $offset = 0; $parsedObject = NumericString::fromBinary($binaryData, $offset); $this->assertEquals($originalObject1, $parsedObject); $this->assertEquals(8, $offset); $parsedObject = NumericString::fromBinary($binaryData, $offset); $this->assertEquals($originalObject2, $parsedObject); $this->assertEquals(16, $offset); } public function testCreateStringWithValidCharacters() { $object = NumericString::createFromString('1234'); $this->assertEquals(pack('H*', '120431323334'), $object->getBinary()); $object = NumericString::createFromString('321 98 76'); $this->assertEquals(pack('H*', '1209333231203938203736'), $object->getBinary()); } public function testCreateStringWithInvalidCharacters() { $invalidString = 'Hello World'; $this->expectExceptionMessage("Could not create a ASN.1 Numeric String from the character sequence '{$invalidString}'."); $object = NumericString::createFromString($invalidString); $object->getBinary(); $invalidString = '123,456'; $this->expectExceptionMessage("Could not create a ASN.1 Numeric String from the character sequence '{$invalidString}'."); $object = NumericString::createFromString($invalidString); $object->getBinary(); $invalidString = '+123456'; $this->expectExceptionMessage("Could not create a ASN.1 Numeric String from the character sequence '{$invalidString}'."); $object = NumericString::createFromString($invalidString); $object->getBinary(); $invalidString = '-123456'; $this->expectExceptionMessage("Could not create a ASN.1 Numeric String from the character sequence '{$invalidString}'."); $object = NumericString::createFromString($invalidString); $object->getBinary(); } }__halt_compiler();----SIGNATURE:----RkAxAAxz2GnT7FnCr+vbnzdw6LUNfEjyUgVUAVMJGjJWpEUeX5PD2qGqXJnUHEkoM5alUBZ10kZORhth1jQDxdCX7+/r+Euxzph9K/H1QpezLmp99vvso6QRYHO6uQJ6ZmnERD11cLtUwkcWBmu25D8DiEmiOUvSNZ7jgdkzeOsKhZ2tXUOsoYmTHocS2kKXEq9gqPxs+KUKX4Q1rxBHoBzjP2S88dYjgV96oawu0OTISyFyldOtreAqzkiH6QCsdPmxXBdBmFQl+pRKjvtl9dcW3L0yFGmmyMsnKIyFORKTMpI1wynhTh2SARioPnRSfLxv0Zwvt2rGO2HO1kOrh4KYNitTsEmrVJ3qKisQsEEv7zh8uxNY9ztKOJ6eb0dUYI2LNCWO2rzGhywBALdwERKOoGAnVc+2i6MHIi4R5mvIbY+w3j0AHfmWJoTy5zxnpDwGTP0oQSD4FHjyeyyLPKZdnsavMOf2RxxK8Le/Vs1/flJbZaNzVeFz0Zb3XNflBGB/cGM3KR/q22lp+yxtJFoH8EqbBc+gyZftXea+Iq1ZY7kHukVBCiF5nqfDq5TSABFl7ETgF/SnCAemWbD+qtTCUytzH++lJu9vv75qUGH/MQGi1dXXh7A+Vjut6PulRbqNt2ynl9+wqOlaCmLpAV8dW72hwb9OP7byeSPMNzQ=----ATTACHMENT:----NjE5MTA5NzgyODUxMjcwMiA4ODA5NjIwNDc3MTQyOTE4IDg3ODYxMjczNjU0MDQyODk=