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()); }