Refactor ModelTestCase so I can use it outside of the Core.

This commit is contained in:
Austen McDonald
2016-08-22 05:10:55 +00:00
parent db95b84452
commit 86751fc6d5
15 changed files with 266 additions and 253 deletions
+3
View File
@@ -1,4 +1,7 @@
<phpunit bootstrap="bootstrap/bootstrap.php">
<php>
<env name="LOTGD_TESTS_CONFIG_PATH" value="./config/lotgd.yml"/>
</php>
<testsuites>
<testsuite name="All">
<directory>tests</directory>
+214 -217
View File
File diff suppressed because it is too large Load Diff
+16
View File
@@ -0,0 +1,16 @@
<?php
declare(strict_types=1);
namespace LotGD\Core\Tests;
class CoreModelTestCase extends ModelTestCase
{
/**
* Returns a .yml dataset under this name
* @return \PHPUnit_Extensions_Database_DataSet_YamlDataSet
*/
protected function getDataSet(): \PHPUnit_Extensions_Database_DataSet_YamlDataSet
{
return new \PHPUnit_Extensions_Database_DataSet_YamlDataSet(implode(DIRECTORY_SEPARATOR, [__DIR__, 'datasets', $this->dataset . '.yml']));
}
}
+2 -2
View File
@@ -10,7 +10,7 @@ use LotGD\Core\Exceptions\WrongTypeException;
use LotGD\Core\Exceptions\ClassNotFoundException;
use LotGD\Core\Exceptions\SubscriptionNotFoundException;
use LotGD\Core\Models\EventSubscription;
use LotGD\Core\Tests\ModelTestCase;
use LotGD\Core\Tests\CoreModelTestCase;
use LotGD\Core\Tests\FakeModule\Module as FakeModule;
class EventManagerTestInvalidSubscriber
@@ -23,7 +23,7 @@ class EventManagerTestSubscriber implements EventHandler
public static function handleEvent(Game $g, string $event, array &$context) {}
}
class EventManagerTest extends ModelTestCase
class EventManagerTest extends CoreModelTestCase
{
/** @var string default data set */
protected $dataset = "eventManager";
+3 -3
View File
@@ -21,7 +21,7 @@ use LotGD\Core\Exceptions\ {
CharacterNotFoundException,
InvalidConfigurationException
};
use LotGD\Core\Tests\ModelTestCase;
use LotGD\Core\Tests\CoreModelTestCase;
class DefaultSceneProvider implements EventHandler
{
@@ -48,7 +48,7 @@ class DefaultSceneProvider implements EventHandler
}
}
class GameTest extends ModelTestCase
class GameTest extends CoreModelTestCase
{
/** @var string default data set */
protected $dataset = "game";
@@ -62,7 +62,7 @@ class GameTest extends ModelTestCase
$logger = new Logger('test');
$logger->pushHandler(new NullHandler());
$this->g = new Game(new Configuration(implode(DIRECTORY_SEPARATOR, [__DIR__, '..', 'config', 'lotgd.yml'])), $logger, $this->getEntityManager(), implode(DIRECTORY_SEPARATOR, [__DIR__, '..']));
$this->g = new Game(new Configuration(getenv('LOTGD_TESTS_CONFIG_PATH')), $logger, $this->getEntityManager(), implode(DIRECTORY_SEPARATOR, [__DIR__, '..']));
}
public function testGetCharacterException()
+10 -13
View File
@@ -10,6 +10,8 @@ use Doctrine\ORM\Tools\Setup;
use Doctrine\ORM\Tools\SchemaTool;
use LotGD\Core\Configuration;
use LotGD\Core\ComposerManager;
use LotGD\Core\LibraryConfigurationManager;
use LotGD\Core\Exceptions\InvalidConfigurationException;
/**
@@ -31,7 +33,7 @@ abstract class ModelTestCase extends \PHPUnit_Extensions_Database_TestCase
final public function getConnection(): \PHPUnit_Extensions_Database_DB_DefaultDatabaseConnection
{
if ($this->connection === null) {
$configFilePath = implode(DIRECTORY_SEPARATOR, [getcwd(), 'config', 'lotgd.yml']);
$configFilePath = getenv('LOTGD_TESTS_CONFIG_PATH');
if ($configFilePath === false || strlen($configFilePath) == 0 || is_file($configFilePath) === false) {
throw new InvalidConfigurationException("Invalid or missing configuration file: '{$configFilePath}'.");
}
@@ -41,7 +43,13 @@ abstract class ModelTestCase extends \PHPUnit_Extensions_Database_TestCase
self::$pdo = new \PDO($config->getDatabaseDSN(), $config->getDatabaseUser(), $config->getDatabasePassword());
// Read db annotations from model files
$configuration = Setup::createAnnotationMetadataConfiguration(["src/Models"], true);
$composerManager = new ComposerManager(getcwd());
$libraryConfigurationManager = new LibraryConfigurationManager($composerManager, getcwd());
$directories = $libraryConfigurationManager->getEntityDirectories();
$directories[] = implode(DIRECTORY_SEPARATOR, [__DIR__, '..', 'src', 'Models']);
// Read db annotations from model files
$configuration = Setup::createAnnotationMetadataConfiguration($directories, true);
$configuration->setQuoteStrategy(new AnsiQuoteStrategy());
self::$em = EntityManager::create(["pdo" => self::$pdo], $configuration);
@@ -58,17 +66,6 @@ abstract class ModelTestCase extends \PHPUnit_Extensions_Database_TestCase
return $this->connection;
}
/**
* Returns a .yml dataset under this name
* @return \PHPUnit_Extensions_Database_DataSet_YamlDataSet
*/
protected function getDataSet(): \PHPUnit_Extensions_Database_DataSet_YamlDataSet
{
return new \PHPUnit_Extensions_Database_DataSet_YamlDataSet(
__DIR__."/datasets/".$this->dataset.".yml"
);
}
/**
* Returns the current entity manager
* @return EntityManagerInterface
+2 -2
View File
@@ -5,13 +5,13 @@ namespace LotGD\Core\Tests\Models;
use LotGD\Core\Models\Character;
use LotGD\Core\Models\CharacterProperty;
use LotGD\Core\Tests\ModelTestCase;
use LotGD\Core\Tests\CoreModelTestCase;
use LotGD\Core\Models\Repositories\CharacterRepository;
/**
* Tests the management of Characters
*/
class CharacterModelTest extends ModelTestCase
class CharacterModelTest extends CoreModelTestCase
{
/** @var string default data set */
protected $dataset = "character";
+2 -2
View File
@@ -9,7 +9,7 @@ use LotGD\Core\Attachment;
use LotGD\Core\Models\Character;
use LotGD\Core\Models\CharacterViewpoint;
use LotGD\Core\Models\Scene;
use LotGD\Core\Tests\ModelTestCase;
use LotGD\Core\Tests\CoreModelTestCase;
class SampleAttachment extends Attachment
{
@@ -30,7 +30,7 @@ class SampleAttachment extends Attachment
/**
* Tests the management of CharacterViewpoints
*/
class CharacterViewpointTest extends ModelTestCase
class CharacterViewpointTest extends CoreModelTestCase
{
/** @var string default data set */
protected $dataset = "characterViewpoints";
+2 -2
View File
@@ -4,12 +4,12 @@ declare(strict_types=1);
namespace LotGD\Core\Tests\Models;
use LotGD\Core\Models\GameConfiguration;
use LotGD\Core\Tests\ModelTestCase;
use LotGD\Core\Tests\CoreModelTestCase;
/**
* Tests the management of CharacterScenes
*/
class GameConfigurationTest extends ModelTestCase
class GameConfigurationTest extends CoreModelTestCase
{
/** @var string default data set */
protected $dataset = "gameConfiguration";
+2 -2
View File
@@ -7,12 +7,12 @@ use LotGD\Core\Models\Character;
use LotGD\Core\Models\MessageThread;
use LotGD\Core\Models\Message;
use LotGD\Core\Models\Repositories\CharacterRepository;
use LotGD\Core\Tests\ModelTestCase;
use LotGD\Core\Tests\CoreModelTestCase;
/**
* Tests the management of Characters
*/
class MessageModelTest extends ModelTestCase
class MessageModelTest extends CoreModelTestCase
{
/** @var string default data set */
protected $dataset = "messages";
+2 -2
View File
@@ -5,12 +5,12 @@ namespace LotGD\Core\Tests\Models;
use LotGD\Core\Models\Module;
use LotGD\Core\Models\ModuleProperty;
use LotGD\Core\Tests\ModelTestCase;
use LotGD\Core\Tests\CoreModelTestCase;
/**
* Tests for module management.
*/
class ModuleTest extends ModelTestCase
class ModuleTest extends CoreModelTestCase
{
/** @var string default data set */
protected $dataset = "module";
+2 -2
View File
@@ -5,12 +5,12 @@ namespace LotGD\Core\Tests\Models;
use LotGD\Core\Models\Character;
use LotGD\Core\Models\MotD;
use LotGD\Core\Tests\ModelTestCase;
use LotGD\Core\Tests\CoreModelTestCase;
/**
* Tests the management of Characters
*/
class MotDModelTest extends ModelTestCase
class MotDModelTest extends CoreModelTestCase
{
/** @var string default data set */
protected $dataset = "motd";
+2 -2
View File
@@ -4,12 +4,12 @@ declare(strict_types=1);
namespace LotGD\Core\Tests\Models;
use LotGD\Core\Models\Scene;
use LotGD\Core\Tests\ModelTestCase;
use LotGD\Core\Tests\CoreModelTestCase;
/**
* Tests for creating scenes and moving them around.
*/
class SceneModelTest extends ModelTestCase
class SceneModelTest extends CoreModelTestCase
{
/** @var string default data set */
protected $dataset = "scene";
+2 -2
View File
@@ -16,10 +16,10 @@ use LotGD\Core\ModuleManager;
use LotGD\Core\Module;
use LotGD\Core\Exceptions\ModuleAlreadyExistsException;
use LotGD\Core\Exceptions\ModuleDoesNotExistException;
use LotGD\Core\Tests\ModelTestCase;
use LotGD\Core\Tests\CoreModelTestCase;
use LotGD\Core\Tests\FakeModule\Module as FakeModule;
class ModuleManagerTest extends ModelTestCase
class ModuleManagerTest extends CoreModelTestCase
{
/** @var string default data set */
protected $dataset = "module";
+2 -2
View File
@@ -7,13 +7,13 @@ use Doctrine\Common\Persistence\Mapping\ClassMetadata;
use LotGD\Core\Models\GameConfigurationElement;
use LotGD\Core\Tools\OneToManyCollection;
use LotGD\Core\Tests\ModelTestCase;
use LotGD\Core\Tests\CoreModelTestCase;
use LotGD\Core\Exceptions\WrongTypeException;
/**
* Tests for creating scenes and moving them around.
*/
class OneToManyCollectionTest extends ModelTestCase
class OneToManyCollectionTest extends CoreModelTestCase
{
/** @var string default data set */
protected $dataset = "gameConfiguration";