15
15
*/
16
16
package org .everit .json .schema .internal ;
17
17
18
+ import java .util .Optional ;
19
+
18
20
import org .everit .json .schema .FormatValidator ;
19
21
import org .junit .Assert ;
20
22
import org .junit .Test ;
21
23
22
- import java .util .Optional ;
23
-
24
24
public class DefaultFormatValidatorTest {
25
25
26
26
private static final String THERE_IS_NO_PLACE_LIKE = "127.0.0.1" ;
27
27
28
28
private static final String IPV6_ADDR = "2001:db8:85a3:0:0:8a2e:370:7334" ;
29
29
30
30
private void assertFailure (final String subject , final FormatValidator format ,
31
- final String expectedFailure ) {
31
+ final String expectedFailure ) {
32
32
Optional <String > opt = format .validate (subject );
33
33
Assert .assertNotNull ("the optional is not null" , opt );
34
34
Assert .assertTrue ("failure exists" , opt .isPresent ());
@@ -44,18 +44,64 @@ private void assertSuccess(final String subject, final FormatValidator format) {
44
44
@ Test
45
45
public void dateTimeExceedingLimits () {
46
46
assertFailure ("1996-60-999T16:39:57-08:00" , new DateTimeFormatValidator (),
47
- "[1996-60-999T16:39:57-08:00] is not a valid date-time" );
47
+ "[1996-60-999T16:39:57-08:00] is not a valid date-time. Expected [yyyy-MM-dd'T'HH:mm:ssZ, yyyy-MM-dd'T'HH:mm:ss.[0-9]{1,9}Z] " );
48
48
}
49
49
50
50
@ Test
51
51
public void dateTimeFormatFailure () {
52
52
assertFailure ("2015-03-13T11:00:000" , new DateTimeFormatValidator (),
53
- "[2015-03-13T11:00:000] is not a valid date-time" );
53
+ "[2015-03-13T11:00:000] is not a valid date-time. Expected [yyyy-MM-dd'T'HH:mm:ssZ, yyyy-MM-dd'T'HH:mm:ss.[0-9]{1,9}Z]" );
54
+ }
55
+
56
+ @ Test
57
+ public void dateTimeWithSingleDigitInSecFracSuccess () {
58
+ assertSuccess ("2015-02-28T11:00:00.1Z" , new DateTimeFormatValidator ());
59
+ }
60
+
61
+ @ Test
62
+ public void dateTimeWithTwoDigitsInSecFracSuccess () {
63
+ assertSuccess ("2015-02-28T11:00:00.12Z" , new DateTimeFormatValidator ());
64
+ }
65
+
66
+ @ Test
67
+ public void dateTimeWithThreeDigitsInSecFracSuccess () {
68
+ assertSuccess ("2015-02-28T11:00:00.123Z" , new DateTimeFormatValidator ());
69
+ }
70
+
71
+ @ Test
72
+ public void dateTimeWithFourDigitsInSecFracSuccess () {
73
+ assertSuccess ("2015-02-28T11:00:00.1234Z" , new DateTimeFormatValidator ());
74
+ }
75
+
76
+ @ Test
77
+ public void dateTimeWithFiveDigitsInSecFracSuccess () {
78
+ assertSuccess ("2015-02-28T11:00:00.12345Z" , new DateTimeFormatValidator ());
79
+ }
80
+
81
+ @ Test
82
+ public void dateTimeWithSixDigitsInSecFracSuccess () {
83
+ assertSuccess ("2015-02-28T11:00:00.123456Z" , new DateTimeFormatValidator ());
84
+ }
85
+
86
+ @ Test
87
+ public void dateTimeWithSevenDigitsInSecFracSuccess () {
88
+ assertSuccess ("2015-02-28T11:00:00.1234567Z" , new DateTimeFormatValidator ());
89
+ }
90
+
91
+ @ Test
92
+ public void dateTimeWithEightDigitsInSecFracSuccess () {
93
+ assertSuccess ("2015-02-28T11:00:00.12345678Z" , new DateTimeFormatValidator ());
94
+ }
95
+
96
+ @ Test
97
+ public void dateTimeWithNineDigitsInSecFracSuccess () {
98
+ assertSuccess ("2015-02-28T11:00:00.123456789Z" , new DateTimeFormatValidator ());
54
99
}
55
100
56
101
@ Test
57
- public void dateTimeSecFracSuccess () {
58
- assertSuccess ("2015-02-28T11:00:00.111Z" , new DateTimeFormatValidator ());
102
+ public void dateTimeWithTenDigitsInSecFracFailure () {
103
+ assertFailure ("2015-02-28T11:00:00.1234567890Z" , new DateTimeFormatValidator (),
104
+ "[2015-02-28T11:00:00.1234567890Z] is not a valid date-time. Expected [yyyy-MM-dd'T'HH:mm:ssZ, yyyy-MM-dd'T'HH:mm:ss.[0-9]{1,9}Z]" );
59
105
}
60
106
61
107
@ Test
0 commit comments