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());
 }
Ejemplo n.º 3
0
 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());
 }