/** * @test * @group metadata * @group contactperson */ public function adding_a_telephone_number_returns_a_new_list_with_that_number_appended() { $initialNumberOne = new TelephoneNumber('123'); $initialNumberTwo = new TelephoneNumber('456'); $additionalNumber = new TelephoneNumber('789'); $list = new TelephoneNumberList(array($initialNumberOne, $initialNumberTwo)); $newList = $list->add($additionalNumber); $this->assertNotSame($newList, $list, 'when adding an element to a list a new list must be returned'); $this->assertTrue($list->contains($initialNumberOne)); $this->assertTrue($list->contains($initialNumberTwo)); $this->assertFalse($list->contains($additionalNumber)); $this->assertTrue($newList->contains($initialNumberOne)); $this->assertTrue($newList->contains($initialNumberTwo)); $this->assertTrue($newList->contains($additionalNumber)); }