Tests: TestCase: Initialize $this->app on every run

This commit is contained in:
Igor Scheller 2019-10-08 13:57:50 +02:00
parent 1b3e3b1d65
commit e124b41977
8 changed files with 28 additions and 12 deletions

View File

@ -12,9 +12,9 @@ use Engelsystem\Http\Validation\Validator;
use Engelsystem\Models\User\Settings; use Engelsystem\Models\User\Settings;
use Engelsystem\Models\User\User; use Engelsystem\Models\User\User;
use Engelsystem\Test\Unit\HasDatabase; use Engelsystem\Test\Unit\HasDatabase;
use Engelsystem\Test\Unit\TestCase;
use Illuminate\Support\Collection; use Illuminate\Support\Collection;
use PHPUnit\Framework\MockObject\MockObject; use PHPUnit\Framework\MockObject\MockObject;
use PHPUnit\Framework\TestCase;
use Symfony\Component\HttpFoundation\Session\Session; use Symfony\Component\HttpFoundation\Session\Session;
use Symfony\Component\HttpFoundation\Session\SessionInterface; use Symfony\Component\HttpFoundation\Session\SessionInterface;
use Symfony\Component\HttpFoundation\Session\Storage\MockArraySessionStorage; use Symfony\Component\HttpFoundation\Session\Storage\MockArraySessionStorage;

View File

@ -2,7 +2,6 @@
namespace Engelsystem\Test\Unit; namespace Engelsystem\Test\Unit;
use Engelsystem\Application;
use Engelsystem\Database\Database; use Engelsystem\Database\Database;
use Engelsystem\Database\Migration\Migrate; use Engelsystem\Database\Migration\Migrate;
use Engelsystem\Database\Migration\MigrationServiceProvider; use Engelsystem\Database\Migration\MigrationServiceProvider;
@ -27,12 +26,11 @@ trait HasDatabase
$connection->getPdo()->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $connection->getPdo()->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$this->database = new Database($connection); $this->database = new Database($connection);
$app = new Application(); $this->app->instance(Database::class, $this->database);
$app->instance(Database::class, $this->database); $this->app->register(MigrationServiceProvider::class);
$app->register(MigrationServiceProvider::class);
/** @var Migrate $migration */ /** @var Migrate $migration */
$migration = $app->get('db.migration'); $migration = $this->app->get('db.migration');
$migration->initMigration(); $migration->initMigration();
$this->database $this->database

View File

@ -4,7 +4,7 @@ namespace Engelsystem\Test\Unit\Http\SessionHandlers;
use Engelsystem\Http\SessionHandlers\DatabaseHandler; use Engelsystem\Http\SessionHandlers\DatabaseHandler;
use Engelsystem\Test\Unit\HasDatabase; use Engelsystem\Test\Unit\HasDatabase;
use PHPUnit\Framework\TestCase; use Engelsystem\Test\Unit\TestCase;
class DatabaseHandlerTest extends TestCase class DatabaseHandlerTest extends TestCase
{ {
@ -90,6 +90,7 @@ class DatabaseHandlerTest extends TestCase
*/ */
protected function setUp(): void protected function setUp(): void
{ {
parent::setUp();
$this->initDatabase(); $this->initDatabase();
} }
} }

View File

@ -5,7 +5,7 @@ namespace Engelsystem\Test\Unit\Models;
use Carbon\Carbon; use Carbon\Carbon;
use Engelsystem\Models\EventConfig; use Engelsystem\Models\EventConfig;
use Engelsystem\Test\Unit\HasDatabase; use Engelsystem\Test\Unit\HasDatabase;
use PHPUnit\Framework\TestCase; use Engelsystem\Test\Unit\TestCase;
class EventConfigTest extends TestCase class EventConfigTest extends TestCase
{ {
@ -102,7 +102,8 @@ class EventConfigTest extends TestCase
*/ */
protected function getEventConfig() protected function getEventConfig()
{ {
return new class extends EventConfig { return new class extends EventConfig
{
/** /**
* @param string $value * @param string $value
* @param string $type * @param string $type
@ -122,6 +123,7 @@ class EventConfigTest extends TestCase
*/ */
protected function setUp(): void protected function setUp(): void
{ {
parent::setUp();
$this->initDatabase(); $this->initDatabase();
} }
} }

View File

@ -4,7 +4,7 @@ namespace Engelsystem\Test\Unit\Models;
use Engelsystem\Models\LogEntry; use Engelsystem\Models\LogEntry;
use Engelsystem\Test\Unit\HasDatabase; use Engelsystem\Test\Unit\HasDatabase;
use PHPUnit\Framework\TestCase; use Engelsystem\Test\Unit\TestCase;
use Psr\Log\LogLevel; use Psr\Log\LogLevel;
class LogEntryTest extends TestCase class LogEntryTest extends TestCase
@ -38,6 +38,7 @@ class LogEntryTest extends TestCase
*/ */
protected function setUp(): void protected function setUp(): void
{ {
parent::setUp();
$this->initDatabase(); $this->initDatabase();
} }
} }

View File

@ -5,8 +5,8 @@ namespace Engelsystem\Test\Unit\Models;
use Engelsystem\Models\User\HasUserModel; use Engelsystem\Models\User\HasUserModel;
use Engelsystem\Test\Unit\HasDatabase; use Engelsystem\Test\Unit\HasDatabase;
use Engelsystem\Test\Unit\Models\User\Stub\HasUserModelImplementation; use Engelsystem\Test\Unit\Models\User\Stub\HasUserModelImplementation;
use Engelsystem\Test\Unit\TestCase;
use Illuminate\Database\Eloquent\Relations\BelongsTo; use Illuminate\Database\Eloquent\Relations\BelongsTo;
use PHPUnit\Framework\TestCase;
class HasUserModelTest extends TestCase class HasUserModelTest extends TestCase
{ {
@ -28,6 +28,7 @@ class HasUserModelTest extends TestCase
*/ */
protected function setUp(): void protected function setUp(): void
{ {
parent::setUp();
$this->initDatabase(); $this->initDatabase();
} }
} }

View File

@ -10,7 +10,7 @@ use Engelsystem\Models\User\Settings;
use Engelsystem\Models\User\State; use Engelsystem\Models\User\State;
use Engelsystem\Models\User\User; use Engelsystem\Models\User\User;
use Engelsystem\Test\Unit\HasDatabase; use Engelsystem\Test\Unit\HasDatabase;
use PHPUnit\Framework\TestCase; use Engelsystem\Test\Unit\TestCase;
class UserTest extends TestCase class UserTest extends TestCase
{ {
@ -95,6 +95,7 @@ class UserTest extends TestCase
*/ */
protected function setUp(): void protected function setUp(): void
{ {
parent::setUp();
$this->initDatabase(); $this->initDatabase();
} }
} }

View File

@ -2,12 +2,16 @@
namespace Engelsystem\Test\Unit; namespace Engelsystem\Test\Unit;
use Engelsystem\Application;
use PHPUnit\Framework\MockObject\MockObject; use PHPUnit\Framework\MockObject\MockObject;
use PHPUnit\Framework\MockObject\Rule\InvocationOrder; use PHPUnit\Framework\MockObject\Rule\InvocationOrder;
use PHPUnit\Framework\TestCase as PHPUnitTestCase; use PHPUnit\Framework\TestCase as PHPUnitTestCase;
abstract class TestCase extends PHPUnitTestCase abstract class TestCase extends PHPUnitTestCase
{ {
/** @var Application */
protected $app;
/** /**
* @param MockObject $object * @param MockObject $object
* @param string $method * @param string $method
@ -34,4 +38,12 @@ abstract class TestCase extends PHPUnitTestCase
$invocation->willReturn($return); $invocation->willReturn($return);
} }
} }
/**
* Called before each test run
*/
protected function setUp(): void
{
$this->app = new Application(__DIR__ . '/../../');
}
} }