1
0
Files
lkafu/vendor/overtrue/laravel-follow/tests/TestCase.php
2020-08-06 14:50:07 +08:00

98 lines
2.4 KiB
PHP

<?php
/*
* This file is part of the overtrue/laravel-follow
*
* (c) overtrue <i@overtrue.me>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace Overtrue\LaravelFollow\Test;
use Illuminate\Filesystem\Filesystem;
class TestCase extends \Illuminate\Foundation\Testing\TestCase
{
protected $config;
/**
* Creates the application.
*
* Needs to be implemented by subclasses.
*
* @return \Symfony\Component\HttpKernel\HttpKernelInterface
*/
public function createApplication()
{
$app = require __DIR__.'/../vendor/laravel/laravel/bootstrap/app.php';
$app->make('Illuminate\Contracts\Console\Kernel')->bootstrap();
$app['config']->set('database.default', 'sqlite');
$app['config']->set('database.connections.sqlite.database', ':memory:');
return $app;
}
/**
* Setup DB before each test.
*/
protected function setUp(): void
{
parent::setUp();
if (empty($this->config)) {
$this->config = require __DIR__.'/../config/follow.php';
}
$this->app['config']->set('follow', $this->config);
$this->app['config']->set('follow.user_model', User::class);
$this->migrate();
$this->seed();
}
/**
* run package database migrations.
*/
public function migrate()
{
$fileSystem = new Filesystem();
$fileSystem->copy(
__DIR__.'/../database/migrations/2018_06_29_032244_create_laravel_follow_tables.php',
__DIR__.'/database/migrations/create_laravel_follow_tables.php'
);
foreach ($fileSystem->files(__DIR__.'/database/migrations') as $file) {
$fileSystem->requireOnce($file);
}
(new \CreateLaravelFollowTables())->up();
(new \CreateUsersTable())->up();
(new \CreateOthersTable())->up();
}
public function tearDown(): void
{
parent::tearDown();
unlink(__DIR__.'/database/migrations/create_laravel_follow_tables.php');
}
/**
* Seed testing database.
*/
public function seed($classname = null)
{
User::create(['name' => 'John']);
User::create(['name' => 'Allison']);
User::create(['name' => 'Ron']);
Other::create(['name' => 'Laravel']);
Other::create(['name' => 'Vuejs']);
Other::create(['name' => 'Ruby']);
}
}