DealerShedulesQueryTest::testFilterByPeriodNull()   A
last analyzed

Complexity

Conditions 2
Paths 2

Size

Total Lines 11

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 11
rs 9.9
c 0
b 0
f 0
cc 2
nc 2
nop 0
1
<?php
2
/*************************************************************************************/
3
/*      This file is part of the Thelia package.                                     */
4
/*                                                                                   */
5
/*      Copyright (c) OpenStudio                                                     */
6
/*      email : [email protected]                                                       */
7
/*      web : http://www.thelia.net                                                  */
8
/*                                                                                   */
9
/*      For the full copyright and license information, please view the LICENSE.txt  */
10
/*      file that was distributed with this source code.                             */
11
/*************************************************************************************/
12
13
/*************************************************************************************/
14
15
namespace Dealer\Test\Model;
16
17
use Dealer\Model\Dealer;
18
use Dealer\Model\DealerShedules;
19
use Dealer\Model\DealerShedulesQuery;
20
use Dealer\Service\DealerService;
21
use Dealer\Service\SchedulesService;
22
use Dealer\Test\PhpUnit\Base\AbstractPropelTest;
23
use Symfony\Component\DependencyInjection\ContainerBuilder;
24
use Symfony\Component\EventDispatcher\EventDispatcher;
25
26
class DealerShedulesQueryTest extends AbstractPropelTest
27
{
28
29
    /** @var  Dealer $dealer */
30
    protected $dealer;
31
32
    /** @var  DealerShedules $dealer */
33
    protected $defaultSchedules;
34
35
    /** @var  DealerShedules $dealer */
36
    protected $extraSchedules;
37
38
    /**
39
     * @inheritDoc
40
     */
41
    protected function buildContainer(ContainerBuilder $container)
42
    {
43
44
    }
45
46
    public function setUp()
47
    {
48
        $this->mockEventDispatcher = $this->getMockBuilder(EventDispatcher::class)
49
            ->setMethods(['dispatch'])
50
            ->getMock();
51
52
        /* Create Test Dealer */
53
        $dealerService = new DealerService();
54
        $dealerService->setDispatcher($this->mockEventDispatcher);
55
        $this->dealer = $dealerService->createFromArray($this->dataDealerRequire(), "fr_FR");
56
57
        /* Create Test Schedules */
58
        $schedulesService = new SchedulesService();
59
        $schedulesService->setDispatcher($this->mockEventDispatcher);
60
61
        $this->defaultSchedules = $schedulesService->createFromArray($this->dataDefaultRequire(), "fr_FR");
62
        $this->extraSchedules = $schedulesService->createFromArray($this->dataExtraRequire(), "fr_FR");
63
    }
64
65
    /**
66
     * @covers Dealer\Model\DealerShedulesQuery::filterByPeriodNotNull()
67
     */
68
    public function testFilterByPeriodNotNull()
69
    {
70
        $schedules = DealerShedulesQuery::create()->filterByPeriodNotNull()->find();
71
72
        $this->assertGreaterThanOrEqual(1, count($schedules));
73
        /** @var DealerShedules $schedule */
74
        foreach ($schedules as $schedule) {
75
            $this->assertNotNull($schedule->getPeriodBegin());
76
            $this->assertNotNull($schedule->getPeriodEnd());
77
        }
78
    }
79
80
    /**
81
     * @covers Dealer\Model\DealerShedulesQuery::filterByPeriodNull()
82
     */
83
    public function testFilterByPeriodNull()
84
    {
85
        $schedules = DealerShedulesQuery::create()->filterByPeriodNull()->find();
86
87
        $this->assertGreaterThanOrEqual(1, count($schedules));
88
        /** @var DealerShedules $schedule */
89
        foreach ($schedules as $schedule) {
90
            $this->assertNull($schedule->getPeriodBegin());
91
            $this->assertNull($schedule->getPeriodEnd());
92
        }
93
    }
94
95
96
    protected function dataDefaultRequire()
97
    {
98
        return [
99
            "day" => 0,
100
            "begin" => "8:00",
101
            "end" => "10:00",
102
            "dealer_id" => $this->dealer->getId()
103
        ];
104
    }
105
106
    protected function dataExtraRequire()
107
    {
108
        return [
109
            "day" => 0,
110
            "begin" => "8:00",
111
            "end" => "10:00",
112
            "period_begin" => "2015-11-11",
113
            "period_end" => "2016-11-16",
114
            "dealer_id" => $this->dealer->getId()
115
        ];
116
    }
117
118
    protected function dataDealerRequire()
119
    {
120
        return [
121
            "title" => "Openstudio",
122
            "address1" => "5 rue jean rochon",
123
            "zipcode" => "63000",
124
            "city" => "test",
125
            "country_id" => "64",
126
        ];
127
    }
128
}
129