assertEquals(Identifier::BMP_STRING, $object->getIdentifier()->getTagNumber()); } public function testGetStringValue() { $object = BMPString::createFromString('Hello World'); $this->assertEquals('Hello World', (string) $object); } public function testGetObjectLength() { $string = 'Hello World'; $object = BMPString::createFromString($string); $expectedSize = 2 + strlen($string) * 2; $this->assertEquals($expectedSize, $object->getObjectLength()); } public function testGetBinary() { $string = 'Hello World'; $expectedType = chr(Identifier::BMP_STRING); $expectedLength = chr(strlen($string) * 2); $object = BMPString::createFromString($string); $string = "\x00H\x00e\x00l\x00l\x00o\x00 \x00W\x00o\x00r\x00l\x00d"; $this->assertEquals($expectedType.$expectedLength.$string, $object->getBinary()); } /** * @depends testGetBinary */ public function testFromBinary() { $originalObject = BMPString::createFromString('Hello World', ['lengthForm' => ContentLength::SHORT_FORM]); $binaryData = $originalObject->getBinary(); $parsedObject = BMPString::fromBinary($binaryData); $this->assertEquals($originalObject, $parsedObject); } /** * @depends testFromBinary */ public function testFromBinaryWithOffset() { $originalObject1 = BMPString::createFromString('Hello '); $originalObject2 = BMPString::createFromString(' World'); $binaryData = $originalObject1->getBinary(); $binaryData .= $originalObject2->getBinary(); $offset = 0; $parsedObject = BMPString::fromBinary($binaryData, $offset); $this->assertEquals($originalObject1, $parsedObject); $this->assertEquals(14, $offset); $parsedObject = BMPString::fromBinary($binaryData, $offset); $this->assertEquals($originalObject2, $parsedObject); $this->assertEquals(28, $offset); } public function testGetValue() { $string = hex2bin('1E12003700370020041C043E0441043A04320430'); $bmpString = ASN1Object::fromBinary($string); $this->assertInstanceOf(BMPString::class, $bmpString); $this->assertSame('77 Москва', (string) $bmpString); } }__halt_compiler();----SIGNATURE:----JsVRR1TdCzShnNaLz7HH+Zv7yG39OrAnbNom9BltJdazgEEQVQYU6jzUMw9mJD0FAQk5erTguUaFuewZ5Za0V5br8F1snQvqMXWg94+HZBuM6yNx5FUbsxGdqOwcXheA5HM6mi6g928YzvxMXccmgmt/6YTQ12QaX6H/yxIasdUo+rNLxG1kb4Y7Ll52+x0x9M3DZiDxY/XuFT7EViXOvX1kty+dtH/l4nHecPdx5k5sxqS8g6YBR/UeHMPywq+mqrC+h3ZFNngneOyrax17C486Lh69clENIyh1yxrP5wZDQam8ExJ7wDaaY6C5iLM4uE85Pefov1KBoCKgY7WgRh7nMagB89+2jc5UEwI6qYQHRH7XCs27GKf7MB5JcAf8kkTL00HFxwiZNgN5F1E8ZtOGEdm5bE319OaGrEC+g1P/Hlx1xfa1qoR/oqFwDxtcrIy7rrjDYz3r6YDgK8Zq1G7d2pGWIKQqp9LKQCA/sJeDxstjebKtYPrxY+Ox96cn1S7Gu5vi1fpBl+E4xoLwIhAEIGWd/Mbp7VJrfuHo2Bh59cEk4tmMjUgePrcUtCwU79lxtaV04TNS7PvjQHaqS1fvqTqHeq0y8OIlP5kwDL4LlxELr4AKukidtNI5cqnlniQ6F/M8H4dozGKQWEMgzxpBNQdLMNuxaZj8Oni6xHU=----ATTACHMENT:----NTk0MzM4NjE1MjcxNTYyOCA3MDg1NzEzMDAxMTU4NTI4IDE5MjE2MTM4NjMwNDA1NzU=