@@ -83,14 +83,7 @@ protected virtual List<CaseScriptTestResult> CompareCase(string testName, CaseSe
8383 }
8484 else
8585 {
86- foreach ( var caseSlot in expected . Slots )
87- {
88- // case slot
89- if ( ! actual . Slots . Any ( x => string . Equals ( x . Name , caseSlot . Name ) ) )
90- {
91- results . Add ( NewFailedResult ( CaseTestType . CaseBuild , testName , $ "Missing case slot { caseSlot . Name } ") ) ;
92- }
93- }
86+ CompareCaseSlots ( expected , actual , testName , results ) ;
9487 }
9588 }
9689
@@ -104,58 +97,7 @@ protected virtual List<CaseScriptTestResult> CompareCase(string testName, CaseSe
10497 }
10598 else
10699 {
107- foreach ( var caseField in expected . Fields )
108- {
109- // case field
110- var actualCaseField = actual . Fields . FirstOrDefault ( x => string . Equals ( x . Name , caseField . Name ) ) ;
111- if ( actualCaseField == null )
112- {
113- results . Add ( NewFailedResult ( CaseTestType . CaseBuild , testName , $ "Missing case field { caseField . Name } ") ) ;
114- continue ;
115- }
116-
117- // case field start date
118- if ( caseField . Start != null && ! Equals ( caseField . Start , actualCaseField . Start ) )
119- {
120- results . Add ( NewFailedResult ( CaseTestType . CaseBuild , testName ,
121- $ "Invalid case value start { caseField . Name } - Expected: { caseField . Start } , Actual: { actualCaseField . Start } ") ) ;
122- }
123-
124- // case field end date
125- if ( caseField . End != null && ! Equals ( caseField . End , actualCaseField . End ) )
126- {
127- results . Add ( NewFailedResult ( CaseTestType . CaseBuild , testName ,
128- $ "Invalid case value end { caseField . Name } - Expected: { caseField . End } , Actual: { actualCaseField . End } ") ) ;
129- }
130-
131- // case field attribute
132- var invalidAttribute = caseField . Attributes ? . FirstInvalidAttribute ( actualCaseField . Attributes ) ;
133- if ( invalidAttribute != null )
134- {
135- results . Add ( NewFailedResult ( CaseTestType . CaseBuild , testName ,
136- $ "Invalid case field attribute { caseField . Name } .{ invalidAttribute . Item1 } - Expected: { invalidAttribute . Item2 ?? "null" } , Actual: { invalidAttribute . Item3 ?? "null" } ") ) ;
137- }
138-
139- // case value attribute
140- invalidAttribute = caseField . ValueAttributes ? . FirstInvalidAttribute ( actualCaseField . ValueAttributes ) ;
141- if ( invalidAttribute != null )
142- {
143- results . Add ( NewFailedResult ( CaseTestType . CaseBuild , testName ,
144- $ "Invalid case value attribute { caseField . Name } .{ invalidAttribute . Item1 } - Expected: { invalidAttribute . Item2 ?? "null" } , Actual: { invalidAttribute . Item3 ?? "null" } ") ) ;
145- }
146-
147- // adapt value type
148- caseField . ValueType = actualCaseField . ValueType ;
149-
150- // case value
151- var expectedValue = caseField . GetValue ( Culture ) ;
152- var actualValue = actualCaseField . GetValue ( Culture ) ;
153- if ( ! Equals ( expectedValue , actualValue ) )
154- {
155- results . Add ( NewFailedResult ( CaseTestType . CaseBuild , testName ,
156- $ "Invalid case value { caseField . Name } - Expected: { expectedValue ?? "null" } , Actual: { actualValue ?? "null" } ") ) ;
157- }
158- }
100+ CompareCaseFields ( expected , actual , testName , results ) ;
159101 }
160102 }
161103
@@ -185,4 +127,86 @@ protected virtual List<CaseScriptTestResult> CompareCase(string testName, CaseSe
185127
186128 return results ;
187129 }
130+
131+ /// <summary>
132+ /// Compare case fields
133+ /// </summary>
134+ /// <param name="expected">Expected data set</param>
135+ /// <param name="actual">Actual data set</param>
136+ /// <param name="testName">Test name</param>
137+ /// <param name="results">Compare results</param>
138+ private void CompareCaseFields ( CaseSet expected , CaseSet actual , string testName , List < CaseScriptTestResult > results )
139+ {
140+ foreach ( var caseField in expected . Fields )
141+ {
142+ // case field
143+ var actualCaseField = actual . Fields . FirstOrDefault ( x => string . Equals ( x . Name , caseField . Name ) ) ;
144+ if ( actualCaseField == null )
145+ {
146+ results . Add ( NewFailedResult ( CaseTestType . CaseBuild , testName , $ "Missing case field { caseField . Name } ") ) ;
147+ continue ;
148+ }
149+
150+ // case field start date
151+ if ( caseField . Start != null && ! Equals ( caseField . Start , actualCaseField . Start ) )
152+ {
153+ results . Add ( NewFailedResult ( CaseTestType . CaseBuild , testName ,
154+ $ "Invalid case value start { caseField . Name } - Expected: { caseField . Start } , Actual: { actualCaseField . Start } ") ) ;
155+ }
156+
157+ // case field end date
158+ if ( caseField . End != null && ! Equals ( caseField . End , actualCaseField . End ) )
159+ {
160+ results . Add ( NewFailedResult ( CaseTestType . CaseBuild , testName ,
161+ $ "Invalid case value end { caseField . Name } - Expected: { caseField . End } , Actual: { actualCaseField . End } ") ) ;
162+ }
163+
164+ // case field attribute
165+ var invalidAttribute = caseField . Attributes ? . FirstInvalidAttribute ( actualCaseField . Attributes ) ;
166+ if ( invalidAttribute != null )
167+ {
168+ results . Add ( NewFailedResult ( CaseTestType . CaseBuild , testName ,
169+ $ "Invalid case field attribute { caseField . Name } .{ invalidAttribute . Item1 } - Expected: { invalidAttribute . Item2 ?? "null" } , Actual: { invalidAttribute . Item3 ?? "null" } ") ) ;
170+ }
171+
172+ // case value attribute
173+ invalidAttribute = caseField . ValueAttributes ? . FirstInvalidAttribute ( actualCaseField . ValueAttributes ) ;
174+ if ( invalidAttribute != null )
175+ {
176+ results . Add ( NewFailedResult ( CaseTestType . CaseBuild , testName ,
177+ $ "Invalid case value attribute { caseField . Name } .{ invalidAttribute . Item1 } - Expected: { invalidAttribute . Item2 ?? "null" } , Actual: { invalidAttribute . Item3 ?? "null" } ") ) ;
178+ }
179+
180+ // adapt value type
181+ caseField . ValueType = actualCaseField . ValueType ;
182+
183+ // case value
184+ var expectedValue = caseField . GetValue ( Culture ) ;
185+ var actualValue = actualCaseField . GetValue ( Culture ) ;
186+ if ( ! Equals ( expectedValue , actualValue ) )
187+ {
188+ results . Add ( NewFailedResult ( CaseTestType . CaseBuild , testName ,
189+ $ "Invalid case value { caseField . Name } - Expected: { expectedValue ?? "null" } , Actual: { actualValue ?? "null" } ") ) ;
190+ }
191+ }
192+ }
193+
194+ /// <summary>
195+ /// Compare case slots
196+ /// </summary>
197+ /// <param name="expected">Expected data set</param>
198+ /// <param name="actual">Actual data set</param>
199+ /// <param name="testName">Test name</param>
200+ /// <param name="results">Compare results</param>
201+ private void CompareCaseSlots ( CaseSet expected , CaseSet actual , string testName , List < CaseScriptTestResult > results )
202+ {
203+ foreach ( var caseSlot in expected . Slots )
204+ {
205+ // case slot
206+ if ( ! actual . Slots . Any ( x => string . Equals ( x . Name , caseSlot . Name ) ) )
207+ {
208+ results . Add ( NewFailedResult ( CaseTestType . CaseBuild , testName , $ "Missing case slot { caseSlot . Name } ") ) ;
209+ }
210+ }
211+ }
188212}
0 commit comments