public function testOnlyGetsSchedulesWhereUserIsAdmin() { $user = $this->getMock('User'); $this->userRepository->expects($this->once())->method('LoadById')->with($this->equalTo($this->fakeUser->UserId))->will($this->returnValue($user)); $ra = new FakeScheduleRepository(); $this->db->SetRows($ra->GetRows()); $user->expects($this->at(0))->method('IsScheduleAdminFor')->with($this->equalTo($ra->_AllRows[0]))->will($this->returnValue(false)); $user->expects($this->at(1))->method('IsScheduleAdminFor')->with($this->equalTo($ra->_AllRows[1]))->will($this->returnValue(true)); $schedules = $this->repo->GetAll(); $this->assertTrue($this->db->ContainsCommand(new GetAllSchedulesCommand())); $this->assertEquals(1, count($schedules)); $this->assertEquals(2, $schedules[0]->GetId()); }
public function testCanGetAllSchedules() { $fakeSchedules = new FakeScheduleRepository(); $rows = $fakeSchedules->GetRows(); $this->db->SetRow(0, $rows); $expected = array(); foreach ($rows as $item) { $schedule = new Schedule($item[ColumnNames::SCHEDULE_ID], $item[ColumnNames::SCHEDULE_NAME], $item[ColumnNames::SCHEDULE_DEFAULT], $item[ColumnNames::SCHEDULE_WEEKDAY_START], $item[ColumnNames::SCHEDULE_DAYS_VISIBLE], $item[ColumnNames::TIMEZONE_NAME]); $schedule->SetAdminGroupId($item[ColumnNames::SCHEDULE_ADMIN_GROUP_ID]); $expected[] = $schedule; } $actualSchedules = $this->scheduleRepository->GetAll(); $this->assertEquals(new GetAllSchedulesCommand(), $this->db->_Commands[0]); $this->assertTrue($this->db->GetReader(0)->_FreeCalled); $this->assertEquals($expected, $actualSchedules); }