public function testBuildsCustomResourceReport() { $start = '2010-01-01'; $end = '2010-01-02'; $resourceId = 1; $scheduleId = 2; $userId = 3; $groupId = 4; $accessoryId = 5; $participantId = 6; $usage = new Report_Usage(Report_Usage::RESOURCES); $selection = new Report_ResultSelection(Report_ResultSelection::FULL_LIST); $groupBy = new Report_GroupBy(Report_GroupBy::GROUP); $range = new Report_Range(Report_Range::DATE_RANGE, $start, $end, 'UTC'); $filter = new Report_Filter($resourceId, $scheduleId, $userId, $groupId, $accessoryId, $participantId); $commandBuilder = new ReportCommandBuilder(); $commandBuilder->SelectFullList()->OfResources()->Within(Date::Parse($start, 'UTC'), Date::Parse($end, 'UTC'))->WithResourceId($resourceId)->WithUserId($userId)->WithParticipantId($participantId)->WithScheduleId($scheduleId)->WithGroupId($groupId)->WithAccessoryId($accessoryId)->GroupByGroup(); $rows = array(array(ColumnNames::OWNER_FIRST_NAME => 'value', ColumnNames::OWNER_LAST_NAME => 'value', ColumnNames::OWNER_USER_ID => 'value')); $this->reportingRepository->expects($this->once())->method('GetCustomReport')->with($this->equalTo($commandBuilder))->will($this->returnValue($rows)); $report = $this->rs->GenerateCustomReport($usage, $selection, $groupBy, $range, $filter); $cols = new ReportColumns(); $cols->Add(ColumnNames::OWNER_FIRST_NAME); $cols->Add(ColumnNames::OWNER_LAST_NAME); $cols->Add(ColumnNames::OWNER_USER_ID); $this->assertEquals($cols, $report->GetColumns()); $this->assertEquals(new CustomReportData($rows), $report->GetData()); }
public function Add(ReportCommandBuilder $builder) { if ($this->selection == self::FULL_LIST) { $builder->SelectFullList(); } if ($this->selection == self::COUNT) { $builder->SelectCount(); } if ($this->selection == self::TIME) { $builder->SelectTime(); } }
public function testFilteredByDateRange() { $resourceId = 123; $start = Date::Now(); $end = Date::Now(); $builder = new ReportCommandBuilder(); $actual = $builder->SelectFullList()->OfResources()->WithResourceId($resourceId)->Within($start, $end)->Build(); $this->assertContains(ReportCommandBuilder::USER_LIST_FRAGMENT, $actual->GetQuery()); $this->assertContains(ReportCommandBuilder::RESOURCE_LIST_FRAGMENT, $actual->GetQuery()); $this->assertContains(ReportCommandBuilder::RESOURCE_JOIN_FRAGMENT, $actual->GetQuery()); $this->assertContains(ReportCommandBuilder::RESOURCE_ID_FRAGMENT, $actual->GetQuery()); $this->assertContains(ReportCommandBuilder::DATE_FRAGMENT, $actual->GetQuery()); }
private function AccessoriesAllTime() { $builder = new ReportCommandBuilder(); $builder->SelectFullList()->OfAccessories(); return $builder; }
public function testThisMonthsAccessories() { $report = new CannedReport(CannedReport::ACCESSORIES_THISMONTH, $this->fakeUser); $range = new Report_Range(Report_Range::CURRENT_MONTH, null, null, $this->fakeUser->Timezone); $builder = $report->GetBuilder(); $expected = new ReportCommandBuilder(); $expected->SelectFullList()->OfAccessories()->Within($range->Start(), $range->End()); $this->assertEquals($expected, $builder); }