public function testChangesInviteesForAllInstances() { $instanceId1 = 100; $reservation1 = new TestReservation(null, null, $instanceId1); $reservation1->WithInvitees(array(1, 2, 3)); $instanceId2 = 101; $reservation2 = new TestReservation(null, null, $instanceId2); $reservation2->WithInvitees(array(2, 3)); $builder = new ExistingReservationSeriesBuilder(); $builder->WithInstance($reservation1); $builder->WithInstance($reservation2); $series = $builder->BuildTestVersion(); $series->ChangeInvitees(array(3, 4)); $this->repository->Update($series); $this->assertTrue($this->db->ContainsCommand($this->GetRemoveUserCommand($instanceId1, 1))); $this->assertTrue($this->db->ContainsCommand($this->GetRemoveUserCommand($instanceId1, 2))); $this->assertTrue($this->db->ContainsCommand($this->GetAddUserCommand($instanceId1, 4, ReservationUserLevel::INVITEE))); $this->assertTrue($this->db->ContainsCommand($this->GetRemoveUserCommand($instanceId2, 2))); $this->assertTrue($this->db->ContainsCommand($this->GetAddUserCommand($instanceId2, 4, ReservationUserLevel::INVITEE))); }
public function testDeclinesInvitesForEachInstance() { $userId = 1; $r1 = new TestReservation(); $r1->WithInvitees(array($userId)); $r1->SetReservationId(100); $r2 = new TestReservation(); $r2->WithInvitees(array($userId)); $r2->SetReservationId(100); $r3 = new TestReservation(); $r3->WithInvitees(array(10)); $r3->SetReservationId(100); $builder = new ExistingReservationSeriesBuilder(); $builder->WithInstance($r1); $builder->WithInstance($r2); $builder->WithInstance($r3); $series = $builder->Build(); $series->DeclineInvitation($userId); $events = $series->GetEvents(); $this->assertContains($userId, $r1->RemovedInvitees()); $this->assertContains($userId, $r2->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)); }