PluginProbe
GiveWP – Donation Plugin and Fundraising Platform / 4.17.0
GiveWP – Donation Plugin and Fundraising Platform v4.17.0
4.17.0 4.16.9 4.16.8.1 4.16.8 4.16.7.2 4.16.7.1 4.16.7 4.16.6.1 4.16.6 4.16.5.1 4.16.5 4.16.4 4.16.3 4.16.2 4.16.1 4.16.0 4.15.5 4.15.4 4.15.3 4.15.2 4.15.1 4.15.0 2.3.0 2.3.1 2.3.2 All 256 releases
give / vendor / vendor-prefixed / stellarwp / validation / tests / unit / Rules / DateTimeTest.php

DateTimeTest.php in GiveWP – Donation Plugin and Fundraising Platform 4.17.0, at vendor/vendor-prefixed/stellarwp/validation/tests/unit/Rules/DateTimeTest.php

96 lines 2.5 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace Give\Vendors\StellarWP\Validation\Tests\Unit\Rules;
4
5 use DateTime;
6 use DateTimeImmutable;
7 use Give\Vendors\StellarWP\Validation\Rules\DateTime as DateTimeRule;
8 use Give\Vendors\StellarWP\Validation\Tests\TestCase;
9
10 class DateTimeTest extends TestCase
11 {
12 /**
13 * @since 1.2.0
14 */
15 public function testShouldPassDateTimeInstance()
16 {
17 $rule = new DateTimeRule();
18
19 $this->assertValidationRulePassed($rule, new DateTime());
20 $this->assertValidationRulePassed($rule, new DateTimeImmutable());
21 }
22
23 /**
24 * @since 1.2.0
25 */
26 public function testShouldPassDateTimeString()
27 {
28 $rule = new DateTimeRule();
29
30 $this->assertValidationRulePassed($rule, '2018-01-01 00:00:00');
31 $this->assertValidationRulePassed($rule, '2018-01-01 00:00:00.000000');
32 $this->assertValidationRulePassed($rule, '2018-01-01T00:00:00+00:00');
33 }
34
35 /**
36 * @since 1.2.0
37 */
38 public function testShouldFailRelativeDateTimeString()
39 {
40 $rule = new DateTimeRule();
41
42 $this->assertValidationRuleFailed($rule, 'now');
43 $this->assertValidationRuleFailed($rule, 'tomorrow');
44 $this->assertValidationRuleFailed($rule, 'yesterday');
45 }
46
47 /**
48 * @since 1.2.0
49 */
50 public function testShouldFailInvalidDateTimeStringValues()
51 {
52 $rule = new DateTimeRule();
53
54 $this->assertValidationRuleFailed($rule, true);
55 $this->assertValidationRuleFailed($rule, []);
56 $this->assertValidationRuleFailed($rule, 'abc');
57 }
58
59 /**
60 * @since 1.2.0
61 */
62 public function testShouldPassDateTimeStringWithFormat()
63 {
64 $rule = new DateTimeRule('Y-m-d H:i:s');
65
66 $this->assertValidationRulePassed($rule, '2018-01-01 00:00:00');
67 $this->assertValidationRuleFailed($rule, '2018-01-01 00:00:00.000000');
68 $this->assertValidationRuleFailed($rule, '2018-01-01T00:00:00+00:00');
69 }
70
71 /**
72 * @since 1.2.0
73 */
74 public function testShouldReturnSameDateTimeInstanceWhenSanitizing()
75 {
76 $rule = new DateTimeRule();
77
78 $date = new DateTimeImmutable();
79 $this->assertSame($date, $rule->sanitize($date));
80 }
81
82 /**
83 * @since 1.2.0
84 */
85 public function testShouldReturnDateTimeInstanceWhenSanitizingDateTimeString()
86 {
87 $rule = new DateTimeRule();
88
89 $date = new DateTimeImmutable();
90 $this->assertEquals(
91 $date->format('Y-m-d H:i:s'),
92 $rule->sanitize($date->format('Y-m-d H:i:s'))->format('Y-m-d H:i:s')
93 );
94 }
95 }
96