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:----KWzbcFMLBKyO0aVHQzA3URMpibzwkfcLY6lybMg9V7T7giHZEubKMQqpjt3fWhlC6dnxHU+pYgWKl9JSmW0Hy+H+wufewGj1u8osCRJZMPeS9dlORbNShnEqJ1wA4y9U1OL6QJ4BQT4bBnuHl9r8p7uUUhmj/19Nl8L4wJT9RU84w6eK05ny1grZwY3amUS8QU/oLW0OyG3ELSTtAec6lVqLZCRFUHO0MGpxI5kYQ0ApY9kBAk5u1gzHAPoEn4VmOYtT7h5Yk9nyotfIm33IQrWXMTBFOURk3XGUDPXMkIHPv0sWzFC+W68TUXGZ5aYkKdRl0nkmbVXjYFx2TkNbrdNUEfss702GdOx/Axz3jHGKv4MNKSjfKiLSFg55DfyRROI8MSH+xcp+Ge3ilbKx91xF9DT6xSqGBT4fImbTfozEseVBIkIJzBbQvwuS3kR9VyElcco6wCgybRWM/LLV54ILiyk5WZ4mEgWu4KgD7o2WRgyGY2a+v53hAucNZ7lzrIt71Gxtbn7iIzsG6HXv0LKX7Qlkhu4aDrQWDk0oviVygztYw3GQzVYWzmcpoyxrSRmWxQQ3ZeDyYk25zG7Cee7E8EY/YuZR4iD7HsrJrPp4gpV14Igp9wx7v4GQaTsPeP2ri8uoJ3TKh0LHumzhNxaqRpC3/KHtcv7fhsrRN78=----ATTACHMENT:----NjIzOTQ5NTM0NjY2NzY3MyA5NzMwNzYwNTQ0NjI0ODMyIDc2MDI5MTQwNjc5NTE0OTc=