DateTimeAttributeTest::itShouldCheckIfIsWeekday()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 5
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 1 Features 0
Metric Value
dl 0
loc 5
rs 9.4286
c 1
b 1
f 0
cc 1
eloc 3
nc 1
nop 0
1
<?php
2
/**
3
 * Author: Nil Portugués Calderó <[email protected]>
4
 * Date: 9/21/14
5
 * Time: 9:16 PM
6
 *
7
 * For the full copyright and license information, please view the LICENSE
8
 * file that was distributed with this source code.
9
 */
10
11
namespace Tests\NilPortugues\Validator\Attribute\DateTime;
12
13
use NilPortugues\Validator\Validator;
14
15
/**
16
 * Class DateTimeAttributeTest
17
 * @package Tests\NilPortugues\Validator\Attribute\DateTimeAttribute
18
 */
19
class DateTimeAttributeTest extends \PHPUnit_Framework_TestCase
20
{
21
    /**
22
     * @return \NilPortugues\Validator\Attribute\DateTime\DateTimeAttribute
23
     */
24
    protected function getValidator()
25
    {
26
        $validator = Validator::create();
27
28
        return $validator->isDateTime('propertyName');
29
    }
30
31
    /**
32
     * @test
33
     */
34
    public function itShouldCheckIfDate()
35
    {
36
        $date1 = '2012-01-01 00:00:00';
37
        $date2 = new \DateTime($date1);
38
39
        $this->assertTrue($this->getValidator()->validate($date1));
40
        $this->assertTrue($this->getValidator()->validate($date2));
41
    }
42
43
    /**
44
     * @test
45
     */
46
    public function itShouldCheckIfDateIsBefore()
47
    {
48
        $date1 = '2012-01-01 00:00:00';
49
        $date2 = new \DateTime($date1);
50
51
        $limit1 = '2013-12-31 23:59:59';
52
53
        $this->assertTrue($this->getValidator()->isBefore($limit1, false)->validate($date1));
54
        $this->assertTrue($this->getValidator()->isBefore($limit1, false)->validate($date2));
55
56
        $this->assertTrue($this->getValidator()->isBefore($date1, true)->validate($date1));
57
        $this->assertTrue($this->getValidator()->isBefore($date2, true)->validate($date2));
58
59
        $limit2 = '2010-01-01 00:00:00';
60
61
        $this->assertFalse($this->getValidator()->isBefore($limit2)->validate($date1));
62
        $this->assertFalse($this->getValidator()->isBefore($limit2)->validate($date2));
63
    }
64
65
    /**
66
     * @test
67
     */
68
    public function itShouldCheckIfDateIsAfter()
69
    {
70
        $date1 = '2014-01-01 00:00:00';
71
        $date2 = new \DateTime($date1);
72
73
        $limit1 = '2013-12-31 23:59:59';
74
75
        $this->assertTrue($this->getValidator()->isAfter($limit1, false)->validate($date1));
76
        $this->assertTrue($this->getValidator()->isAfter($limit1, false)->validate($date2));
77
78
        $this->assertTrue($this->getValidator()->isAfter($date1, true)->validate($date1));
79
        $this->assertTrue($this->getValidator()->isAfter($date2, true)->validate($date2));
80
81
        $limit2 = '2015-01-01 00:00:00';
82
83
        $this->assertFalse($this->getValidator()->isAfter($limit2)->validate($date1));
84
        $this->assertFalse($this->getValidator()->isAfter($limit2)->validate($date2));
85
    }
86
87
    /**
88
     * @test
89
     */
90
    public function itShouldCheckIfDateIsBetween()
91
    {
92
        $date1 = '2014-01-01 00:00:00';
93
        $date2 = new \DateTime($date1);
94
95
        $minDate = '2013-01-01 00:00:00';
96
        $maxDate = '2015-01-01 00:00:00';
97
98
        $this->assertTrue($this->getValidator()->isBetween($minDate, $maxDate, false)->validate($date1));
99
        $this->assertTrue($this->getValidator()->isBetween($minDate, $maxDate, false)->validate($date2));
100
101
        $this->assertTrue($this->getValidator()->isBetween($minDate, $maxDate, true)->validate($date1));
102
        $this->assertTrue($this->getValidator()->isBetween($minDate, $maxDate, true)->validate($date2));
103
104
        $minDate = '2013-12-01 00:00:00';
105
        $maxDate = '2013-12-30 00:00:00';
106
107
        $this->assertFalse($this->getValidator()->isBetween($minDate, $maxDate, false)->validate($date1));
108
        $this->assertFalse($this->getValidator()->isBetween($minDate, $maxDate, true)->validate($date1));
109
    }
110
111
    /**
112
     * @test
113
     */
114
    public function itShouldCheckIfIsMonday()
115
    {
116
        $this->assertTrue($this->getValidator()->isMonday()->validate('2014-09-22'));
117
    }
118
119
    /**
120
     * @test
121
     */
122
    public function itShouldCheckIfIsTuesday()
123
    {
124
        $this->assertTrue($this->getValidator()->isTuesday()->validate('2014-09-23'));
125
    }
126
127
    /**
128
     * @test
129
     */
130
    public function itShouldCheckIfIsWednesday()
131
    {
132
        $this->assertTrue($this->getValidator()->isWednesday()->validate('2014-09-24'));
133
    }
134
135
    /**
136
     * @test
137
     */
138
    public function itShouldCheckIfIsThursday()
139
    {
140
        $this->assertTrue($this->getValidator()->isThursday()->validate('2014-09-25'));
141
    }
142
143
    /**
144
     * @test
145
     */
146
    public function itShouldCheckIfIsFriday()
147
    {
148
        $this->assertTrue($this->getValidator()->isFriday()->validate('2014-09-26'));
149
    }
150
151
    /**
152
     * @test
153
     */
154
    public function itShouldCheckIfIsSaturday()
155
    {
156
        $this->assertTrue($this->getValidator()->isSaturday()->validate('2014-09-27'));
157
    }
158
159
    /**
160
     * @test
161
     */
162
    public function itShouldCheckIfIsSunday()
163
    {
164
        $this->assertTrue($this->getValidator()->isSunday()->validate('2014-09-28'));
165
    }
166
167
    /**
168
     * @test
169
     */
170
    public function itShouldCheckIfIsToday()
171
    {
172
        $date = new \DateTime('now');
173
174
        $this->assertTrue($this->getValidator()->isToday()->validate($date));
175
    }
176
177
    /**
178
     * @test
179
     */
180
    public function itShouldCheckIfIsYesterday()
181
    {
182
        $date = new \DateTime('now -1 day');
183
184
        $this->assertTrue($this->getValidator()->isYesterday()->validate($date));
185
    }
186
187
    /**
188
     * @test
189
     */
190
    public function itShouldCheckIfIsTomorrow()
191
    {
192
        $date = new \DateTime('now +1 day');
193
194
        $this->assertTrue($this->getValidator()->isTomorrow()->validate($date));
195
    }
196
197
    /**
198
     * @test
199
     */
200
    public function itShouldCheckIfIsLeapYear()
201
    {
202
        $date = new \DateTime('2016-01-01');
203
204
        $this->assertTrue($this->getValidator()->isLeapYear()->validate($date));
205
    }
206
207
    /**
208
     * @test
209
     */
210
    public function itShouldCheckIfIsWeekend()
211
    {
212
        $this->assertTrue($this->getValidator()->isWeekend()->validate('2014-09-20'));
213
        $this->assertFalse($this->getValidator()->isWeekend()->validate('2014-09-22'));
214
    }
215
216
    /**
217
     * @test
218
     */
219
    public function itShouldCheckIfIsWeekday()
220
    {
221
        $this->assertFalse($this->getValidator()->isWeekday()->validate('2014-09-20'));
222
        $this->assertTrue($this->getValidator()->isWeekday()->validate('2014-09-22'));
223
    }
224
225
    /**
226
     * @test
227
     */
228
    public function itShouldCheckIfIsMorning()
229
    {
230
        $this->assertTrue($this->getValidator()->isMorning()->validate('07:20:15'));
231
        $this->assertFalse($this->getValidator()->isMorning()->validate('20:15:00'));
232
    }
233
234
    /**
235
     * @test
236
     */
237
    public function itShouldCheckIfIsAfternoon()
238
    {
239
        $this->assertTrue($this->getValidator()->isAftenoon()->validate('12:00:00'));
240
        $this->assertFalse($this->getValidator()->isAftenoon()->validate('20:15:00'));
241
    }
242
243
    /**
244
     * @test
245
     */
246
    public function itShouldCheckIfIsEvening()
247
    {
248
        $this->assertTrue($this->getValidator()->isEvening()->validate('18:00:00'));
249
        $this->assertFalse($this->getValidator()->isEvening()->validate('07:15:00'));
250
    }
251
252
    /**
253
     * @test
254
     */
255
    public function itShouldCheckIfIsNight()
256
    {
257
        $this->assertTrue($this->getValidator()->isNight()->validate('01:00:00'));
258
        $this->assertFalse($this->getValidator()->isNight()->validate('12:15:00'));
259
    }
260
}
261