Completed
Push — master ( 662b17...55cf61 )
by Oliver
10:02
created

AbstractTestCase::makeMigration()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 8
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 8
rs 9.4286
cc 1
eloc 4
nc 1
nop 1
1
<?php
2
3
namespace BoxedCode\Tests\Eloquent\Meta;
4
5
use BoxedCode\Eloquent\Meta\MetaServiceProvider;
6
use Orchestra\Testbench\TestCase;
7
8
class AbstractTestCase extends TestCase
9
{
10
    /**
11
     * Define environment setup.
12
     *
13
     * @param  \Illuminate\Foundation\Application  $app
14
     * @return void
15
     */
16
    protected function getEnvironmentSetUp($app)
17
    {
18
        // Setup default database to use sqlite :memory:
19
        $app['config']->set('database.default', 'testbench');
20
        $app['config']->set('database.connections.testbench', [
21
            'driver'   => 'sqlite',
22
            'database' => ':memory:',
23
            'prefix'   => '',
24
        ]);
25
26
        if (! class_exists('MetaMigration')) {
27
            static::makeMigration();
28
        } else {
29
            static::migrate();
30
        }
31
32
        parent::getEnvironmentSetUp($app);
33
    }
34
35
    protected function getPackageProviders($app)
36
    {
37
        return [MetaServiceProvider::class];
38
    }
39
40
    protected static function makeMigration($args = [])
41
    {
42
        $artisan = app()->make('Illuminate\Contracts\Console\Kernel');
43
44
        $artisan->call('make:meta-migration', $args);
45
46
        static::migrate();
47
    }
48
49
    protected static function migrate()
50
    {
51
        $artisan = app()->make('Illuminate\Contracts\Console\Kernel');
52
53
        // Models
54
        $artisan->call('migrate', [
55
            '--database' => 'testbench',
56
            '--realpath' => realpath(__DIR__.'/Migrations'),
57
        ]);
58
59
        // Meta
60
        $artisan->call('migrate', [
61
            '--database' => 'testbench',
62
            '--realpath' => app()->databasePath().'/migrations',
63
        ]);
64
    }
65
}
66