public function setup()
 {
     parent::setup();
     $this->rule = new ResourceParticipationRule();
     $this->resourceLimit10 = new FakeBookableResource(1, 'name1');
     $this->resourceLimit10->SetMaxParticipants(10);
     $this->resourceLimit20 = new FakeBookableResource(2, 'name2');
     $this->resourceLimit20->SetMaxParticipants(20);
 }
 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 testFiltersByMinCapacity()
 {
     $minCapacity = 10;
     $resource1 = new FakeBookableResource(1, 'resource1');
     $resource1->SetMaxParticipants($minCapacity);
     $resource2 = new FakeBookableResource(2, 'resource2');
     $resource2->SetMaxParticipants($minCapacity - 1);
     $resource3 = new FakeBookableResource(3, 'resource3');
     $resource3->SetMaxParticipants($minCapacity + 1);
     $resources = array($resource1, $resource2, $resource3);
     $filter = new ScheduleResourceFilter();
     $filter->MinCapacity = $minCapacity;
     $resourceIds = $filter->FilterResources($resources, $this->resourceRepository, $this->attributeService);
     $this->assertEquals(2, count($resourceIds));
     $this->assertEquals(1, $resourceIds[0]);
     $this->assertEquals(3, $resourceIds[1]);
 }