summaryrefslogtreecommitdiff
path: root/tests/Unit/HasDatabase.php
diff options
context:
space:
mode:
Diffstat (limited to 'tests/Unit/HasDatabase.php')
-rw-r--r--tests/Unit/HasDatabase.php47
1 files changed, 47 insertions, 0 deletions
diff --git a/tests/Unit/HasDatabase.php b/tests/Unit/HasDatabase.php
new file mode 100644
index 00000000..d69f0a3a
--- /dev/null
+++ b/tests/Unit/HasDatabase.php
@@ -0,0 +1,47 @@
+<?php
+
+namespace Engelsystem\Test\Unit;
+
+use Engelsystem\Application;
+use Engelsystem\Database\Database;
+use Engelsystem\Database\Migration\Migrate;
+use Engelsystem\Database\Migration\MigrationServiceProvider;
+use Illuminate\Database\Capsule\Manager as CapsuleManager;
+use PDO;
+
+trait HasDatabase
+{
+ /** @var Database */
+ protected $database;
+
+ /**
+ * Setup in memory database
+ */
+ protected function initDatabase()
+ {
+ $dbManager = new CapsuleManager();
+ $dbManager->addConnection(['driver' => 'sqlite', 'database' => ':memory:']);
+
+ $connection = $dbManager->getConnection();
+ $connection->getPdo()->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
+ $this->database = new Database($connection);
+
+ $app = new Application();
+ $app->instance(Database::class, $this->database);
+ $app->register(MigrationServiceProvider::class);
+
+ /** @var Migrate $migration */
+ $migration = $app->get('db.migration');
+ $migration->initMigration();
+
+ $this->database
+ ->getConnection()
+ ->table('migrations')
+ ->insert([
+ ['migration' => '2018_01_01_000001_import_install_sql'],
+ ['migration' => '2018_01_01_000002_import_update_sql'],
+ ]);
+
+ $migration->run(__DIR__ . '/../../db/migrations');
+ }
+}