public function testDeletesWholeSeriesWhenAdminRegardlessOfDate() { $r1 = new TestReservation(); $r1->SetReservationDate(TestDateRange::CreateWithDays(-1)); $r2 = new TestReservation(); $r2->SetReservationDate(TestDateRange::CreateWithDays(-2)); $builder = new ExistingReservationSeriesBuilder(); $builder->WithCurrentInstance($r1); $builder->WithInstance($r2); $series = $builder->Build(); $series->ApplyChangesTo(SeriesUpdateScope::FullSeries); $series->Delete($this->admin); $events = $series->GetEvents(); $this->assertEquals(1, count($events)); $this->assertTrue(in_array(new SeriesDeletedEvent($series), $events)); }
public function testChangesOwner() { $currentOwner = 1111; $newOwner = 2222; $instanceId1 = 100; $reservation1 = new TestReservation(null, null, $instanceId1); $instanceId2 = 101; $reservation2 = new TestReservation(null, null, $instanceId2); $builder = new ExistingReservationSeriesBuilder(); $builder->WithInstance($reservation1); $builder->WithInstance($reservation2); $series = $builder->Build(); $series->WithOwner($currentOwner); $series->Update($newOwner, $series->Resource(), '', '', $this->fakeUser); $this->repository->Update($series); $this->assertTrue($this->db->ContainsCommand($this->GetRemoveUserCommand($instanceId1, $currentOwner))); $this->assertTrue($this->db->ContainsCommand($this->GetRemoveUserCommand($instanceId1, $newOwner))); $this->assertTrue($this->db->ContainsCommand($this->GetAddUserCommand($instanceId1, $newOwner, ReservationUserLevel::OWNER))); $this->assertTrue($this->db->ContainsCommand($this->GetRemoveUserCommand($instanceId2, $currentOwner))); $this->assertTrue($this->db->ContainsCommand($this->GetRemoveUserCommand($instanceId2, $newOwner))); $this->assertTrue($this->db->ContainsCommand($this->GetAddUserCommand($instanceId2, $newOwner, ReservationUserLevel::OWNER))); }
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)); }