response = new ResponseRenderer(); $this->template = new Template(); $this->data = new Data(); } public function testIndexWithoutData(): void { $this->data->dataLoaded = false; $controller = new AdvisorController( $this->response, $this->template, $this->data, new Advisor($GLOBALS['dbi'], new ExpressionLanguage()) ); $controller(); $expected = $this->template->render('server/status/advisor/index', [ 'data' => [], ]); $this->assertSame( $expected, $this->response->getHTMLResult() ); } public function testIndexWithData(): void { $advisorData = [ 'parse' => ['errors' => ['Error1', 'Error2']], 'run' => [ 'errors' => ['Error1', 'Error2'], 'fired' => [ [ 'issue' => 'issue1', 'recommendation' => 'recommendation1', 'justification' => 'justification1', 'formula' => 'formula1', 'test' => 'test1', ], [ 'issue' => 'issue2', 'recommendation' => 'recommendation2', 'justification' => 'justification2', 'formula' => 'formula2', 'test' => 'test2', ], ], ], ]; $advisor = $this->createMock(Advisor::class); $advisor->method('run')->willReturn($advisorData); $this->data->dataLoaded = true; $controller = new AdvisorController( $this->response, $this->template, $this->data, $advisor ); $controller(); $expected = $this->template->render('server/status/advisor/index', ['data' => $advisorData]); $this->assertSame( $expected, $this->response->getHTMLResult() ); } }