27
27
use WikibaseSolutions \CypherDSL \Functions \LocalDateTime ;
28
28
use WikibaseSolutions \CypherDSL \Functions \LocalTime ;
29
29
use WikibaseSolutions \CypherDSL \Functions \Point ;
30
+ use WikibaseSolutions \CypherDSL \Functions \Time ;
30
31
use WikibaseSolutions \CypherDSL \Literals \Boolean ;
31
32
use WikibaseSolutions \CypherDSL \Literals \Decimal ;
32
33
use WikibaseSolutions \CypherDSL \Literals \Literal ;
@@ -448,12 +449,56 @@ public function testLocalTimeCurrentWithTimezone() {
448
449
$ this ->assertEquals (new LocalTime (new PropertyMap (["timezone " => new StringLiteral ("America/Los Angeles " )])), $ localTime );
449
450
}
450
451
452
+
453
+ /**
454
+ * @dataProvider provideLocalTimeData
455
+ * @param $hour
456
+ * @param $minute
457
+ * @param $second
458
+ * @param $millisecond
459
+ * @param $microsecond
460
+ * @param $nanosecond
461
+ * @param $expected
462
+ */
463
+ public function testLocalTime ($ hour , $ minute , $ second , $ millisecond , $ microsecond , $ nanosecond , $ expected ) {
464
+ $ localTime = Literal::localTime ($ hour , $ minute , $ second , $ millisecond , $ microsecond , $ nanosecond );
465
+ $ this ->assertEquals ($ localTime , $ expected );
466
+ }
467
+
451
468
public function testLocalTimeString () {
452
469
$ localTime = Literal::localTimeString ("21:40:32.142 " );
453
470
$ this ->assertEquals (new LocalTime (new StringLiteral ("21:40:32.142 " )), $ localTime );
454
471
}
455
472
456
-
473
+ public function testTimeCurrentWithoutTimezone () {
474
+ $ time = Literal::timeCurrent ();
475
+ $ this ->assertEquals ($ time , new Time ());
476
+ }
477
+
478
+ public function testTimeCurrentWithTimezone () {
479
+ $ time = Literal::timeCurrent ("America/Los Angeles " );
480
+ $ this ->assertEquals ($ time , new Time (new PropertyMap (["timezone " => new StringLiteral ("America/Los Angeles " )])));
481
+ }
482
+
483
+ /**
484
+ * @dataProvider provideTimeData
485
+ * @param $hour
486
+ * @param $minute
487
+ * @param $second
488
+ * @param $millisecond
489
+ * @param $microsecond
490
+ * @param $nanosecond
491
+ * @param $expected
492
+ */
493
+ public function testTime ($ hour , $ minute , $ second , $ millisecond , $ microsecond , $ nanosecond , $ expected ) {
494
+ $ time = Literal::time ($ hour , $ minute , $ second , $ millisecond , $ microsecond , $ nanosecond );
495
+ $ this ->assertEquals ($ time , $ expected );
496
+ }
497
+
498
+ public function testTimeString () {
499
+ $ time = Literal::timeString ("21:40:32.142+0100 " );
500
+ $ this ->assertEquals ($ time , new Time (new StringLiteral ("21:40:32.142+0100 " )));
501
+ }
457
502
458
503
public function provideDateYMDData ()
459
504
{
@@ -695,4 +740,44 @@ public function provideLocalDatetimeYQData() {
695
740
[new Decimal (2000 ), new Decimal (3 ), new Decimal (8 ), new Decimal (25 ), new Decimal (44 ), new Decimal (18 ), new Decimal (6 ), new Decimal (31 ), new LocalDateTime (new PropertyMap (["year " => new Decimal (2000 ), "ordinalDay " => new Decimal (3 ), "hour " => new Decimal (8 ), "minute " => new Decimal (25 ), "second " => new Decimal (44 ), "millisecond " => new Decimal (18 ), "microsecond " => new Decimal (6 ), "nanosecond " => new Decimal (31 )]))],
696
741
];
697
742
}
743
+
744
+ public function provideLocalTimeData () {
745
+ // [$hour, $minute, $second, $millisecond, $microsecond, $nanosecond, $expected]
746
+ return [
747
+ [11 , null , null , null , null , null , new LocalTime (new PropertyMap (["hour " => new Decimal (11 )]))],
748
+ [11 , 23 , null , null , null , null , new LocalTime (new PropertyMap (["hour " => new Decimal (11 ), "minute " => new Decimal (23 )]))],
749
+ [11 , 23 , 2 , null , null , null , new LocalTime (new PropertyMap (["hour " => new Decimal (11 ), "minute " => new Decimal (23 ), "second " => new Decimal (2 )]))],
750
+ [11 , 23 , 2 , 54 , null , null , new LocalTime (new PropertyMap (["hour " => new Decimal (11 ), "minute " => new Decimal (23 ), "second " => new Decimal (2 ), "millisecond " => new Decimal (54 )]))],
751
+ [11 , 23 , 2 , 54 , 8 , null , new LocalTime (new PropertyMap (["hour " => new Decimal (11 ), "minute " => new Decimal (23 ), "second " => new Decimal (2 ), "millisecond " => new Decimal (54 ), "microsecond " => new Decimal (8 )]))],
752
+ [11 , 23 , 2 , 54 , 8 , 29 , new LocalTime (new PropertyMap (["hour " => new Decimal (11 ), "minute " => new Decimal (23 ), "second " => new Decimal (2 ), "millisecond " => new Decimal (54 ), "microsecond " => new Decimal (8 ), "nanosecond " => new Decimal (29 )]))],
753
+
754
+ // types
755
+ [new Decimal (11 ), null , null , null , null , null , new LocalTime (new PropertyMap (["hour " => new Decimal (11 )]))],
756
+ [new Decimal (11 ), new Decimal (23 ), null , null , null , null , new LocalTime (new PropertyMap (["hour " => new Decimal (11 ), "minute " => new Decimal (23 )]))],
757
+ [new Decimal (11 ), new Decimal (23 ), new Decimal (2 ), null , null , null , new LocalTime (new PropertyMap (["hour " => new Decimal (11 ), "minute " => new Decimal (23 ), "second " => new Decimal (2 )]))],
758
+ [new Decimal (11 ), new Decimal (23 ), new Decimal (2 ), new Decimal (54 ), null , null , new LocalTime (new PropertyMap (["hour " => new Decimal (11 ), "minute " => new Decimal (23 ), "second " => new Decimal (2 ), "millisecond " => new Decimal (54 )]))],
759
+ [new Decimal (11 ), new Decimal (23 ), new Decimal (2 ), new Decimal (54 ), new Decimal (8 ), null , new LocalTime (new PropertyMap (["hour " => new Decimal (11 ), "minute " => new Decimal (23 ), "second " => new Decimal (2 ), "millisecond " => new Decimal (54 ), "microsecond " => new Decimal (8 )]))],
760
+ [new Decimal (11 ), new Decimal (23 ), new Decimal (2 ), new Decimal (54 ), new Decimal (8 ), new Decimal (29 ), new LocalTime (new PropertyMap (["hour " => new Decimal (11 ), "minute " => new Decimal (23 ), "second " => new Decimal (2 ), "millisecond " => new Decimal (54 ), "microsecond " => new Decimal (8 ), "nanosecond " => new Decimal (29 )]))],
761
+ ];
762
+ }
763
+
764
+ public function provideTimeData () {
765
+ // [$hour, $minute, $second, $millisecond, $microsecond, $nanosecond, $expected]
766
+ return [
767
+ [11 , null , null , null , null , null , new Time (new PropertyMap (["hour " => new Decimal (11 )]))],
768
+ [11 , 23 , null , null , null , null , new Time (new PropertyMap (["hour " => new Decimal (11 ), "minute " => new Decimal (23 )]))],
769
+ [11 , 23 , 2 , null , null , null , new Time (new PropertyMap (["hour " => new Decimal (11 ), "minute " => new Decimal (23 ), "second " => new Decimal (2 )]))],
770
+ [11 , 23 , 2 , 54 , null , null , new Time (new PropertyMap (["hour " => new Decimal (11 ), "minute " => new Decimal (23 ), "second " => new Decimal (2 ), "millisecond " => new Decimal (54 )]))],
771
+ [11 , 23 , 2 , 54 , 8 , null , new Time (new PropertyMap (["hour " => new Decimal (11 ), "minute " => new Decimal (23 ), "second " => new Decimal (2 ), "millisecond " => new Decimal (54 ), "microsecond " => new Decimal (8 )]))],
772
+ [11 , 23 , 2 , 54 , 8 , 29 , new Time (new PropertyMap (["hour " => new Decimal (11 ), "minute " => new Decimal (23 ), "second " => new Decimal (2 ), "millisecond " => new Decimal (54 ), "microsecond " => new Decimal (8 ), "nanosecond " => new Decimal (29 )]))],
773
+
774
+ // types
775
+ [new Decimal (11 ), null , null , null , null , null , new Time (new PropertyMap (["hour " => new Decimal (11 )]))],
776
+ [new Decimal (11 ), new Decimal (23 ), null , null , null , null , new Time (new PropertyMap (["hour " => new Decimal (11 ), "minute " => new Decimal (23 )]))],
777
+ [new Decimal (11 ), new Decimal (23 ), new Decimal (2 ), null , null , null , new Time (new PropertyMap (["hour " => new Decimal (11 ), "minute " => new Decimal (23 ), "second " => new Decimal (2 )]))],
778
+ [new Decimal (11 ), new Decimal (23 ), new Decimal (2 ), new Decimal (54 ), null , null , new Time (new PropertyMap (["hour " => new Decimal (11 ), "minute " => new Decimal (23 ), "second " => new Decimal (2 ), "millisecond " => new Decimal (54 )]))],
779
+ [new Decimal (11 ), new Decimal (23 ), new Decimal (2 ), new Decimal (54 ), new Decimal (8 ), null , new Time (new PropertyMap (["hour " => new Decimal (11 ), "minute " => new Decimal (23 ), "second " => new Decimal (2 ), "millisecond " => new Decimal (54 ), "microsecond " => new Decimal (8 )]))],
780
+ [new Decimal (11 ), new Decimal (23 ), new Decimal (2 ), new Decimal (54 ), new Decimal (8 ), new Decimal (29 ), new Time (new PropertyMap (["hour " => new Decimal (11 ), "minute " => new Decimal (23 ), "second " => new Decimal (2 ), "millisecond " => new Decimal (54 ), "microsecond " => new Decimal (8 ), "nanosecond " => new Decimal (29 )]))],
781
+ ];
782
+ }
698
783
}
0 commit comments