public function testRemovesParticipationFromAllInstances() { $userId = 1; $r1 = new TestReservation(); $r1->WithParticipant($userId); $r1->SetReservationId(100); $r2 = new TestReservation(); $r2->WithParticipant($userId); $r2->SetReservationId(101); $r3 = new TestReservation(); $r3->WithParticipant(89); $r3->SetReservationId(102); $builder = new ExistingReservationSeriesBuilder(); $builder->WithInstance($r1); $builder->WithInstance($r2); $builder->WithInstance($r3); $series = $builder->Build(); $series->CancelAllParticipation($userId); $events = $series->GetEvents(); $this->assertContains($userId, $r1->RemovedParticipants()); $this->assertContains($userId, $r2->RemovedParticipants()); $this->assertEmpty($r3->RemovedInvitees()); $this->assertTrue(in_array(new InstanceUpdatedEvent($r1, $series), $events)); $this->assertTrue(in_array(new InstanceUpdatedEvent($r2, $series), $events)); $this->assertFalse(in_array(new InstanceUpdatedEvent($r3, $series), $events)); }