Completed
Push — master ( 33e149...329666 )
by Wachter
09:05
created

DoctrineStorageTest   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 43
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 5

Importance

Changes 1
Bugs 0 Features 1
Metric Value
wmc 2
c 1
b 0
f 1
lcom 0
cbo 5
dl 0
loc 43
rs 10

2 Methods

Rating   Name   Duplication   Size   Complexity  
A storeDataProvider() 0 9 1
B testStore() 0 27 1
1
<?php
2
3
namespace Unit\Storage;
4
5
use Doctrine\ORM\EntityManagerInterface;
6
use Prophecy\Argument;
7
use Task\TaskBundle\Entity\Task as TaskEntity;
8
use Task\TaskBundle\Entity\TaskRepository;
9
use Task\TaskBundle\Storage\DoctrineStorage;
10
use Task\TaskInterface;
11
12
class DoctrineStorageTest extends \PHPUnit_Framework_TestCase
13
{
14
    public function storeDataProvider()
15
    {
16
        return [
17
            [new \DateTime(), true, '123-123-123'],
18
            [new \DateTime(), true, '321-321-321'],
19
            [new \DateTime('1 day ago'), true, '321-321-321'],
20
            [new \DateTime(), false, '123-123-123'],
21
        ];
22
    }
23
24
    /**
25
     * @dataProvider storeDataProvider
26
     */
27
    public function testStore($date, $completed, $uuid)
28
    {
29
        $entityManager = $this->prophesize(EntityManagerInterface::class);
30
        $repository = $this->prophesize(TaskRepository::class);
31
32
        $storage = new DoctrineStorage($entityManager->reveal(), $repository->reveal());
33
34
        $task = $this->prophesize(TaskInterface::class);
35
        $task->getUuid()->willReturn($uuid);
36
        $task->isCompleted()->willReturn($completed);
37
        $task->getExecutionDate()->willReturn($date);
38
39
        $storage->store($task->reveal());
40
41
        $entityManager->persist(
42
            Argument::that(
43
                function (TaskEntity $entity) use ($date, $completed, $uuid) {
44
                    $this->assertEquals($uuid, $entity->getUuid());
45
                    $this->assertEquals($completed, $entity->isCompleted());
46
                    $this->assertEquals($date, $entity->getExecutionDate());
47
48
                    return true;
49
                }
50
            )
51
        )->shouldBeCalledTimes(1);
52
        $entityManager->flush()->shouldBeCalledTimes(1);
53
    }
54
}
55