66using Umbraco . Cms . Core . Models ;
77using Umbraco . Cms . Core . Models . Editors ;
88using Umbraco . Cms . Core . PropertyEditors ;
9- using Umbraco . Cms . Core . Services ;
109using Umbraco . Cms . Core . Strings ;
1110using Umbraco . Cms . Infrastructure . Serialization ;
1211
@@ -15,19 +14,11 @@ namespace Umbraco.Cms.Tests.UnitTests.Umbraco.Core.PropertyEditors;
1514[ TestFixture ]
1615public class SliderValueEditorTests
1716{
18- // annoyingly we can't use decimals etc. in attributes, so we can't turn these into test cases :(
19- private List < object ? > _invalidValues = new ( ) ;
20-
21- [ SetUp ]
22- public void SetUp ( ) => _invalidValues = new List < object ? >
17+ public static object [ ] InvalidCaseData = new object [ ]
2318 {
2419 123m ,
2520 123 ,
2621 - 123 ,
27- 123.45d ,
28- "123.45" ,
29- "1.234,56" ,
30- "1.2.3.4" ,
3122 "something" ,
3223 true ,
3324 new object ( ) ,
@@ -36,21 +27,19 @@ public class SliderValueEditorTests
3627 new GuidUdi ( Constants . UdiEntityType . Document , Guid . NewGuid ( ) )
3728 } ;
3829
39- [ Test ]
40- public void Can_Handle_Invalid_Values_From_Editor ( )
30+ [ TestCaseSource ( nameof ( InvalidCaseData ) ) ]
31+ public void Can_Handle_Invalid_Values_From_Editor ( object value )
4132 {
42- foreach ( var value in _invalidValues )
43- {
44- var fromEditor = FromEditor ( value ) ;
45- Assert . IsNull ( fromEditor , message : $ "Failed for: { value } ") ;
46- }
33+ var fromEditor = FromEditor ( value ) ;
34+ Assert . IsNull ( fromEditor ) ;
4735 }
4836
4937 [ TestCase ( "1" , 1 ) ]
5038 [ TestCase ( "0" , 0 ) ]
5139 [ TestCase ( "-1" , - 1 ) ]
5240 [ TestCase ( "123456789" , 123456789 ) ]
53- public void Can_Parse_Single_Value_To_Editor ( string value , int expected )
41+ [ TestCase ( "123.45" , 123.45 ) ]
42+ public void Can_Parse_Single_Value_To_Editor ( string value , decimal expected )
5443 {
5544 var toEditor = ToEditor ( value ) as SliderPropertyEditor . SliderPropertyValueEditor . SliderRange ;
5645 Assert . IsNotNull ( toEditor ) ;
@@ -62,7 +51,10 @@ public void Can_Parse_Single_Value_To_Editor(string value, int expected)
6251 [ TestCase ( "0,0" , 0 , 0 ) ]
6352 [ TestCase ( "-1,-1" , - 1 , - 1 ) ]
6453 [ TestCase ( "10,123456789" , 10 , 123456789 ) ]
65- public void Can_Parse_Range_Value_To_Editor ( string value , int expectedFrom , int expectedTo )
54+ [ TestCase ( "1.234,56" , 1.234 , 56 ) ]
55+ [ TestCase ( "4,6.234" , 4 , 6.234 ) ]
56+ [ TestCase ( "10.45,15.3" , 10.45 , 15.3 ) ]
57+ public void Can_Parse_Range_Value_To_Editor ( string value , decimal expectedFrom , decimal expectedTo )
6658 {
6759 var toEditor = ToEditor ( value ) as SliderPropertyEditor . SliderPropertyValueEditor . SliderRange ;
6860 Assert . IsNotNull ( toEditor ) ;
@@ -75,21 +67,22 @@ public void Can_Parse_Range_Value_To_Editor(string value, int expectedFrom, int
7567 [ TestCase ( 0 , 0 , "0" ) ]
7668 [ TestCase ( - 10 , - 10 , "-10" ) ]
7769 [ TestCase ( 10 , 123456789 , "10,123456789" ) ]
78- public void Can_Parse_Valid_Value_From_Editor ( int from , int to , string expectedResult )
70+ [ TestCase ( 1.5 , 1.5 , "1.5" ) ]
71+ [ TestCase ( 0 , 0.5 , "0,0.5" ) ]
72+ [ TestCase ( 5 , 5.4 , "5,5.4" ) ]
73+ [ TestCase ( 0.5 , 0.6 , "0.5,0.6" ) ]
74+ public void Can_Parse_Valid_Value_From_Editor ( decimal from , decimal to , string expectedResult )
7975 {
8076 var value = JsonNode . Parse ( $ "{{\" from\" : { from } , \" to\" : { to } }}") ;
8177 var fromEditor = FromEditor ( value ) as string ;
8278 Assert . AreEqual ( expectedResult , fromEditor ) ;
8379 }
8480
85- [ Test ]
86- public void Can_Handle_Invalid_Values_To_Editor ( )
81+ [ TestCaseSource ( nameof ( InvalidCaseData ) ) ]
82+ public void Can_Handle_Invalid_Values_To_Editor ( object value )
8783 {
88- foreach ( var value in _invalidValues )
89- {
90- var toEditor = ToEditor ( value ) ;
91- Assert . IsNull ( toEditor , message : $ "Failed for: { value } ") ;
92- }
84+ var toEditor = ToEditor ( value ) ;
85+ Assert . IsNull ( toEditor , message : $ "Failed for: { value } ") ;
9386 }
9487
9588 [ Test ]
0 commit comments