createDatabaseInterface(); } public function testWithLatestCompatibleVersion(): void { $_GET = []; $versionInfo = [ new Release('5.1.3', '2022-02-11', '>=7.1,<8.1', '>=5.5'), new Release('4.9.10', '2022-02-11', '>=5.5,<8.0', '>=5.5'), ]; $versionInformation = $this->createMock(VersionInformation::class); $versionInformation->expects(self::once())->method('getLatestVersions')->willReturn($versionInfo); $versionInformation->expects(self::once())->method('getLatestCompatibleVersion') ->with(self::equalTo($versionInfo)) ->willReturn($versionInfo[0]); (new VersionCheckController( new ResponseRenderer(), new Template(), $versionInformation, ))(self::createStub(ServerRequest::class)); $output = $this->getActualOutputForAssertion(); self::assertTrue(isset($_GET['ajax_request'])); self::assertSame('{"version":"5.1.3","date":"2022-02-11"}', $output); } public function testWithoutLatestCompatibleVersion(): void { $_GET = []; $versionInfo = [ new Release('5.1.3', '2022-02-11', '>=7.1,<8.1', '>=5.5'), new Release('4.9.10', '2022-02-11', '>=5.5,<8.0', '>=5.5'), ]; $versionInformation = $this->createMock(VersionInformation::class); $versionInformation->expects(self::once())->method('getLatestVersions')->willReturn($versionInfo); $versionInformation->expects(self::once())->method('getLatestCompatibleVersion') ->with(self::equalTo($versionInfo)) ->willReturn(null); (new VersionCheckController( new ResponseRenderer(), new Template(), $versionInformation, ))(self::createStub(ServerRequest::class)); $output = $this->getActualOutputForAssertion(); self::assertTrue(isset($_GET['ajax_request'])); self::assertSame('{"version":"","date":""}', $output); } public function testWithoutLatestVersion(): void { $_GET = []; $versionInformation = $this->createMock(VersionInformation::class); $versionInformation->expects(self::once())->method('getLatestVersions')->willReturn(null); $versionInformation->expects(self::never())->method('getLatestCompatibleVersion'); (new VersionCheckController( new ResponseRenderer(), new Template(), $versionInformation, ))(self::createStub(ServerRequest::class)); $output = $this->getActualOutputForAssertion(); self::assertTrue(isset($_GET['ajax_request'])); self::assertSame('[]', $output); } }