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:----zlzQdEmT9Ln3Fn0YnlpYiojZqq4SE5dDrfmunp0aYLX9Bf8aW6RoWqItZFctn0E3Mp/Ho6SE8FBzP4oHVwXGPsEP3lSor2srr5HuJrpiKv6eiXN7Zp+VRjsjMXlf+8cBTia0UPFTpX7iA5+5OTNlr1miPFa7nECJOdTJzUVjT7uArevm46DEMPgKola6nvLI7xJU9tNu+2qWUeS+DUX7kT1wqiy67b4cZwtjPzo1JjiLH9qZHVGtwqTOhQCw4ko21se4TDOxXFv8mM+kQJJc60Mej3AqwImTwTbYru+do4vHAcZoL8zOeGvn+Uq/1jne3U9t29oftNJOjABjIODt9bNNaQXn1saBclifYh1dhIQAyvMtXh7D0qFLU0LmDIgIAgmpXMU5SvhPBMU/2dUTCtGtC96DTTLC5clPoq3UTdUXq8JpiBOpkVylpX1LWWXA7XjVS0MyhlHeaF53Kkk3bway9mlR9Jed5ciQfAE1UL7WqDV9bPbKQs5bE7ST/0nJiWi3asIGrHJccn5P6/5gJnQm1xi+h8Ih3TuLozvdit7c+yNt8pHjZF2sT69WXuaWUYX2QJc1ZOQgNx04rS/yPEl4bZqtjB0rw6JJuO5Hwx56SCEmwjtppdDrmFuHaXxzPh/ks65FL+wxx1kZu3ga09k+0uApRK7jQQEc/h/fMUM=----ATTACHMENT:----NDQ2NTc1OTMzNDc5MzkwNiAzNTY2ODg3MDUyNDQwODUzIDMwMzEyNzA5MTkyMzk1OQ==