public function testGetsScheduleResourcesUserHasAdminRightsTo() { $scheduleId = 100; $user = $this->getMock('User'); $this->userRepository->expects($this->once())->method('LoadById')->with($this->equalTo($this->fakeUser->UserId))->will($this->returnValue($user)); $ra = new FakeResourceAccess(); $this->db->SetRows($ra->GetRows()); $user->expects($this->at(0))->method('IsResourceAdminFor')->with($this->equalTo($ra->_Resources[0]))->will($this->returnValue(false)); $user->expects($this->at(1))->method('IsResourceAdminFor')->with($this->equalTo($ra->_Resources[1]))->will($this->returnValue(true)); $repo = new ResourceAdminResourceRepository($this->userRepository, $this->fakeUser); $resources = $repo->GetScheduleResources($scheduleId); $this->assertTrue($this->db->ContainsCommand(new GetScheduleResourcesCommand($scheduleId))); $this->assertEquals(1, count($resources)); $this->assertEquals(2, $resources[0]->GetId()); }
public function testGetsResourceGroups() { $scheduleId = 123; $groupRows = new ResourceGroupRow(); $groupRows->With(1, 'group1')->With(2, 'group1a', 1)->With(3, 'group1a1', 2)->With(4, 'group2')->With(5, 'group2a', 4)->With(6, 'group3')->With(7, 'group1b', 1); $assignmentRows = new ResourceGroupAssignmentRow(); $assignmentRows->With(1, 'resource1', 3)->With(2, 'resource2', 3)->With(3, 'resource3', 4)->With(4, 'resource4', 5)->With(5, 'resource5', 5); $resourceRows = new FakeResourceAccess(); $resourceRows->With(1, 'resource1')->With(2, 'resource2')->With(3, 'resource3')->With(4, 'resource4')->With(5, 'resource5'); $this->db->SetRow(0, $groupRows->Rows()); $this->db->SetRow(1, $assignmentRows->Rows()); $this->db->SetRow(2, $resourceRows->Rows()); $groups = $this->repository->GetResourceGroups($scheduleId, new SkipResource5Filter())->GetGroups(); $getResourceGroupsCommand = new GetAllResourceGroupsCommand(); $getResourceGroupAssignments = new GetAllResourceGroupAssignmentsCommand($scheduleId); $this->assertEquals(4, count($groups)); $this->assertEquals(0, $groups[0]->id, 'should have added an "all" group'); $this->assertEquals('group1', $groups[1]->label); $this->assertEquals(1, $groups[1]->id); $this->assertEquals(null, $groups[1]->parent_id); $this->assertEquals(2, count($groups[1]->children)); $this->assertEquals(1, count($groups[1]->children[0])); $this->assertEquals('group1a', $groups[1]->children[0]->label); $this->assertEquals('group1a1', $groups[1]->children[0]->children[0]->label); $this->assertEquals('resource1', $groups[1]->children[0]->children[0]->children[0]->label); $this->assertEquals('resource2', $groups[1]->children[0]->children[0]->children[1]->label); $this->assertEquals('resource3', $groups[2]->children[1]->label); $this->assertEquals($getResourceGroupsCommand, $this->db->_Commands[0]); $this->assertEquals($getResourceGroupAssignments, $this->db->_Commands[1]); }