LoadProductOwnerData   A
last analyzed

Complexity

Total Complexity 6

Size/Duplication

Total Lines 53
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
dl 0
loc 53
ccs 31
cts 31
cp 1
rs 10
c 0
b 0
f 0
wmc 6

3 Methods

Rating   Name   Duplication   Size   Complexity  
A setContainer() 0 2 1
B load() 0 32 4
A getOrder() 0 2 1
1
<?php
2
3
namespace App\DataFixtures\ORM\User;
4
5
use Doctrine\Common\Persistence\ObjectManager;
6
use Doctrine\Common\DataFixtures\{
7
    AbstractFixture,
8
    OrderedFixtureInterface
9
};
10
use Symfony\Component\DependencyInjection\{
11
    ContainerInterface,
12
    ContainerAwareInterface
13
};
14
use App\Entity\User\ProductOwner;
15
16
class LoadProductOwnerData extends AbstractFixture implements OrderedFixtureInterface, ContainerAwareInterface {
17
    /** @var ContainerInterface */
18
    private $container;
19
20
    /**
21
     * @param ContainerInterface $container
22
     */
23 21
    public function setContainer(ContainerInterface $container = null) {
24 21
        $this->container = $container;
25 21
    }
26
27
    /**
28
     * @param ObjectManager $manager
29
     */
30 3
    public function load(ObjectManager $manager) {
31 3
        $data = include(dirname(__DIR__) . '/fixtures/product_owners.php');
32
33 3
        foreach($data as $productOwnerData) {
34
            $productOwner =
35 3
                (new ProductOwner())
36 3
                ->setId((int) $productOwnerData['id'])
37 3
                ->setUsername($productOwnerData['username'])
38 3
                ->setEmail($productOwnerData['email'])
39 3
                ->setPlainPassword($productOwnerData['plain_password'])
40 3
                ->setSalt(md5(uniqid(null, true)))
41 3
                ->enable($productOwnerData['is_enabled'])
42 3
                ->setIsLocked($productOwnerData['is_locked'])
43 3
                ->addOrganization($this->getReference("organization-{$productOwnerData['organization_id']}"))
44 3
                ->setCreatedAt(new \DateTime($productOwnerData['created_at']))
45 3
                ->setUpdatedAt(new \DateTime($productOwnerData['updated_at']))
46
            ;
47 3
            if ($this->hasReference("activation-link-{$productOwnerData['activation_link_id']}")) {
48 3
                $productOwner->setActivationLink($this->getReference("activation-link-{$productOwnerData['activation_link_id']}"));
49
            }
50 3
            foreach($productOwnerData['roles'] as $role) {
51 3
                $productOwner->addRole($role);
52
            }
53 3
            $encoder = $this->container->get('security.password_encoder');
54 3
            $password = $encoder->encodePassword($productOwner, $productOwnerData['plain_password']);
55 3
            $productOwner->setPassword($password);
56
57 3
            $manager->persist($productOwner);
58 3
            $this->addReference("product-owner-{$productOwner->getId()}", $productOwner);
59
        }
60 3
        $manager->flush();
61 3
        $manager->clear(ProductOwner::class);
62 3
    }
63
64
    /**
65
     * @return int
66
     */
67 21
    public function getOrder() {
68 21
        return 3;
69
    }
70
}
71