@@ -82,6 +82,20 @@ public void Can_Parse_Multi_Value_From_Editor()
82
82
Assert . AreEqual ( "The First Value\n The Second Value\n The Third Value" , fromEditor ) ;
83
83
}
84
84
85
+ [ Test ]
86
+ public void Can_Parse_More_Items_Than_Allowed_From_Editor ( )
87
+ {
88
+ var valueEditor = CreateValueEditor ( ) ;
89
+ var fromEditor = valueEditor . FromEditor ( new ContentPropertyData ( new [ ] { "One" , "Two" , "Three" , "Four" , "Five" } , new MultipleTextStringConfiguration { Max = 4 } ) , null ) as string ;
90
+ Assert . AreEqual ( "One\n Two\n Three\n Four\n Five" , fromEditor ) ;
91
+
92
+ var validationResults = valueEditor . Validate ( fromEditor , false , null , PropertyValidationContext . Empty ( ) ) ;
93
+ Assert . AreEqual ( 1 , validationResults . Count ( ) ) ;
94
+
95
+ var validationResult = validationResults . First ( ) ;
96
+ Assert . AreEqual ( $ "validation_outOfRangeMultipleItemsMaximum", validationResult . ErrorMessage ) ;
97
+ }
98
+
85
99
[ Test ]
86
100
public void Can_Parse_Single_Value_To_Editor ( )
87
101
{
@@ -150,6 +164,27 @@ public void Validates_Number_Of_Items_Is_Greater_Than_Or_Equal_To_Configured_Min
150
164
}
151
165
}
152
166
167
+ [ TestCase ( "" , false ) ]
168
+ [ TestCase ( "one" , false ) ]
169
+ [ TestCase ( "one\n two" , true ) ]
170
+ [ TestCase ( "one\n two\n three" , true ) ]
171
+ public void Validates_Number_Of_Items_Is_Greater_Than_Or_Equal_To_Configured_Min_Raw_Property_Value ( string value , bool expectedSuccess )
172
+ {
173
+ var editor = CreateValueEditor ( ) ;
174
+ var result = editor . Validate ( value , false , null , PropertyValidationContext . Empty ( ) ) ;
175
+ if ( expectedSuccess )
176
+ {
177
+ Assert . IsEmpty ( result ) ;
178
+ }
179
+ else
180
+ {
181
+ Assert . AreEqual ( 1 , result . Count ( ) ) ;
182
+
183
+ var validationResult = result . First ( ) ;
184
+ Assert . AreEqual ( $ "validation_outOfRangeSingleItemMinimum", validationResult . ErrorMessage ) ;
185
+ }
186
+ }
187
+
153
188
[ TestCase ( 3 , true ) ]
154
189
[ TestCase ( 4 , true ) ]
155
190
[ TestCase ( 5 , false ) ]
@@ -171,6 +206,36 @@ public void Validates_Number_Of_Items_Is_Less_Than_Or_Equal_To_Configured_Max(in
171
206
}
172
207
}
173
208
209
+ [ TestCase ( "one\n two\n three" , true ) ]
210
+ [ TestCase ( "one\n two\n three\n four" , true ) ]
211
+ [ TestCase ( "one\n two\n three\n four\n five" , false ) ]
212
+ public void Validates_Number_Of_Items_Is_Less_Than_Or_Equal_To_Configured_Max_Raw_Property_Value ( string value , bool expectedSuccess )
213
+ {
214
+ var editor = CreateValueEditor ( ) ;
215
+ var result = editor . Validate ( value , false , null , PropertyValidationContext . Empty ( ) ) ;
216
+ if ( expectedSuccess )
217
+ {
218
+ Assert . IsEmpty ( result ) ;
219
+ }
220
+ else
221
+ {
222
+ Assert . AreEqual ( 1 , result . Count ( ) ) ;
223
+
224
+ var validationResult = result . First ( ) ;
225
+ Assert . AreEqual ( "validation_outOfRangeMultipleItemsMaximum" , validationResult . ErrorMessage ) ;
226
+ }
227
+ }
228
+
229
+ [ TestCase ( "one\n two\n three" ) ]
230
+ [ TestCase ( "one\r two\r three" ) ]
231
+ [ TestCase ( "one\r \n two\r \n three" ) ]
232
+ public void Can_Parse_Supported_Property_Value_Delimiters ( string value )
233
+ {
234
+ var editor = CreateValueEditor ( ) ;
235
+ var result = editor . Validate ( value , false , null , PropertyValidationContext . Empty ( ) ) ;
236
+ Assert . IsEmpty ( result ) ;
237
+ }
238
+
174
239
[ Test ]
175
240
public void Max_Item_Validation_Respects_0_As_Unlimited ( )
176
241
{
0 commit comments