FullMonthBookings::getBookings()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
c 0
b 0
f 0
dl 0
loc 4
rs 10
cc 1
eloc 2
nc 1
nop 0
1
<?php
2
3
namespace JhFlexiTimeTest\Fixture;
4
5
use Doctrine\Common\DataFixtures\AbstractFixture;
6
use Doctrine\Common\Persistence\ObjectManager;
7
use JhFlexiTime\Entity\Booking;
8
use JhUser\Entity\User;
9
use JhFlexiTime\DateTime\DateTime;
10
11
/**
12
 * Class FullMonthBookings
13
 * @package JhUserTest\Fixture
14
 * @author Aydin Hassan <[email protected]>
15
 */
16
class FullMonthBookings extends AbstractFixture
17
{
18
    /**
19
     * @var DateTime[]
20
     */
21
    protected $dates;
22
23
    /**
24
     * @var User
25
     */
26
    protected $user;
27
28
    /**
29
     * @var Booking[]
30
     */
31
    protected $bookings;
32
33
    /**
34
     * @param User $user
35
     */
36
    public function __construct(User $user)
37
    {
38
        $this->user = $user;
39
        $this->dates = [
40
            new DateTime("1 May 2014"),
41
            new DateTime("2 May 2014"),
42
            new DateTime("3 May 2014"),
43
            new DateTime("4 May 2014"),
44
            new DateTime("5 May 2014"),
45
            new DateTime("6 May 2014"),
46
            new DateTime("7 May 2014"),
47
            new DateTime("8 May 2014"),
48
            new DateTime("9 May 2014"),
49
            new DateTime("10 May 2014"),
50
            new DateTime("11 May 2014"),
51
            new DateTime("12 May 2014"),
52
            new DateTime("13 May 2014"),
53
            new DateTime("14 May 2014"),
54
            new DateTime("15 May 2014"),
55
            new DateTime("16 May 2014"),
56
            new DateTime("17 May 2014"),
57
            new DateTime("18 May 2014"),
58
            new DateTime("19 May 2014"),
59
            new DateTime("20 May 2014"),
60
            new DateTime("21 May 2014"),
61
            new DateTime("22 May 2014"),
62
            new DateTime("23 May 2014"),
63
            new DateTime("24 May 2014"),
64
            new DateTime("25 May 2014"),
65
            new DateTime("26 May 2014"),
66
            new DateTime("27 May 2014"),
67
            new DateTime("28 May 2014"),
68
            new DateTime("30 May 2014"),
69
            new DateTime("31 May 2014"),
70
        ];
71
    }
72
73
    /**
74
     * {inheritDoc}
75
     */
76
    public function load(ObjectManager $manager)
77
    {
78
        $manager->persist($this->user);
79
        $manager->flush();
80
81
        foreach ($this->dates as $date) {
82
            $booking = new Booking();
83
            $booking->setUser($this->user);
84
            $booking->setTotal(rand(0, 20));
85
            $booking->setDate($date);
86
            $manager->persist($booking);
87
            $this->bookings[] = $booking;
88
        }
89
90
        $manager->flush();
91
    }
92
93
    /**
94
     * @return DateTime[]
95
     */
96
    public function getDates()
97
    {
98
        return $this->dates;
99
    }
100
101
    /**
102
     * @return DateTime
103
     */
104
    public function getMonth()
105
    {
106
        return new DateTime("May 2014");
107
    }
108
109
    /**
110
     * Bookings[]
111
     */
112
    public function getBookings()
113
    {
114
        return $this->bookings;
115
    }
116
}
117