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\Date; 8 9/** 10 * @group plugin_struct 11 * @group plugins 12 */ 13class DateTest 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'], 23 ['2017-04-12 ', '2017-04-12'], 24 [' 2017-04-12 ', '2017-04-12'], 25 ['2017-04-12 10:11', '2017-04-12'], 26 ['2017-04-12 10:11:12', '2017-04-12'], 27 ['2017-04-12 whatever', '2017-04-12'], 28 ['2017-4-3', '2017-04-03'], 29 ['917-4-3', '917-04-03'], 30 ]; 31 } 32 33 /** 34 * @dataProvider validate_success 35 */ 36 public function test_validation_success($input, $expect) 37 { 38 $date = new Date(); 39 40 $this->assertEquals($expect, $date->validate($input)); 41 } 42 43 44 /** 45 * DataProvider for failed validations 46 */ 47 public function validate_fail() 48 { 49 return [ 50 ['2017-02-31'], 51 ['2017-13-31'], 52 ]; 53 } 54 55 /** 56 * @dataProvider validate_fail 57 */ 58 public function test_validation_fail($input) 59 { 60 $this->expectException(ValidationException::class); 61 $date = new Date(); 62 63 $date->validate($input); 64 } 65} 66