Skip to content

Commit 57d3f7f

Browse files
Adicionado mais testes unitários
1 parent 3f1d950 commit 57d3f7f

5 files changed

Lines changed: 553 additions & 0 deletions

File tree

tests/ValidateDateTest.php

Lines changed: 146 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,4 +110,150 @@ public function testValidateDateIso8601AllFormats(): void
110110
self::assertFalse(ValidateDate::validateDateIso8601($v), "Aceitou inválido: $v");
111111
}
112112
}
113+
114+
public function testValidateDateBrazilWithInvalidFormats(): void
115+
{
116+
self::assertFalse(ValidateDate::validateDateBrazil(''));
117+
self::assertFalse(ValidateDate::validateDateBrazil('29-04-2021'));
118+
self::assertFalse(ValidateDate::validateDateBrazil('2021/04/29'));
119+
self::assertFalse(ValidateDate::validateDateBrazil('29/04'));
120+
self::assertFalse(ValidateDate::validateDateBrazil('29/04/21'));
121+
}
122+
123+
public function testValidateDateBrazilLeapYear(): void
124+
{
125+
self::assertTrue(ValidateDate::validateDateBrazil('29/02/2024'));
126+
self::assertFalse(ValidateDate::validateDateBrazil('29/02/2023'));
127+
}
128+
129+
public function testValidateDateBrazilEdgeDays(): void
130+
{
131+
self::assertTrue(ValidateDate::validateDateBrazil('01/01/2021'));
132+
self::assertTrue(ValidateDate::validateDateBrazil('31/12/2021'));
133+
self::assertTrue(ValidateDate::validateDateBrazil('31/01/2021'));
134+
self::assertFalse(ValidateDate::validateDateBrazil('32/01/2021'));
135+
self::assertFalse(ValidateDate::validateDateBrazil('00/01/2021'));
136+
}
137+
138+
public function testValidateDateAmericanWithInvalidFormats(): void
139+
{
140+
self::assertFalse(ValidateDate::validateDateAmerican(''));
141+
self::assertFalse(ValidateDate::validateDateAmerican('2021/04/29'));
142+
self::assertFalse(ValidateDate::validateDateAmerican('29-04-2021'));
143+
self::assertFalse(ValidateDate::validateDateAmerican('2021-04'));
144+
self::assertFalse(ValidateDate::validateDateAmerican('21-04-29'));
145+
}
146+
147+
public function testValidateDateAmericanLeapYear(): void
148+
{
149+
self::assertTrue(ValidateDate::validateDateAmerican('2024-02-29'));
150+
self::assertFalse(ValidateDate::validateDateAmerican('2023-02-29'));
151+
}
152+
153+
public function testValidateDateAmericanEdgeDays(): void
154+
{
155+
self::assertTrue(ValidateDate::validateDateAmerican('2021-01-01'));
156+
self::assertTrue(ValidateDate::validateDateAmerican('2021-12-31'));
157+
self::assertFalse(ValidateDate::validateDateAmerican('2021-01-32'));
158+
self::assertFalse(ValidateDate::validateDateAmerican('2021-00-15'));
159+
self::assertFalse(ValidateDate::validateDateAmerican('2021-13-15'));
160+
}
161+
162+
public function testValidateTimeStampWithInvalidFormats(): void
163+
{
164+
self::assertFalse(ValidateDate::validateTimeStamp(''));
165+
self::assertFalse(ValidateDate::validateTimeStamp('2021-04-29'));
166+
self::assertFalse(ValidateDate::validateTimeStamp('2021-04-29 11:17'));
167+
self::assertFalse(ValidateDate::validateTimeStamp('29/04/2021'));
168+
}
169+
170+
public function testValidateTimeStampBrazilFormat(): void
171+
{
172+
self::assertTrue(ValidateDate::validateTimeStamp('29/04/2021 11:17:12'));
173+
self::assertFalse(ValidateDate::validateTimeStamp('29/04/2021 25:17:12'));
174+
}
175+
176+
public function testValidateTimeStampEdgeTimes(): void
177+
{
178+
self::assertTrue(ValidateDate::validateTimeStamp('2021-04-29 00:00:00'));
179+
self::assertTrue(ValidateDate::validateTimeStamp('2021-04-29 23:59:59'));
180+
self::assertFalse(ValidateDate::validateTimeStamp('2021-04-29 24:00:00'));
181+
self::assertFalse(ValidateDate::validateTimeStamp('2021-04-29 11:60:00'));
182+
self::assertFalse(ValidateDate::validateTimeStamp('2021-04-29 11:17:60'));
183+
}
184+
185+
public function testValidateDateNotFutureWithInvalidDate(): void
186+
{
187+
self::assertFalse(ValidateDate::validateDateNotFuture('invalid-date'));
188+
}
189+
190+
public function testValidateDateNotFutureWithEmptyString(): void
191+
{
192+
self::assertTrue(ValidateDate::validateDateNotFuture(''));
193+
}
194+
195+
public function testValidateDateNotFutureWithPastDates(): void
196+
{
197+
self::assertTrue(ValidateDate::validateDateNotFuture('2020-01-01'));
198+
self::assertTrue(ValidateDate::validateDateNotFuture('1990-06-15'));
199+
self::assertTrue(ValidateDate::validateDateNotFuture('2000-12-31'));
200+
}
201+
202+
public function testValidateDateNotFutureWithToday(): void
203+
{
204+
$today = (new DateTimeImmutable())->format('Y-m-d');
205+
self::assertTrue(ValidateDate::validateDateNotFuture($today));
206+
}
207+
208+
public function testValidateDateUTCWithoutTimezoneEdgeCases(): void
209+
{
210+
self::assertTrue(ValidateDate::validateDateUTCWithoutTimezone('2000-01-01T00:00:00'));
211+
self::assertTrue(ValidateDate::validateDateUTCWithoutTimezone('2099-12-31T23:59:59'));
212+
self::assertFalse(ValidateDate::validateDateUTCWithoutTimezone(''));
213+
self::assertFalse(ValidateDate::validateDateUTCWithoutTimezone('2025-11-20'));
214+
}
215+
216+
public function testValidateDateIso8601Empty(): void
217+
{
218+
self::assertFalse(ValidateDate::validateDateIso8601(''));
219+
}
220+
221+
public function testValidateDateIso8601Duration(): void
222+
{
223+
self::assertTrue(ValidateDate::validateDateIso8601('P1Y'));
224+
self::assertTrue(ValidateDate::validateDateIso8601('P1M'));
225+
self::assertTrue(ValidateDate::validateDateIso8601('P1D'));
226+
self::assertTrue(ValidateDate::validateDateIso8601('PT1H'));
227+
self::assertTrue(ValidateDate::validateDateIso8601('PT1M'));
228+
self::assertTrue(ValidateDate::validateDateIso8601('PT1S'));
229+
self::assertTrue(ValidateDate::validateDateIso8601('P1Y2M3DT4H5M6S'));
230+
self::assertFalse(ValidateDate::validateDateIso8601('P'));
231+
}
232+
233+
public function testValidateDateIso8601WeekDate(): void
234+
{
235+
self::assertTrue(ValidateDate::validateDateIso8601('2025-W01'));
236+
self::assertTrue(ValidateDate::validateDateIso8601('2025-W52'));
237+
self::assertTrue(ValidateDate::validateDateIso8601('2025-W01-1'));
238+
self::assertTrue(ValidateDate::validateDateIso8601('2025-W01-7'));
239+
self::assertFalse(ValidateDate::validateDateIso8601('2025-W00'));
240+
self::assertFalse(ValidateDate::validateDateIso8601('2025-W54'));
241+
}
242+
243+
public function testValidateDateIso8601OrdinalDate(): void
244+
{
245+
self::assertTrue(ValidateDate::validateDateIso8601('2025-001'));
246+
self::assertTrue(ValidateDate::validateDateIso8601('2025-365'));
247+
self::assertTrue(ValidateDate::validateDateIso8601('2024-366'));
248+
self::assertFalse(ValidateDate::validateDateIso8601('2025-000'));
249+
self::assertFalse(ValidateDate::validateDateIso8601('2025-366'));
250+
}
251+
252+
public function testValidateDateIso8601Interval(): void
253+
{
254+
self::assertTrue(ValidateDate::validateDateIso8601('2025-01-01/2025-12-31'));
255+
self::assertTrue(ValidateDate::validateDateIso8601('P1Y/2025-12-31'));
256+
self::assertFalse(ValidateDate::validateDateIso8601('2025-01-01/'));
257+
self::assertFalse(ValidateDate::validateDateIso8601('/2025-12-31'));
258+
}
113259
}

tests/ValidateHourTest.php

Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,4 +14,87 @@ public function testValidateHour(): void
1414
self::assertTrue(ValidateHour::validateHour('08:50'));
1515
self::assertFalse(ValidateHour::validateHour('08:5'));
1616
}
17+
18+
public function testValidateHourEdgeCases(): void
19+
{
20+
self::assertTrue(ValidateHour::validateHour('00:00'));
21+
self::assertTrue(ValidateHour::validateHour('23:59'));
22+
self::assertTrue(ValidateHour::validateHour('12:00'));
23+
self::assertTrue(ValidateHour::validateHour('09:30'));
24+
}
25+
26+
public function testValidateHourInvalidHours(): void
27+
{
28+
self::assertFalse(ValidateHour::validateHour('24:00'));
29+
self::assertFalse(ValidateHour::validateHour('25:00'));
30+
self::assertFalse(ValidateHour::validateHour('99:00'));
31+
}
32+
33+
public function testValidateHourInvalidMinutes(): void
34+
{
35+
self::assertFalse(ValidateHour::validateHour('12:60'));
36+
self::assertFalse(ValidateHour::validateHour('12:99'));
37+
self::assertFalse(ValidateHour::validateHour('12:100'));
38+
}
39+
40+
public function testValidateHourInvalidFormats(): void
41+
{
42+
self::assertFalse(ValidateHour::validateHour(''));
43+
self::assertFalse(ValidateHour::validateHour('8:50'));
44+
self::assertFalse(ValidateHour::validateHour('08:5'));
45+
self::assertFalse(ValidateHour::validateHour('0850'));
46+
self::assertFalse(ValidateHour::validateHour('08-50'));
47+
self::assertFalse(ValidateHour::validateHour('08.50'));
48+
}
49+
50+
public function testValidateHourWithSeconds(): void
51+
{
52+
self::assertFalse(ValidateHour::validateHour('08:50:30'));
53+
}
54+
55+
public function testValidateHourWithSpaces(): void
56+
{
57+
self::assertFalse(ValidateHour::validateHour(' 08:50'));
58+
self::assertFalse(ValidateHour::validateHour('08:50 '));
59+
self::assertFalse(ValidateHour::validateHour(' 08:50 '));
60+
self::assertFalse(ValidateHour::validateHour('08 :50'));
61+
self::assertFalse(ValidateHour::validateHour('08: 50'));
62+
}
63+
64+
public function testValidateHourWithLetters(): void
65+
{
66+
self::assertFalse(ValidateHour::validateHour('AB:CD'));
67+
self::assertFalse(ValidateHour::validateHour('12:AB'));
68+
self::assertFalse(ValidateHour::validateHour('AB:30'));
69+
}
70+
71+
public function testValidateHourAllValidHours(): void
72+
{
73+
for ($h = 0; $h < 24; $h++) {
74+
$hour = str_pad((string) $h, 2, '0', STR_PAD_LEFT) . ':00';
75+
self::assertTrue(ValidateHour::validateHour($hour), "Falhou para: $hour");
76+
}
77+
}
78+
79+
public function testValidateHourAllValidMinutes(): void
80+
{
81+
for ($m = 0; $m < 60; $m++) {
82+
$hour = '12:' . str_pad((string) $m, 2, '0', STR_PAD_LEFT);
83+
self::assertTrue(ValidateHour::validateHour($hour), "Falhou para: $hour");
84+
}
85+
}
86+
87+
public function testValidateHourWithAmPm(): void
88+
{
89+
self::assertFalse(ValidateHour::validateHour('08:50 AM'));
90+
self::assertFalse(ValidateHour::validateHour('08:50 PM'));
91+
self::assertFalse(ValidateHour::validateHour('08:50AM'));
92+
self::assertFalse(ValidateHour::validateHour('08:50PM'));
93+
}
94+
95+
public function testValidateHourNegativeValues(): void
96+
{
97+
self::assertFalse(ValidateHour::validateHour('-1:00'));
98+
self::assertFalse(ValidateHour::validateHour('12:-1'));
99+
}
17100
}

tests/ValidatePhoneTest.php

Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,4 +14,101 @@ public function testValidate(): void
1414
self::assertEquals(true, ValidatePhone::validate('44999999999'));
1515
self::assertEquals(false, ValidatePhone::validate('449999999'));
1616
}
17+
18+
public function testValidateWithMask(): void
19+
{
20+
self::assertTrue(ValidatePhone::validate('(44) 99999-9999'));
21+
self::assertTrue(ValidatePhone::validate('(44) 9999-9999'));
22+
self::assertTrue(ValidatePhone::validate('(11) 98765-4321'));
23+
}
24+
25+
public function testValidateWithoutMask(): void
26+
{
27+
self::assertTrue(ValidatePhone::validate('44999999999'));
28+
self::assertTrue(ValidatePhone::validate('4499999999'));
29+
self::assertTrue(ValidatePhone::validate('11987654321'));
30+
}
31+
32+
public function testValidateTenDigits(): void
33+
{
34+
self::assertTrue(ValidatePhone::validate('1199999999'));
35+
self::assertTrue(ValidatePhone::validate('4433334444'));
36+
}
37+
38+
public function testValidateElevenDigits(): void
39+
{
40+
self::assertTrue(ValidatePhone::validate('11999999999'));
41+
self::assertTrue(ValidatePhone::validate('44988887777'));
42+
}
43+
44+
public function testValidateInvalidTooShort(): void
45+
{
46+
self::assertFalse(ValidatePhone::validate('449999999'));
47+
self::assertFalse(ValidatePhone::validate('123456789'));
48+
self::assertFalse(ValidatePhone::validate('12345'));
49+
}
50+
51+
public function testValidateInvalidTooLong(): void
52+
{
53+
self::assertFalse(ValidatePhone::validate('449999999999'));
54+
self::assertFalse(ValidatePhone::validate('1234567890123'));
55+
}
56+
57+
public function testValidateInvalidDDD(): void
58+
{
59+
self::assertFalse(ValidatePhone::validate('00999999999'));
60+
self::assertFalse(ValidatePhone::validate('01999999999'));
61+
self::assertFalse(ValidatePhone::validate('10999999999'));
62+
}
63+
64+
public function testValidateEmptyString(): void
65+
{
66+
self::assertFalse(ValidatePhone::validate(''));
67+
}
68+
69+
public function testValidateWithLetters(): void
70+
{
71+
self::assertFalse(ValidatePhone::validate('44ABCDEFGHI'));
72+
self::assertFalse(ValidatePhone::validate('abcdefghijk'));
73+
}
74+
75+
public function testValidateWithSpecialChars(): void
76+
{
77+
self::assertTrue(ValidatePhone::validate('(44) 99999-9999'));
78+
self::assertTrue(ValidatePhone::validate('44.99999.9999'));
79+
self::assertTrue(ValidatePhone::validate('44-99999-9999'));
80+
}
81+
82+
public function testValidateAllValidDDDs(): void
83+
{
84+
$validDDDs = ['11', '21', '31', '41', '51', '61', '71', '81', '91', '44', '48', '67', '98'];
85+
foreach ($validDDDs as $ddd) {
86+
$phone = $ddd . '999999999';
87+
self::assertTrue(ValidatePhone::validate($phone), "Falhou para DDD: $ddd");
88+
}
89+
}
90+
91+
public function testValidateCellphoneWithNine(): void
92+
{
93+
self::assertTrue(ValidatePhone::validate('11999999999'));
94+
self::assertTrue(ValidatePhone::validate('44988887777'));
95+
self::assertTrue(ValidatePhone::validate('21987654321'));
96+
}
97+
98+
public function testValidateLandline(): void
99+
{
100+
self::assertTrue(ValidatePhone::validate('1133334444'));
101+
self::assertTrue(ValidatePhone::validate('4433221100'));
102+
}
103+
104+
public function testValidateWithSpaces(): void
105+
{
106+
self::assertTrue(ValidatePhone::validate('44 99999 9999'));
107+
self::assertTrue(ValidatePhone::validate('44 9999 9999'));
108+
}
109+
110+
public function testValidateInvalidCellphoneStartingWithZero(): void
111+
{
112+
self::assertFalse(ValidatePhone::validate('44099999999'));
113+
}
17114
}

0 commit comments

Comments
 (0)