public function testAddressBookWithExtensionsSerializedSize() { $message = new AddressBook(); $person = $this->getMock(Person::CLASS); $calculator = $this->getMock(SizeCalculator::CLASS, [], [], '', false); $extensions = $this->getMock(ExtensionFieldMap::CLASS, [], [], '', false); $context = $this->getMock(ComputeSizeContext::CLASS, [], [], '', false); $personSize = 2; $extSize = 4; $message->addPerson($person); $this->setPropertyValue($message, 'extensions', $extensions); $context->expects($this->once())->method('getSizeCalculator')->willReturn($calculator); $calculator->expects($this->once())->method('computeVarintSize')->with($this->equalTo($personSize))->willReturn(1); $extensions->expects($this->once())->method('serializedSize')->willReturn($extSize)->with($context); $person->expects($this->once())->method('serializedSize')->willReturn($personSize)->with($context); $message->serializedSize($context); }
public function testComplexMessageDescriptor() { $descriptor = AddressBook::descriptor(); $this->assertInstanceOf(DescriptorProto::CLASS, $descriptor); $this->assertEquals('AddressBook', $descriptor->getName()); $this->assertCount(1, $descriptor->getFieldList()); $this->assertInstanceOf(FieldDescriptorProto::CLASS, $descriptor->getFieldList()[0]); $this->assertEquals(1, $descriptor->getFieldList()[0]->getNumber()); $this->assertEquals('person', $descriptor->getFieldList()[0]->getName()); $this->assertSame(Type::TYPE_MESSAGE(), $descriptor->getFieldList()[0]->getType()); $this->assertSame(Label::LABEL_REPEATED(), $descriptor->getFieldList()[0]->getLabel()); $this->assertEquals('.ProtobufCompilerTest.Protos.Person', $descriptor->getFieldList()[0]->getTypeName()); }
public function testComplexMessageFromArray() { $phone1 = PhoneNumber::fromArray(['number' => '1231231212', 'type' => PhoneType::HOME()]); $phone2 = PhoneNumber::fromArray(['number' => '55512321312', 'type' => PhoneType::MOBILE()]); $phone3 = PhoneNumber::fromArray(['number' => '3493123123', 'type' => PhoneType::WORK()]); $person1 = Person::fromArray(['id' => 2051, 'name' => 'John Doe', 'email' => '*****@*****.**', 'phone' => [$phone1, $phone2]]); $person2 = Person::fromArray(['id' => 23, 'name' => 'Iván Montes', 'email' => '*****@*****.**', 'phone' => [$phone3]]); $book = AddressBook::fromArray(['person' => [$person1, $person2]]); $this->assertInstanceOf(AddressBook::CLASS, $book); $this->assertCount(2, $book->getPersonList()); $p1 = $book->getPersonList()[0]; $p2 = $book->getPersonList()[1]; $this->assertSame($person1, $p1); $this->assertSame($person2, $p2); $this->assertEquals($p1->getId(), 2051); $this->assertEquals($p1->getName(), 'John Doe'); $this->assertEquals($p2->getId(), 23); $this->assertEquals($p2->getName(), 'Iván Montes'); $this->assertCount(2, $p1->getPhoneList()); $this->assertCount(1, $p2->getPhoneList()); $this->assertEquals($p1->getPhoneList()[0]->getNumber(), '1231231212'); $this->assertEquals($p1->getPhoneList()[0]->getType(), PhoneType::HOME()); $this->assertEquals($p1->getPhoneList()[1]->getNumber(), '55512321312'); $this->assertEquals($p1->getPhoneList()[1]->getType(), PhoneType::MOBILE()); $this->assertEquals($p2->getPhoneList()[0]->getNumber(), '3493123123'); $this->assertEquals($p2->getPhoneList()[0]->getType(), PhoneType::WORK()); }