Completed
Push — master ( 772880...0b10b4 )
by Pavel
04:43
created

AbstractCrudsWebTest::assertKernelBooted()   A

Complexity

Conditions 3
Paths 2

Size

Total Lines 6
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 6
rs 9.4285
cc 3
eloc 3
nc 2
nop 0
1
<?php
2
3
namespace ScayTrase\Api\Cruds\Tests;
4
5
use Doctrine\ORM\EntityManagerInterface;
6
use Doctrine\ORM\Tools\SchemaTool;
7
use Doctrine\ORM\Tools\SchemaValidator;
8
use ScayTrase\Api\Cruds\Tests\Fixtures\JmsSerializer\JmsTestKernel;
9
use ScayTrase\Api\Cruds\Tests\Fixtures\SymfonySerializer\SymfonyTestKernel;
10
use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;
11
12
abstract class AbstractCrudsWebTest extends WebTestCase
13
{
14
    public function getKernelClasses()
15
    {
16
        return [
17
            'kernel with jms serializer'     => [JmsTestKernel::class],
18
            'kernel with symfony serializer' => [SymfonyTestKernel::class],
19
        ];
20
    }
21
22
    protected static function createAndBootKernel($class)
23
    {
24
        self::$class = $class;
25
        self::bootKernel();
26
    }
27
28
    /**
29
     * @throws \Doctrine\ORM\Tools\ToolsException
30
     */
31
    protected static function configureDb()
32
    {
33
        self::assertKernelBooted();
34
35
        /** @var EntityManagerInterface $em */
36
        $em = static::$kernel->getContainer()->get('doctrine.orm.entity_manager');
37
38
        $metadata = $em->getMetadataFactory()->getAllMetadata();
39
        $tool     = new SchemaTool($em);
40
        $tool->dropDatabase();
41
        $tool->createSchema($metadata);
42
        $validator = new SchemaValidator($em);
43
        $errors    = $validator->validateMapping();
44
        static::assertCount(
45
            0,
46
            $errors,
47
            implode(
48
                "\n\n",
49
                array_map(
50
                    function ($l) {
51
                        return implode("\n\n", $l);
52
                    },
53
                    $errors
54
                )
55
            )
56
        );
57
    }
58
59
    protected static function assertKernelBooted()
60
    {
61
        if (null === self::$kernel || null === self::$kernel->getContainer()) {
62
            self::fail('Kernel is not booted');
63
        }
64
    }
65
}
66