1<?php 2 3namespace dokuwiki\plugin\struct\test\types; 4 5use dokuwiki\plugin\struct\meta\ValidationException; 6use dokuwiki\plugin\struct\test\StructTest; 7use dokuwiki\plugin\struct\types\DateTime; 8 9/** 10 * @group plugin_struct 11 * @group plugins 12 */ 13class DateTimeTest extends StructTest 14{ 15 16 /** 17 * DataProvider for successful validations 18 */ 19 public function validate_success() 20 { 21 return [ 22 ['2017-04-12', '2017-04-12 00:00'], 23 ['2017-04-12 ', '2017-04-12 00:00'], 24 [' 2017-04-12 ', '2017-04-12 00:00'], 25 ['2017-04-12 10:11', '2017-04-12 10:11'], 26 ['2017-04-12 10:11:12', '2017-04-12 10:11'], 27 ['2017-04-12 whatever', '2017-04-12 00:00'], 28 ['2017-4-3', '2017-04-03 00:00'], 29 ['917-4-3', '917-04-03 00:00'], 30 ]; 31 } 32 33 /** 34 * @dataProvider validate_success 35 */ 36 public function test_validation_success($input, $expect) 37 { 38 $date = new DateTime(); 39 40 $this->assertEquals($expect, $date->validate($input)); 41 } 42 43 /** 44 * DataProvider for failed validations 45 */ 46 public function validate_fail() 47 { 48 return [ 49 ['2017-02-31'], 50 ['2017-13-31'], 51 ['2017-04-12 24:00'], 52 ['2017-04-12 23:70'], 53 ]; 54 } 55 56 /** 57 * @dataProvider validate_fail 58 */ 59 public function test_validation_fail($input) 60 { 61 $this->expectException(ValidationException::class); 62 $date = new DateTime(); 63 $date->validate($input); 64 } 65} 66