public function testWriteComplexMessage()
 {
     $phone1 = new PhoneNumber();
     $phone2 = new PhoneNumber();
     $phone3 = new PhoneNumber();
     $book = new AddressBook();
     $person1 = new Person();
     $person2 = new Person();
     $person1->setId(2051);
     $person1->setName('John Doe');
     $person1->setEmail('*****@*****.**');
     $person2->setId(23);
     $person2->setName('Iván Montes');
     $person2->setEmail('*****@*****.**');
     $book->addPerson($person1);
     $book->addPerson($person2);
     $person1->addPhone($phone1);
     $person1->addPhone($phone2);
     $phone1->setNumber('1231231212');
     $phone1->setType(PhoneType::HOME());
     $phone2->setNumber('55512321312');
     $phone2->setType(PhoneType::MOBILE());
     $phone3->setNumber('3493123123');
     $phone3->setType(PhoneType::WORK());
     $person2->addPhone($phone3);
     $expected = $this->getProtoContent('addressbook.bin');
     $actual = $book->toStream();
     $this->assertEquals($expected, (string) $actual);
     $this->assertSerializedMessageSize($expected, $book);
 }
 public function testFormatComplexMessage()
 {
     $book = new AddressBook();
     $person = new Person();
     $person->setId(2051);
     $person->setName('John Doe');
     $person->setEmail('*****@*****.**');
     $phone = new Person\PhoneNumber();
     $phone->setNumber('1231231212');
     $phone->setType(Person\PhoneType::HOME());
     $person->addPhone($phone);
     $phone = new Person\PhoneNumber();
     $phone->setNumber('55512321312');
     $phone->setType(Person\PhoneType::MOBILE());
     $person->addPhone($phone);
     $book->addPerson($person);
     $person = new Person();
     $person->setId(23);
     $person->setName('Iván Montes');
     $person->setEmail('*****@*****.**');
     $phone = new Person\PhoneNumber();
     $phone->setNumber('3493123123');
     $phone->setType(Person\PhoneType::WORK());
     $person->addPhone($phone);
     $book->addPerson($person);
     $expected = $this->getProtoContent('addressbook.txt');
     $actual = $this->textFormat->encodeMessage($book);
     $this->assertEquals($expected, (string) $actual);
 }