@@ -60,17 +60,17 @@ public function testExpectsStringCompatibleType()
60
60
}
61
61
62
62
/**
63
- * @dataProvider getValidUuids
63
+ * @dataProvider getValidStrictUuids
64
64
*/
65
- public function testValidUuids ($ uuid )
65
+ public function testValidStrictUuids ($ uuid )
66
66
{
67
67
$ this ->context ->expects ($ this ->never ())
68
68
->method ('addViolation ' );
69
69
70
70
$ this ->validator ->validate ($ uuid , new Uuid ());
71
71
}
72
72
73
- public function getValidUuids ()
73
+ public function getValidStrictUuids ()
74
74
{
75
75
return array (
76
76
array ('216fff40-98d9-11e3-a5e2-0800200c9a66 ' ), // Version 1 UUID in lowercase
@@ -81,9 +81,9 @@ public function getValidUuids()
81
81
}
82
82
83
83
/**
84
- * @dataProvider getInvalidUuids
84
+ * @dataProvider getInvalidStrictUuids
85
85
*/
86
- public function testInvalidUuids ($ uuid )
86
+ public function testInvalidStrictUuids ($ uuid )
87
87
{
88
88
$ constraint = new Uuid (array (
89
89
'message ' => 'testMessage '
@@ -98,19 +98,22 @@ public function testInvalidUuids($uuid)
98
98
$ this ->validator ->validate ($ uuid , $ constraint );
99
99
}
100
100
101
- public function getInvalidUuids ()
101
+ public function getInvalidStrictUuids ()
102
102
{
103
103
return array (
104
- array ('216fff40-98d9-11e3-a5e2-0800200c9a6 ' ), // Too few characters
105
- array ('216fff40-98d9-11e3-a5e2-0800200c9a666 ' ), // Too many characters
106
- array ('V16fff40-98d9-11e3-a5e2-0800200c9a66 ' ), // Invalid character 'V'
107
- array ('216fff40-98d9-11e3-a5e20800-200c9a66 ' ), // Invalid dash position
108
- array ('216fff4098d911e3a5e20800200c9a66 ' ), // Missing dashes
104
+ array ('216fff40-98d9-11e3-a5e2-0800200c9a6 ' ), // Too few characters
105
+ array ('216fff40-98d9-11e3-a5e2-0800200c9a666 ' ), // Too many characters
106
+ array ('V16fff40-98d9-11e3-a5e2-0800200c9a66 ' ), // Invalid character 'V'
107
+
108
+ // Non-standard UUIDs allowed by some other systems
109
+ array ('216fff40-98d911e3-a5e20800-200c9a66 ' ), // Non-standard dash positions
110
+ array ('216fff4098d911e3a5e20800200c9a66 ' ), // No dashes at all
111
+ array ('{216fff40-98d9-11e3-a5e2-0800200c9a66} ' ), // Wrapped with curly braces
109
112
);
110
113
}
111
114
112
115
/**
113
- * @dataProvider getValidUuids
116
+ * @dataProvider getValidStrictUuids
114
117
*/
115
118
public function testVersionConstraintIsValid ($ uuid )
116
119
{
@@ -125,7 +128,7 @@ public function testVersionConstraintIsValid($uuid)
125
128
}
126
129
127
130
/**
128
- * @dataProvider getValidUuids
131
+ * @dataProvider getValidStrictUuids
129
132
*/
130
133
public function testVersionConstraintIsInvalid ($ uuid )
131
134
{
@@ -138,4 +141,58 @@ public function testVersionConstraintIsInvalid($uuid)
138
141
139
142
$ this ->validator ->validate ($ uuid , $ constraint );
140
143
}
144
+
145
+ /**
146
+ * @dataProvider getValidNonStrictUuids
147
+ */
148
+ public function testValidNonStrictUuids ($ uuid )
149
+ {
150
+ $ constraint = new Uuid (array (
151
+ 'strict ' => false
152
+ ));
153
+
154
+ $ this ->context ->expects ($ this ->never ())
155
+ ->method ('addViolation ' );
156
+
157
+ $ this ->validator ->validate ($ uuid , $ constraint );
158
+ }
159
+
160
+ public function getValidNonStrictUuids ()
161
+ {
162
+ return array (
163
+ array ('216fff40-98d9-11e3-a5e2-0800200c9a66 ' ), // Version 1 UUID in lowercase
164
+ array ('216FFF40-98D9-11E3-A5E2-0800200C9A66 ' ), // Version 1 UUID in UPPERCASE
165
+ array ('456daefb-5aa6-41b5-8dbc-068b05a8b201 ' ), // Version 4 UUID in lowercase
166
+ array ('456DAEFb-5AA6-41B5-8DBC-068B05A8B201 ' ), // Version 4 UUID in UPPERCASE
167
+
168
+ // Non-standard UUIDs allowed by some other systems
169
+ array ('216fff40-98d911e3-a5e20800-200c9a66 ' ), // Non-standard dash positions
170
+ array ('216fff4098d911e3a5e20800200c9a66 ' ), // No dashes at all
171
+ array ('{216fff40-98d9-11e3-a5e2-0800200c9a66} ' ), // Wrapped with curly braces
172
+ );
173
+ }
174
+
175
+ /**
176
+ * @dataProvider getInvalidNonStrictUuids
177
+ */
178
+ public function testInvalidNonStrictUuids ($ uuid )
179
+ {
180
+ $ constraint = new Uuid (array (
181
+ 'strict ' => false
182
+ ));
183
+
184
+ $ this ->context ->expects ($ this ->once ())
185
+ ->method ('addViolation ' );
186
+
187
+ $ this ->validator ->validate ($ uuid , $ constraint );
188
+ }
189
+
190
+ public function getInvalidNonStrictUuids ()
191
+ {
192
+ return array (
193
+ array ('216fff40-98d9-11e3-a5e2-0800200c9a6 ' ), // Too few characters
194
+ array ('216fff40-98d9-11e3-a5e2-0800200c9a666 ' ), // Too many characters
195
+ array ('V16fff40-98d9-11e3-a5e2-0800200c9a66 ' ), // Invalid character 'V'
196
+ );
197
+ }
141
198
}
0 commit comments