Skip to content

Commit 13f73b0

Browse files
author
Jani Giannoudis
committed
payrun tester: added namespace support
updated version to 0.9.0-beta.13
1 parent 7b14fe0 commit 13f73b0

9 files changed

Lines changed: 367 additions & 851 deletions

Client.Test/Case/CaseBuildTestRunner.cs

Lines changed: 84 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)