getContainer()->get('entityManager'); $contact = $entityManager->createEntity('Contact', [ 'emailAddress' => 'test@test.com', ]); $contact = $entityManager->getEntity('Contact', $contact->getId()); /* @var $group1 EmailAddressGroup */ $group1 = $contact->getEmailAddressGroup(); $this->assertEquals(1, $group1->getCount()); $this->assertEquals('test@test.com', $group1->getPrimary()->getAddress()); $group2 = EmailAddressGroup::create() ->withAdded( EmailAddress::create('test-a@test.com')->invalid() ) ->withAdded( EmailAddress::create('test@test.com')->optedOut() ); $contact->setValueObject('emailAddress', $group2); $entityManager->saveEntity($contact); $contact = $entityManager->getEntity('Contact', $contact->getId()); /* @var $group3 EmailAddressGroup */ $group3 = $contact->getEmailAddressGroup(); $this->assertEquals(2, $group3->getCount()); $this->assertEquals('test-a@test.com', $group3->getPrimary()->getAddress()); $this->assertTrue($group3->getPrimary()->isInvalid()); $this->assertTrue($group3->getList()[1]->isOptedOut()); $group4 = EmailAddressGroup::create() ->withAdded( EmailAddress::create('test-a@test.com')->invalid() ); $contact->setValueObject('emailAddress', $group4); $entityManager->saveEntity($contact); $contact = $entityManager->getEntity('Contact', $contact->getId()); /* @var $group5 EmailAddressGroup */ $group5 = $contact->getEmailAddressGroup(); $this->assertEquals(1, $group5->getCount()); } public function testEmailAddress2(): void { /* @var $entityManager EntityManager */ $entityManager = $this->getContainer()->get('entityManager'); $lead = $entityManager->createEntity('Lead', [ 'emailAddress' => 'test@test.com', ]); $contact = $entityManager->createEntity('Contact', [ 'emailAddress' => 'test@test.com', ]); $contactFetched = $entityManager->getEntity('Contact', $contact->getId()); /* @var $group EmailAddressGroup */ $group = $contactFetched->getEmailAddressGroup(); $this->assertEquals(1, $group->getCount()); $this->assertEquals('test@test.com', $group->getPrimary()->getAddress()); } }