/** * @test * @group metadata * @group contactperson */ public function adding_an_email_address_returns_a_new_list_with_that_email_address_appended() { $initialEmailOne = new EmailAddress('*****@*****.**'); $initialEmailTwo = new EmailAddress('*****@*****.**'); $additionalEmail = new EmailAddress('*****@*****.**'); $list = new EmailAddressList(array($initialEmailOne, $initialEmailTwo)); $newList = $list->add($additionalEmail); $this->assertNotSame($newList, $list, 'when adding an element to a list a new list must be returned'); $this->assertTrue($list->contains($initialEmailOne)); $this->assertTrue($list->contains($initialEmailTwo)); $this->assertFalse($list->contains($additionalEmail)); $this->assertTrue($newList->contains($initialEmailOne)); $this->assertTrue($newList->contains($initialEmailTwo)); $this->assertTrue($newList->contains($additionalEmail)); }