GitHub Access Token became invalid

It seems like the GitHub access token used for retrieving details about this repository from GitHub became invalid. This might prevent certain types of inspections from being run (in particular, everything related to pull requests).
Please ask an admin of your repository to re-new the access token on this website.
Completed
Pull Request — master (#59)
by joseph
17:21
created

  A

Complexity

Conditions 2
Paths 2

Size

Total Lines 19
Code Lines 15

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 19
rs 9.4285
c 0
b 0
f 0
cc 2
eloc 15
nc 2
nop 0
1
<?php declare(strict_types=1);
2
3
namespace EdmondsCommerce\DoctrineStaticMeta;
4
5
use Doctrine\ORM\Mapping\Builder\ClassMetadataBuilder;
6
use EdmondsCommerce\DoctrineStaticMeta\CodeGeneration\CodeHelper;
7
use EdmondsCommerce\DoctrineStaticMeta\CodeGeneration\Generator\AbstractGenerator;
8
use EdmondsCommerce\DoctrineStaticMeta\Entity\Interfaces\UsesPHPMetaDataInterface;
9
use gossi\codegen\model\PhpClass;
10
use gossi\codegen\model\PhpMethod;
11
use gossi\codegen\model\PhpParameter;
12
use gossi\codegen\model\PhpProperty;
13
14
/**
15
 * Class MappingHelperFunctionalTest
16
 *
17
 * @package EdmondsCommerce\DoctrineStaticMeta
18
 * @SuppressWarnings(PHPMD.StaticAccess)
19
 */
20
class MappingHelperFunctionalTest extends AbstractFunctionalTest
21
{
22
    public const WORK_DIR = AbstractIntegrationTest::VAR_PATH.'/'.self::TEST_TYPE.'/MappingHelperFunctionalTest/';
23
24
    protected const TEST_ENTITY_FQN_BASE = self::TEST_PROJECT_ROOT_NAMESPACE
25
                                           .'\\'.AbstractGenerator::ENTITIES_FOLDER_NAME
26
                                           .'\\MappingEntity';
27
28
    protected const TEST_FIELD_FQN_BASE = self::TEST_PROJECT_ROOT_NAMESPACE
29
                                          .'\\Entity\\Fields\\Traits\\';
30
31
    protected const TEST_FIELD_DEFAULT_VALUES = [
32
        MappingHelper::TYPE_STRING  => '',
33
        MappingHelper::TYPE_FLOAT   => 0.0,
34
        MappingHelper::TYPE_DECIMAL => 0.0,
35
        MappingHelper::TYPE_INTEGER => 0,
36
        MappingHelper::TYPE_TEXT    => '',
37
        MappingHelper::TYPE_BOOLEAN => false,
38
    ];
39
40
    protected function getDefaultValue($type)
41
    {
42
        if (!isset(self::TEST_FIELD_DEFAULT_VALUES[$type])) {
43
            return null;
44
        }
45
46
        return self::TEST_FIELD_DEFAULT_VALUES[$type];
47
    }
48
49
    public function testGenerateOneOfEachFieldTypeUsingSetSimpleFields()
50
    {
51
        $entityFqn = self::TEST_ENTITY_FQN_BASE.'Two';
52
        $this->getEntityGenerator()
53
             ->generateEntity($entityFqn);
54
55
        $fieldsToTypes = [];
56
        foreach (MappingHelper::COMMON_TYPES as $commonType) {
57
            $fieldsToTypes[$commonType.'Field'] = $commonType;
58
        }
59
        $entityClassFile = self::WORK_DIR.'/src/Entities/MappingEntityTwo.php';
60
        $entityClass     = PhpClass::fromFile($entityClassFile);
61
        $entityClass->addUseStatement(MappingHelper::class);
62
        $fieldsToTypesCode = var_export($fieldsToTypes, true);
63
        $entityClass->setMethod(
64
            (new PhpMethod(UsesPHPMetaDataInterface::METHOD_PREFIX_GET_PROPERTY_DOCTRINE_META.'SimpleFields'))
65
                ->setParameters([(new PhpParameter('builder'))->setType('\\'.ClassMetadataBuilder::class)])
66
                ->setStatic(true)
67
                ->setVisibility('private')
68
                ->setBody(<<<PHP
69
        MappingHelper::setSimpleFields(
70
            $fieldsToTypesCode
71
        , \$builder);
72
PHP
73
                )
74
        );
75
        foreach (array_keys($fieldsToTypes) as $field) {
76
            $entityClass->setProperty((new PhpProperty($field))->setVisibility('private'));
77
        }
78
        $this->container->get(CodeHelper::class)->generate($entityClass, $entityClassFile);
79
        $this->qaGeneratedCode();
80
        $this->setupCopiedWorkDirAndCreateDatabase();
81
        $meta = $this->getEntityManager()->getClassMetadata($this->getCopiedFqn($entityFqn));
82
        $this->assertCount(count(MappingHelper::COMMON_TYPES) + 1, $meta->getFieldNames());
83
    }
84
}
85