public function testWhenUserJoinsAllAndThereIsNotSpace() { $invitationAction = InvitationAction::JoinAll; $currentUserId = 1029; $referenceNumber = 'abc123'; $builder = new ExistingReservationSeriesBuilder(); $instance = new TestReservation(); $instance->WithParticipants(array(1)); $instance->WithInvitee($currentUserId); $resource = new FakeBookableResource(1); $resource->SetMaxParticipants(1); $builder->WithCurrentInstance($instance)->WithPrimaryResource($resource); $series = $builder->Build(); $this->page->expects($this->once())->method('GetResponseType')->will($this->returnValue('json')); $this->page->expects($this->once())->method('GetInvitationAction')->will($this->returnValue($invitationAction)); $this->page->expects($this->once())->method('GetInvitationReferenceNumber')->will($this->returnValue($referenceNumber)); $this->page->expects($this->once())->method('GetUserId')->will($this->returnValue($currentUserId)); $this->reservationRepo->expects($this->once())->method('LoadByReferenceNumber')->with($this->equalTo($referenceNumber))->will($this->returnValue($series)); $this->page->expects($this->once())->method('DisplayResult')->with($this->stringContains('ParticipationNotAllowed')); $this->presenter->PageLoad(); }
public function testChangesParticipantsForAllInstances() { $instanceId1 = 100; $reservation1 = new TestReservation(null, null, $instanceId1); $reservation1->WithParticipants(array(1, 2, 3)); $instanceId2 = 101; $reservation2 = new TestReservation(null, null, $instanceId2); $reservation2->WithParticipants(array(2, 3)); $builder = new ExistingReservationSeriesBuilder(); $builder->WithInstance($reservation1); $builder->WithInstance($reservation2); $series = $builder->BuildTestVersion(); $series->ChangeParticipants(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::PARTICIPANT))); $this->assertTrue($this->db->ContainsCommand($this->GetRemoveUserCommand($instanceId2, 2))); $this->assertTrue($this->db->ContainsCommand($this->GetAddUserCommand($instanceId2, 4, ReservationUserLevel::PARTICIPANT))); }
public function testJoinsCurrentInstance() { $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->WithParticipants(array($userId)); $r3->SetReservationId(100); $builder = new ExistingReservationSeriesBuilder(); $builder->WithCurrentInstance($r1); $builder->WithInstance($r2); $builder->WithInstance($r3); $series = $builder->Build(); $series->AllowParticipation(true); $series->JoinReservation($userId); $events = $series->GetEvents(); $this->assertContains($userId, $r1->AddedParticipants()); $this->assertContains($userId, $r1->RemovedInvitees()); $this->assertTrue(in_array(new InstanceUpdatedEvent($r1, $series), $events)); $this->assertFalse(in_array(new InstanceUpdatedEvent($r2, $series), $events)); $this->assertFalse(in_array(new InstanceUpdatedEvent($r3, $series), $events)); }