public function testRunsCustomReport()
 {
     $this->SetupPage();
     $expectedStart = $this->page->_RangeStart;
     $expectedEnd = $this->page->_RangeEnd;
     $expectedReport = new FakeReport();
     $usage = new Report_Usage($this->page->_Usage);
     $selection = new Report_ResultSelection($this->page->_ResultSelection);
     $groupBy = new Report_GroupBy($this->page->_GroupBy);
     $range = new Report_Range($this->page->_Range, $expectedStart, $expectedEnd, $this->fakeUser->Timezone);
     $filter = new Report_Filter($this->page->_ResourceId, $this->page->_ScheduleId, $this->page->_UserId, $this->page->_GroupId, $this->page->_AccessoryId, $this->page->_ParticipantId);
     $this->reportingService->expects($this->once())->method('GenerateCustomReport')->with($this->equalTo($usage), $this->equalTo($selection), $this->equalTo($groupBy), $this->equalTo($range), $this->equalTo($filter))->will($this->returnValue($expectedReport));
     $this->presenter->GenerateCustomReport();
     $this->assertEquals($expectedReport, $this->page->_BoundReport);
 }