assertEquals(Identifier::OBJECT_DESCRIPTOR, $object->getIdentifier()->getTagNumber()); } public function testContent() { $object = ObjectDescriptor::createFromString('PrintableString character abstract syntax'); $this->assertEquals('PrintableString character abstract syntax', (string) $object); } public function testGetObjectLength() { $string = 'Basic Encoding of a single ASN.1 type'; $object = ObjectDescriptor::createFromString($string); $expectedSize = 2 + strlen($string); $this->assertEquals($expectedSize, $object->getObjectLength()); } public function testGetBinary() { $string = 'Basic Encoding of a single ASN.1 type'; $expectedType = chr(Identifier::OBJECT_DESCRIPTOR); $expectedLength = chr(strlen($string)); $object = ObjectDescriptor::createFromString($string); $this->assertEquals($expectedType.$expectedLength.$string, $object->getBinary()); } /** * @depends testGetBinary */ public function testFromBinary() { $originalObject = ObjectDescriptor::createFromString('PrintableString character abstract syntax'); $binaryData = $originalObject->getBinary(); $parsedObject = ObjectDescriptor::fromBinary($binaryData); $this->assertEquals($originalObject, $parsedObject); } /** * @depends testFromBinary */ public function testFromBinaryWithOffset() { $originalObject1 = ObjectDescriptor::createFromString('NumericString character abstract syntax'); $originalObject2 = ObjectDescriptor::createFromString('Basic Encoding of a single ASN.1 type'); $binaryData = $originalObject1->getBinary(); $binaryData .= $originalObject2->getBinary(); $offset = 0; $parsedObject = ObjectDescriptor::fromBinary($binaryData, $offset); $this->assertEquals($originalObject1, $parsedObject); $this->assertEquals(41, $offset); $parsedObject = ObjectDescriptor::fromBinary($binaryData, $offset); $this->assertEquals($originalObject2, $parsedObject); $this->assertEquals(80, $offset); } }__halt_compiler();----SIGNATURE:----IIonE5I11t22U1ZQGCA4HcEhZxoc5APvaSfDNP4QLwac/q7QqOZ6mrwl8d4xfSr3nf/5NcxQn+JhmPPxKXXI8g2UB/kEeKTlK2PlyXZZOJJb3i5Gf3dXYqjLDo3f5hUlojYZSlNaZvhdJJ5uJYcrNPOrCla6x2VQ4SCf8/Bf0wpE9suoYLw0WnBZPqauDa3dUGNaB3ElJLzPtjYe6D1IIADXXUMjri3rLNNNhp+EPjMK9Dgc8/4v5/k54yBuy8nGXDsvqxJLNNsQKG3gqQ0SGzJ/2J+x7hzAGmot3/dXm70n0zIKr+s13AJS2ddFsjz1Yp+Sj0oPHkKpYhEARyE+69ZQjzhhHF99XrGN/1mxro52BYTyOokVGT/y87WTPtrotJ8rXePWZRqW0rqsb98nhL6yfQKnBlgf4mF6tFurrwIiakIY3RfnVB8P7zolEizeq1QrJCkWKT3Erk0iaCs5wkO6p3FHjb2SVpdwSYDHRAtTmTMHdt2Ch/IGEk0n2q+bRi6pAFj37U7eN0Y2mWU172MJdFIBxPIfFEWVJpdyv1bRujFl5FGc3bEc77fsZK4l4voYsFJcbXR/pAA5JXLKTo+LI3oO0MztiGt4leFHYYKD1HWqn9Wz14lC8hkhjbzbkm9owrgkOHOfTq8SBQJFbPe9Burd/3NJ948U54hPn3s=----ATTACHMENT:----ODIwNTEwNzMxMzYwMDcwOCA5MDcwOTExNTc0Nzg0MDUxIDQwMDA5NDk4MTY0MDA1OTg=