/** * @depends testFromBinary */ public function testFromBinaryWithOffset() { $originalObject1 = new Boolean(true); $originalObject2 = new Boolean(false); $binaryData = $originalObject1->getBinary(); $binaryData .= $originalObject2->getBinary(); $offset = 0; $parsedObject = Boolean::fromBinary($binaryData, $offset); $this->assertEquals($originalObject1, $parsedObject); $this->assertEquals(3, $offset); $parsedObject = Boolean::fromBinary($binaryData, $offset); $this->assertEquals($originalObject2, $parsedObject); $this->assertEquals(6, $offset); }
public function testGetBinary() { $child1 = new Boolean(true); $object = new Sequence($child1); $expectedType = chr(Identifier::SEQUENCE); $expectedLength = chr(0x3); $expectedContent = $child1->getBinary(); $this->assertEquals($expectedType . $expectedLength . $expectedContent, $object->getBinary()); $child1 = new Integer(123); $child2 = new Boolean(true); $object = new Sequence($child1, $child2); $expectedLength = chr(0x6); $expectedContent = $child1->getBinary(); $expectedContent .= $child2->getBinary(); $this->assertEquals($expectedType . $expectedLength . $expectedContent, $object->getBinary()); }
public function testFromBinaryWithMultipleObjects() { $object1 = new Boolean(true); $object2 = new Integer(42); $identifier = 0xa0; $length = $object1->getObjectLength() + $object2->getObjectLength(); $data = chr($identifier) . chr($length) . $object1->getBinary() . $object2->getBinary(); $object = ExplicitlyTaggedObject::fromBinary($data); $this->assertEquals(2 + $length, $object->getObjectLength()); $this->assertEquals([$object1, $object2], $object->getContent()); $this->assertEquals($data, $object->getBinary()); $this->assertEquals('2 context specific objects with tag [0]', $object->__toString()); }