@@ -100,10 +100,9 @@ public function provideDateTimes()
100
100
/**
101
101
* @dataProvider provideIntervals
102
102
*/
103
- public function testDumpInterval ($ intervalSpec , $ invert , $ expected )
103
+ public function testDumpInterval ($ intervalSpec , $ ms , $ invert , $ expected )
104
104
{
105
- $ interval = new \DateInterval ($ intervalSpec );
106
- $ interval ->invert = $ invert ;
105
+ $ interval = $ this ->createInterval ($ intervalSpec , $ ms , $ invert );
107
106
108
107
$ xDump = <<<EODUMP
109
108
DateInterval {
@@ -117,10 +116,9 @@ public function testDumpInterval($intervalSpec, $invert, $expected)
117
116
/**
118
117
* @dataProvider provideIntervals
119
118
*/
120
- public function testDumpIntervalExcludingVerbosity ($ intervalSpec , $ invert , $ expected )
119
+ public function testDumpIntervalExcludingVerbosity ($ intervalSpec , $ ms , $ invert , $ expected )
121
120
{
122
- $ interval = new \DateInterval ($ intervalSpec );
123
- $ interval ->invert = $ invert ;
121
+ $ interval = $ this ->createInterval ($ intervalSpec , $ ms , $ invert );
124
122
125
123
$ xDump = <<<EODUMP
126
124
DateInterval {
@@ -134,10 +132,9 @@ public function testDumpIntervalExcludingVerbosity($intervalSpec, $invert, $expe
134
132
/**
135
133
* @dataProvider provideIntervals
136
134
*/
137
- public function testCastInterval ($ intervalSpec , $ invert , $ xInterval , $ xSeconds )
135
+ public function testCastInterval ($ intervalSpec , $ ms , $ invert , $ xInterval , $ xSeconds )
138
136
{
139
- $ interval = new \DateInterval ($ intervalSpec );
140
- $ interval ->invert = $ invert ;
137
+ $ interval = $ this ->createInterval ($ intervalSpec , $ ms , $ invert );
141
138
$ stub = new Stub ();
142
139
143
140
$ cast = DateCaster::castInterval ($ interval , array ('foo ' => 'bar ' ), $ stub , false , Caster::EXCLUDE_VERBOSE );
@@ -167,40 +164,42 @@ public function testCastInterval($intervalSpec, $invert, $xInterval, $xSeconds)
167
164
}
168
165
EODUMP ;
169
166
170
- $ this ->assertDumpEquals ($ xDump , $ cast ["\0~ \0interval " ]);
167
+ $ this ->assertDumpMatchesFormat ($ xDump , $ cast ["\0~ \0interval " ]);
171
168
}
172
169
173
170
public function provideIntervals ()
174
171
{
175
172
$ i = new \DateInterval ('PT0S ' );
176
- $ ms = \PHP_VERSION_ID >= 70100 && isset ($ i ->f ) ? '.0 ' : '' ;
173
+ $ ms = ( $ withMs = \PHP_VERSION_ID >= 70100 && isset ($ i ->f ) ) ? '.0 ' : '' ;
177
174
178
175
return array (
179
- array ('PT0S ' , 0 , '0s ' , '0s ' ),
180
- array ('PT1S ' , 0 , '+ 00:00:01 ' .$ ms , '1s ' ),
181
- array ('PT2M ' , 0 , '+ 00:02:00 ' .$ ms , '120s ' ),
182
- array ('PT3H ' , 0 , '+ 03:00:00 ' .$ ms , '10 800s ' ),
183
- array ('P4D ' , 0 , '+ 4d ' , '345 600s ' ),
184
- array ('P5M ' , 0 , '+ 5m ' , null ),
185
- array ('P6Y ' , 0 , '+ 6y ' , null ),
186
- array ('P1Y2M3DT4H5M6S ' , 0 , '+ 1y 2m 3d 04:05:06 ' .$ ms , null ),
187
- array ('PT1M60S ' , 0 , '+ 00:02:00 ' .$ ms , null ),
188
- array ('PT1H60M ' , 0 , '+ 02:00:00 ' .$ ms , null ),
189
- array ('P1DT24H ' , 0 , '+ 2d ' , null ),
190
- array ('P1M32D ' , 0 , '+ 1m 32d ' , null ),
191
-
192
- array ('PT0S ' , 1 , '0s ' , '0s ' ),
193
- array ('PT1S ' , 1 , '- 00:00:01 ' .$ ms , '-1s ' ),
194
- array ('PT2M ' , 1 , '- 00:02:00 ' .$ ms , '-120s ' ),
195
- array ('PT3H ' , 1 , '- 03:00:00 ' .$ ms , '-10 800s ' ),
196
- array ('P4D ' , 1 , '- 4d ' , '-345 600s ' ),
197
- array ('P5M ' , 1 , '- 5m ' , null ),
198
- array ('P6Y ' , 1 , '- 6y ' , null ),
199
- array ('P1Y2M3DT4H5M6S ' , 1 , '- 1y 2m 3d 04:05:06 ' .$ ms , null ),
200
- array ('PT1M60S ' , 1 , '- 00:02:00 ' .$ ms , null ),
201
- array ('PT1H60M ' , 1 , '- 02:00:00 ' .$ ms , null ),
202
- array ('P1DT24H ' , 1 , '- 2d ' , null ),
203
- array ('P1M32D ' , 1 , '- 1m 32d ' , null ),
176
+ array ('PT0S ' , 0 , 0 , '0s ' , '0s ' ),
177
+ array ('PT0S ' , 0.1 , 0 , $ withMs ? '+ 00:00:00.100 ' : '0s ' , '%is ' ),
178
+ array ('PT1S ' , 0 , 0 , '+ 00:00:01 ' .$ ms , '1s ' ),
179
+ array ('PT2M ' , 0 , 0 , '+ 00:02:00 ' .$ ms , '120s ' ),
180
+ array ('PT3H ' , 0 , 0 , '+ 03:00:00 ' .$ ms , '10 800s ' ),
181
+ array ('P4D ' , 0 , 0 , '+ 4d ' , '345 600s ' ),
182
+ array ('P5M ' , 0 , 0 , '+ 5m ' , null ),
183
+ array ('P6Y ' , 0 , 0 , '+ 6y ' , null ),
184
+ array ('P1Y2M3DT4H5M6S ' , 0 , 0 , '+ 1y 2m 3d 04:05:06 ' .$ ms , null ),
185
+ array ('PT1M60S ' , 0 , 0 , '+ 00:02:00 ' .$ ms , null ),
186
+ array ('PT1H60M ' , 0 , 0 , '+ 02:00:00 ' .$ ms , null ),
187
+ array ('P1DT24H ' , 0 , 0 , '+ 2d ' , null ),
188
+ array ('P1M32D ' , 0 , 0 , '+ 1m 32d ' , null ),
189
+
190
+ array ('PT0S ' , 0 , 1 , '0s ' , '0s ' ),
191
+ array ('PT0S ' , 0.1 , 1 , $ withMs ? '- 00:00:00.100 ' : '0s ' , '%is ' ),
192
+ array ('PT1S ' , 0 , 1 , '- 00:00:01 ' .$ ms , '-1s ' ),
193
+ array ('PT2M ' , 0 , 1 , '- 00:02:00 ' .$ ms , '-120s ' ),
194
+ array ('PT3H ' , 0 , 1 , '- 03:00:00 ' .$ ms , '-10 800s ' ),
195
+ array ('P4D ' , 0 , 1 , '- 4d ' , '-345 600s ' ),
196
+ array ('P5M ' , 0 , 1 , '- 5m ' , null ),
197
+ array ('P6Y ' , 0 , 1 , '- 6y ' , null ),
198
+ array ('P1Y2M3DT4H5M6S ' , 0 , 1 , '- 1y 2m 3d 04:05:06 ' .$ ms , null ),
199
+ array ('PT1M60S ' , 0 , 1 , '- 00:02:00 ' .$ ms , null ),
200
+ array ('PT1H60M ' , 0 , 1 , '- 02:00:00 ' .$ ms , null ),
201
+ array ('P1DT24H ' , 0 , 1 , '- 2d ' , null ),
202
+ array ('P1M32D ' , 0 , 1 , '- 1m 32d ' , null ),
204
203
);
205
204
}
206
205
@@ -349,7 +348,7 @@ public function testCastPeriod($start, $interval, $end, $options, $xPeriod, $xDa
349
348
]
350
349
EODUMP ;
351
350
352
- $ this ->assertDumpMatchesFormat ($ xDump , $ cast );
351
+ $ this ->assertDumpEquals ($ xDump , $ cast );
353
352
354
353
$ xDump = <<<EODUMP
355
354
Symfony\Component\VarDumper\Caster\ConstStub {
@@ -373,26 +372,26 @@ public function providePeriods()
373
372
$ ms = \PHP_VERSION_ID >= 70100 && isset ($ i ->f ) ? '.0 ' : '' ;
374
373
375
374
$ periods = array (
376
- array ('2017-01-01 ' , 'P1D ' , '2017-01-03 ' , 0 , 'every + 1d, from 2017-01-01 00:00:00 (included) to 2017-01-03 00:00:00 ' , '1) 2017-01-01%a2) 2017-01-02 ' ),
377
- array ('2017-01-01 ' , 'P1D ' , 1 , 0 , 'every + 1d, from 2017-01-01 00:00:00 (included) recurring 2 time/s ' , '1) 2017-01-01%a2) 2017-01-02 ' ),
375
+ array ('2017-01-01 ' , 'P1D ' , '2017-01-03 ' , 0 , 'every + 1d, from 2017-01-01 00:00:00.0 (included) to 2017-01-03 00:00:00.0 ' , '1) 2017-01-01%a2) 2017-01-02 ' ),
376
+ array ('2017-01-01 ' , 'P1D ' , 1 , 0 , 'every + 1d, from 2017-01-01 00:00:00.0 (included) recurring 2 time/s ' , '1) 2017-01-01%a2) 2017-01-02 ' ),
378
377
379
- array ('2017-01-01 ' , 'P1D ' , '2017-01-04 ' , 0 , 'every + 1d, from 2017-01-01 00:00:00 (included) to 2017-01-04 00:00:00 ' , '1) 2017-01-01%a2) 2017-01-02%a3) 2017-01-03 ' ),
380
- array ('2017-01-01 ' , 'P1D ' , 2 , 0 , 'every + 1d, from 2017-01-01 00:00:00 (included) recurring 3 time/s ' , '1) 2017-01-01%a2) 2017-01-02%a3) 2017-01-03 ' ),
378
+ array ('2017-01-01 ' , 'P1D ' , '2017-01-04 ' , 0 , 'every + 1d, from 2017-01-01 00:00:00.0 (included) to 2017-01-04 00:00:00.0 ' , '1) 2017-01-01%a2) 2017-01-02%a3) 2017-01-03 ' ),
379
+ array ('2017-01-01 ' , 'P1D ' , 2 , 0 , 'every + 1d, from 2017-01-01 00:00:00.0 (included) recurring 3 time/s ' , '1) 2017-01-01%a2) 2017-01-02%a3) 2017-01-03 ' ),
381
380
382
- array ('2017-01-01 ' , 'P1D ' , '2017-01-05 ' , 0 , 'every + 1d, from 2017-01-01 00:00:00 (included) to 2017-01-05 00:00:00 ' , '1) 2017-01-01%a2) 2017-01-02%a1 more ' ),
383
- array ('2017-01-01 ' , 'P1D ' , 3 , 0 , 'every + 1d, from 2017-01-01 00:00:00 (included) recurring 4 time/s ' , '1) 2017-01-01%a2) 2017-01-02%a3) 2017-01-03%a1 more ' ),
381
+ array ('2017-01-01 ' , 'P1D ' , '2017-01-05 ' , 0 , 'every + 1d, from 2017-01-01 00:00:00.0 (included) to 2017-01-05 00:00:00.0 ' , '1) 2017-01-01%a2) 2017-01-02%a1 more ' ),
382
+ array ('2017-01-01 ' , 'P1D ' , 3 , 0 , 'every + 1d, from 2017-01-01 00:00:00.0 (included) recurring 4 time/s ' , '1) 2017-01-01%a2) 2017-01-02%a3) 2017-01-03%a1 more ' ),
384
383
385
- array ('2017-01-01 ' , 'P1D ' , '2017-01-21 ' , 0 , 'every + 1d, from 2017-01-01 00:00:00 (included) to 2017-01-21 00:00:00 ' , '1) 2017-01-01%a17 more ' ),
386
- array ('2017-01-01 ' , 'P1D ' , 19 , 0 , 'every + 1d, from 2017-01-01 00:00:00 (included) recurring 20 time/s ' , '1) 2017-01-01%a17 more ' ),
384
+ array ('2017-01-01 ' , 'P1D ' , '2017-01-21 ' , 0 , 'every + 1d, from 2017-01-01 00:00:00.0 (included) to 2017-01-21 00:00:00.0 ' , '1) 2017-01-01%a17 more ' ),
385
+ array ('2017-01-01 ' , 'P1D ' , 19 , 0 , 'every + 1d, from 2017-01-01 00:00:00.0 (included) recurring 20 time/s ' , '1) 2017-01-01%a17 more ' ),
387
386
388
- array ('2017-01-01 01:00:00 ' , 'P1D ' , '2017-01-03 01:00:00 ' , 0 , 'every + 1d, from 2017-01-01 01:00:00 (included) to 2017-01-03 01:00:00 ' , '1) 2017-01-01 01:00:00%a2) 2017-01-02 01:00:00 ' ),
389
- array ('2017-01-01 01:00:00 ' , 'P1D ' , 1 , 0 , 'every + 1d, from 2017-01-01 01:00:00 (included) recurring 2 time/s ' , '1) 2017-01-01 01:00:00%a2) 2017-01-02 01:00:00 ' ),
387
+ array ('2017-01-01 01:00:00 ' , 'P1D ' , '2017-01-03 01:00:00 ' , 0 , 'every + 1d, from 2017-01-01 01:00:00.0 (included) to 2017-01-03 01:00:00.0 ' , '1) 2017-01-01 01:00:00.0 %a2) 2017-01-02 01:00:00.0 ' ),
388
+ array ('2017-01-01 01:00:00 ' , 'P1D ' , 1 , 0 , 'every + 1d, from 2017-01-01 01:00:00.0 (included) recurring 2 time/s ' , '1) 2017-01-01 01:00:00.0 %a2) 2017-01-02 01:00:00.0 ' ),
390
389
391
- array ('2017-01-01 ' , 'P1DT1H ' , '2017-01-03 ' , 0 , "every + 1d 01:00:00 $ ms, from 2017-01-01 00:00:00 (included) to 2017-01-03 00:00:00 " , '1) 2017-01-01 00:00:00%a2) 2017-01-02 01:00:00 ' ),
392
- array ('2017-01-01 ' , 'P1DT1H ' , 1 , 0 , "every + 1d 01:00:00 $ ms, from 2017-01-01 00:00:00 (included) recurring 2 time/s " , '1) 2017-01-01 00:00:00%a2) 2017-01-02 01:00:00 ' ),
390
+ array ('2017-01-01 ' , 'P1DT1H ' , '2017-01-03 ' , 0 , "every + 1d 01:00:00 $ ms, from 2017-01-01 00:00:00.0 (included) to 2017-01-03 00:00:00.0 " , '1) 2017-01-01 00:00:00.0 %a2) 2017-01-02 01:00:00.0 ' ),
391
+ array ('2017-01-01 ' , 'P1DT1H ' , 1 , 0 , "every + 1d 01:00:00 $ ms, from 2017-01-01 00:00:00.0 (included) recurring 2 time/s " , '1) 2017-01-01 00:00:00.0 %a2) 2017-01-02 01:00:00.0 ' ),
393
392
394
- array ('2017-01-01 ' , 'P1D ' , '2017-01-04 ' , \DatePeriod::EXCLUDE_START_DATE , 'every + 1d, from 2017-01-01 00:00:00 (excluded) to 2017-01-04 00:00:00 ' , '1) 2017-01-02%a2) 2017-01-03 ' ),
395
- array ('2017-01-01 ' , 'P1D ' , 2 , \DatePeriod::EXCLUDE_START_DATE , 'every + 1d, from 2017-01-01 00:00:00 (excluded) recurring 2 time/s ' , '1) 2017-01-02%a2) 2017-01-03 ' ),
393
+ array ('2017-01-01 ' , 'P1D ' , '2017-01-04 ' , \DatePeriod::EXCLUDE_START_DATE , 'every + 1d, from 2017-01-01 00:00:00.0 (excluded) to 2017-01-04 00:00:00.0 ' , '1) 2017-01-02%a2) 2017-01-03 ' ),
394
+ array ('2017-01-01 ' , 'P1D ' , 2 , \DatePeriod::EXCLUDE_START_DATE , 'every + 1d, from 2017-01-01 00:00:00.0 (excluded) recurring 2 time/s ' , '1) 2017-01-02%a2) 2017-01-03 ' ),
396
395
);
397
396
398
397
if (\PHP_VERSION_ID < 70107 ) {
@@ -401,4 +400,15 @@ public function providePeriods()
401
400
402
401
return $ periods ;
403
402
}
403
+
404
+ private function createInterval ($ intervalSpec , $ ms , $ invert )
405
+ {
406
+ $ interval = new \DateInterval ($ intervalSpec );
407
+ if (\PHP_VERSION_ID >= 70100 && isset ($ interval ->f )) {
408
+ $ interval ->f = $ ms ;
409
+ }
410
+ $ interval ->invert = $ invert ;
411
+
412
+ return $ interval ;
413
+ }
404
414
}
0 commit comments