Refactor ModelTestCase so I can use it outside of the Core.
This commit is contained in:
@@ -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
File diff suppressed because it is too large
Load Diff
@@ -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']));
|
||||
}
|
||||
}
|
||||
@@ -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
@@ -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
@@ -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
|
||||
|
||||
@@ -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";
|
||||
|
||||
@@ -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";
|
||||
|
||||
@@ -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";
|
||||
|
||||
@@ -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";
|
||||
|
||||
@@ -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";
|
||||
|
||||
@@ -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";
|
||||
|
||||
@@ -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";
|
||||
|
||||
@@ -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";
|
||||
|
||||
@@ -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";
|
||||
|
||||
Reference in New Issue
Block a user