Started PHPUnit Tests

This commit is contained in:
kremsy 2017-04-15 13:21:49 +02:00
parent 19c500c105
commit eb6dc3db1a
6 changed files with 132 additions and 7 deletions

15
Tests/core/LoggerTest.php Normal file
View File

@ -0,0 +1,15 @@
<?php
/**
* Created by PhpStorm.
* User: Lukas
* Date: 14. Apr. 2017
* Time: 22:41
*/
use ManiaControl\Logger;
class LoggerTest extends PHPUnit_Framework_TestCase {
public function testGetLogsFolder(){
$this->assertEquals(Logger::getLogsFolder(), MANIACONTROL_PATH . 'logs' . DIRECTORY_SEPARATOR);
}
}

View File

@ -0,0 +1,23 @@
<?php
use ManiaControl\ManiaControl;
class ManiaControlTest extends PHPUnit_Framework_TestCase {
public function testRun(){
$maniaControl = new ManiaControl();
$maniaControl->run(10);
sleep(15);
//$this->l
//$this->assertNull($maniaControl);
}
/* public function testGetClient(){
$maniaControl = new ManiaControl();
$mcClient = $maniaControl->getClient();
//$maniaControl->connect();
//$mpClient = new Maniaplanet\DedicatedServer\Connection();
}*/
}

View File

@ -0,0 +1,70 @@
<?php
namespace Tests\core\Update;
use ManiaControl\ManiaControl;
use ManiaControl\Update\UpdateManager;
final class UpdateManagerTest extends \PHPUnit_Framework_TestCase {
public function testBuildDate() {
$maniaControl = new ManiaControl();
$updateManager = new UpdateManager($maniaControl);
$fileName = MANIACONTROL_PATH . "core" . DIRECTORY_SEPARATOR . UpdateManager::BUILD_DATE_FILE_NAME;
if(!file_exists($fileName)){
$this->assertTrue($updateManager->setBuildDate("BuildDateTest-6543210"));
}
$this->assertFileExists($fileName);
$buildDate = $updateManager->getBuildDate();
$this->assertStringEqualsFile($fileName, $buildDate);
$this->assertTrue($updateManager->setBuildDate("BuildDateTest-0123456"));
$this->assertEquals($updateManager->getBuildDate(), "BuildDateTest-0123456");
$this->assertStringEqualsFile($fileName, $updateManager->getBuildDate());
}
public function testGetPluginUpdateManagerTest() {
$maniaControl = new ManiaControl();
$updateManager = new UpdateManager($maniaControl);
$pluginUpdateManager = $updateManager->getPluginUpdateManager();
$this->assertInstanceOf("ManiaControl\\Update\\PluginUpdateManager", $pluginUpdateManager);
}
public function testIsNightlyUpdateChannel() {
$maniaControl = new ManiaControl();
$updateManager = new UpdateManager($maniaControl);
$this->assertTrue($updateManager->isNightlyUpdateChannel(UpdateManager::CHANNEL_NIGHTLY));
$isNightly = $updateManager->isNightlyUpdateChannel(null);
$this->assertEquals($updateManager->isNightlyUpdateChannel($updateManager->getCurrentUpdateChannelSetting()), $isNightly);
}
public function testCoreUpdateAsync() {
$maniaControl = new ManiaControl();
$updateManager = $maniaControl->getUpdateManager();
$called = false;
$function = function ($updateData) use (&$called){
$called = true;
$this->assertNotNull($updateData);
$this->assertObjectHasAttribute("version", $updateData);
};
$updateManager->checkCoreUpdateAsync($function);
$maniaControl->run(6);
$this->assertTrue($called);
}
}

View File

@ -166,6 +166,8 @@ class ManiaControl implements CallbackListener, CommandListener, TimerListener,
private $requestQuitMessage = null;
private $startTime = -1;
/**
* Construct a new ManiaControl instance
*/
@ -547,11 +549,12 @@ class ManiaControl implements CallbackListener, CommandListener, TimerListener,
$this->requestQuitMessage = $message;
}
/**
* Run ManiaControl
*
* @param int $runTime Time in Seconds until its terminating (used for PHPUnit Tests)
*/
public function run() {
public function run($runTime = -1) {
Logger::log('Starting ManiaControl v' . self::VERSION . '!');
try {
@ -583,14 +586,22 @@ class ManiaControl implements CallbackListener, CommandListener, TimerListener,
Logger::log('Link: ' . $this->getServer()->getJoinLink());
$this->getChat()->sendInformation('ManiaControl v' . self::VERSION . ' successfully started!');
$this->startTime = time();
// Main loop
while (!$this->requestQuitMessage) {
$this->loop();
//Used for PHPUnit Tests
if ($runTime > 0) {
if (time() > ($this->startTime + $runTime)) {
$this->requestQuit("Run Time Exceeded");
}
}
}
// Shutdown
$this->quit($this->requestQuitMessage);
} catch (TransportException $exception) {
Logger::logError('Connection interrupted!');
$this->getErrorHandler()->handleException($exception);
@ -679,7 +690,9 @@ class ManiaControl implements CallbackListener, CommandListener, TimerListener,
$loopStart = microtime(true);
// Extend script timeout
if(!defined('PHP_UNIT_TEST')){
set_time_limit(self::SCRIPT_TIMEOUT);
}
// Manage callbacks
$this->getCallbackManager()->manageCallbacks();

View File

@ -145,6 +145,7 @@ class UpdateManager implements CallbackListener, CommandListener, TimerListener
Logger::logError('Error on UpdateCheck: ' . $error);
return;
}
$versions = json_decode($dataJson);
if (!$versions || !isset($versions[0])) {
call_user_func($function);

View File

@ -117,8 +117,11 @@ class SystemUtil {
Logger::log($message);
}
}
if (!defined('PHP_UNIT_TEST')) {
exit;
}
}
/**
* Restart ManiaControl immediately