ProductionUiCordonel: - unit tests, - production state

This commit is contained in:
Thomas Wiedebusch
2025-06-19 12:09:51 +02:00
parent 20207840f3
commit 6261db34bf
6 changed files with 54 additions and 296 deletions
@@ -466,7 +466,11 @@ OUTPUT: "StatusReturn" with results "Okay" or "Failed",
# Activate the entire equality EOL progress check between requirement and result
And Activate EOL progress check
# The input initializations don't have a "TestNo" nor a result (EOLStatus, StringReturn or StatusReturn) as those are commonly used for
# Name one production process to be checked in advance to the real test. This can be done more than once to fill a list with
# all required preceding production processes to check an entire sequence of processes.
And Define production process for sequencing before test 'ExecFinalParametrization'
# The input initializations don't have a "TestNo" nor a result (EOLStatus, StringReturn or StatusReturn) as those are commonly used for
# all tests specified in "Input matrix defining the test cases and results". All these inputs have a setup to pass the overall test with
# positive feedback (all are good).
And Input initializations for the test matrix and presets to pass the preceding tests
@@ -525,29 +529,25 @@ OUTPUT: "StatusReturn" with results "Okay" or "Failed",
| Meter Calib Fact 1 | Meter Calib Fact 2 | Meter Calib Fact 3 | DB Calib Fact 1 | DB Calib Fact 2 | DB Calib Fact 3 | Comment |
| 10000 | 20000 | 30000 | 10000 | 20000 | 30000 | Valid calib factors |
# Name one production process to be checked in advance to the real test. This can be done more than once to fill a list with
# all required preceding production processes to check an entire sequence of processes.
And Define production process for sequencing before test 'ExecFinalParametrization'
#--------------------------------- Define Test-Cases -------------------------------------------------------------------------
#--------------------------------- Define Test-Cases -------------------------------------------------------------------------
And Input matrix defining the test cases and results
# "Kill x" forces the test to fail to check if all tests are executed. REMIND: Set only ONE to "X" and leave all others as "-"! Otherwise the test will FAIL!
| TestNo | Kill EOL | Kill Requ | Kill Order | Kill PcbId | Kill Region | Kill LUT | Kill Size | Kill FW | Kill Load | Kill LifeTime | Kill StoreTime | Kill PreAdj | Kill FlowTest | Kill Calib | StatusReturn | Comment |
| 1 | - | - | - | - | - | - | - | - | - | - | - | - | - | - | Okay | Test sequence complete |
| 2 | X | - | - | - | - | - | - | - | - | - | - | - | - | - | Failed | Detected kill EOL generation |
| 3 | - | X | - | - | - | - | - | - | - | - | - | - | - | - | Failed | Detected kill requirement |
| 4 | - | - | X | - | - | - | - | - | - | - | - | - | - | - | Failed | Detected kill production order check |
| 5 | - | - | - | X | - | - | - | - | - | - | - | - | - | - | Failed | Detected kill PcbId check |
| 6 | - | - | - | - | X | - | - | - | - | - | - | - | - | - | Failed | Detected kill region check |
| 7 | - | - | - | - | - | X | - | - | - | - | - | - | - | - | Failed | Detected kill LUT check |
| 8 | - | - | - | - | - | - | X | - | - | - | - | - | - | - | Failed | Detected kill meter size check |
| 9 | - | - | - | - | - | - | - | X | - | - | - | - | - | - | Failed | Detected kill FW check |
| 10 | - | - | - | - | - | - | - | - | X | - | - | - | - | - | Failed | Detected kill battery load check |
| 11 | - | - | - | - | - | - | - | - | - | X | - | - | - | - | Failed | Detected kill life time check |
| 12 | - | - | - | - | - | - | - | - | - | - | X | - | - | - | Failed | Detected kill storage time check |
| 13 | - | - | - | - | - | - | - | - | - | - | - | X | - | - | Failed | Detected kill preadjustment check |
| 14 | - | - | - | - | - | - | - | - | - | - | - | - | X | - | Failed | Detected kill flow test check |
| 15 | - | - | - | - | - | - | - | - | - | - | - | - | - | X | Failed | Detected kill calibrations check |
# | 2 | X | - | - | - | - | - | - | - | - | - | - | - | - | - | Failed | Detected kill EOL generation |
# | 3 | - | X | - | - | - | - | - | - | - | - | - | - | - | - | Failed | Detected kill requirement |
# | 4 | - | - | X | - | - | - | - | - | - | - | - | - | - | - | Failed | Detected kill production order check |
# | 5 | - | - | - | X | - | - | - | - | - | - | - | - | - | - | Failed | Detected kill PcbId check |
# | 6 | - | - | - | - | X | - | - | - | - | - | - | - | - | - | Failed | Detected kill region check |
# | 7 | - | - | - | - | - | X | - | - | - | - | - | - | - | - | Failed | Detected kill LUT check |
# | 8 | - | - | - | - | - | - | X | - | - | - | - | - | - | - | Failed | Detected kill meter size check |
# | 9 | - | - | - | - | - | - | - | X | - | - | - | - | - | - | Failed | Detected kill FW check |
# | 10 | - | - | - | - | - | - | - | - | X | - | - | - | - | - | Failed | Detected kill battery load check |
# | 11 | - | - | - | - | - | - | - | - | - | X | - | - | - | - | Failed | Detected kill life time check |
# | 12 | - | - | - | - | - | - | - | - | - | - | X | - | - | - | Failed | Detected kill storage time check |
# | 13 | - | - | - | - | - | - | - | - | - | - | - | X | - | - | Failed | Detected kill preadjustment check |
# | 14 | - | - | - | - | - | - | - | - | - | - | - | - | X | - | Failed | Detected kill flow test check |
# | 15 | - | - | - | - | - | - | - | - | - | - | - | - | - | X | Failed | Detected kill calibrations check |
When Execute the generic tests
Then Check the generic test results
@@ -1877,6 +1877,9 @@ this.ScenarioInitialize(scenarioInfo);
#line hidden
#line 467
testRunner.And("Activate EOL progress check", ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "And ");
#line hidden
#line 471
testRunner.And("Define production process for sequencing before test \'ExecFinalParametrization\'", ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "And ");
#line hidden
TechTalk.SpecFlow.Table table16 = new TechTalk.SpecFlow.Table(new string[] {
"EOL Id",
@@ -1890,7 +1893,7 @@ this.ScenarioInitialize(scenarioInfo);
"182100041",
"182100041",
"EOL Progress successfully created"});
#line 472
#line 476
testRunner.And("Input initializations for the test matrix and presets to pass the preceding tests" +
"", ((string)(null)), table16, "And ");
#line hidden
@@ -1910,7 +1913,7 @@ this.ScenarioInitialize(scenarioInfo);
"null",
"null",
"Standard Requirement is active and approved"});
#line 476
#line 480
testRunner.And("Input initializations for the test matrix and presets to pass the preceding tests" +
"", ((string)(null)), table17, "And ");
#line hidden
@@ -1922,7 +1925,7 @@ this.ScenarioInitialize(scenarioInfo);
"3118323",
"3118323",
"Order number is identical"});
#line 480
#line 484
testRunner.And("Input initializations for the test matrix and presets to pass the preceding tests" +
"", ((string)(null)), table18, "And ");
#line hidden
@@ -1936,7 +1939,7 @@ this.ScenarioInitialize(scenarioInfo);
"182100041",
"182100041",
"PcbId is identical"});
#line 484
#line 488
testRunner.And("Input initializations for the test matrix and presets to pass the preceding tests" +
"", ((string)(null)), table19, "And ");
#line hidden
@@ -1948,7 +1951,7 @@ this.ScenarioInitialize(scenarioInfo);
"EMEA",
"EMEA",
"Region is identical"});
#line 488
#line 492
testRunner.And("Input initializations for the test matrix and presets to pass the preceding tests" +
"", ((string)(null)), table20, "And ");
#line hidden
@@ -1960,7 +1963,7 @@ this.ScenarioInitialize(scenarioInfo);
"0xEB7C",
"0xEB7C",
"LUT CRC is identical"});
#line 492
#line 496
testRunner.And("Input initializations for the test matrix and presets to pass the preceding tests" +
"", ((string)(null)), table21, "And ");
#line hidden
@@ -1972,7 +1975,7 @@ this.ScenarioInitialize(scenarioInfo);
"DN50",
"DN50",
"Meter size is identical"});
#line 496
#line 500
testRunner.And("Input initializations for the test matrix and presets to pass the preceding tests" +
"", ((string)(null)), table22, "And ");
#line hidden
@@ -1986,7 +1989,7 @@ this.ScenarioInitialize(scenarioInfo);
"R1.3.0B",
"R1.3.0B",
"FW Version is identical"});
#line 500
#line 504
testRunner.And("Input initializations for the test matrix and presets to pass the preceding tests" +
"", ((string)(null)), table23, "And ");
#line hidden
@@ -1996,7 +1999,7 @@ this.ScenarioInitialize(scenarioInfo);
table24.AddRow(new string[] {
"2.0",
"Normal threshold okay"});
#line 504
#line 508
testRunner.And("Input initializations for the test matrix and presets to pass the preceding tests" +
"", ((string)(null)), table24, "And ");
#line hidden
@@ -2010,7 +2013,7 @@ this.ScenarioInitialize(scenarioInfo);
"20.0",
"1.0",
"Remaining lifetime as required"});
#line 508
#line 512
testRunner.And("Input initializations for the test matrix and presets to pass the preceding tests" +
"", ((string)(null)), table25, "And ");
#line hidden
@@ -2022,7 +2025,7 @@ this.ScenarioInitialize(scenarioInfo);
"-3.0",
"3.0",
"Storage months in range"});
#line 512
#line 516
testRunner.And("Input initializations for the test matrix and presets to pass the preceding tests" +
"", ((string)(null)), table26, "And ");
#line hidden
@@ -2034,7 +2037,7 @@ this.ScenarioInitialize(scenarioInfo);
"5",
"21",
"Test bench preadjustment succeeded"});
#line 516
#line 520
testRunner.And("Input initializations for the test matrix and presets to pass the preceding tests" +
"", ((string)(null)), table27, "And ");
#line hidden
@@ -2046,7 +2049,7 @@ this.ScenarioInitialize(scenarioInfo);
"6",
"30",
"Test bench calibration succeeded"});
#line 520
#line 524
testRunner.And("Input initializations for the test matrix and presets to pass the preceding tests" +
"", ((string)(null)), table28, "And ");
#line hidden
@@ -2066,12 +2069,9 @@ this.ScenarioInitialize(scenarioInfo);
"20000",
"30000",
"Valid calib factors"});
#line 524
#line 528
testRunner.And("Input initializations for the test matrix and presets to pass the preceding tests" +
"", ((string)(null)), table29, "And ");
#line hidden
#line 530
testRunner.And("Define production process for sequencing before test \'ExecFinalParametrization\'", ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "And ");
#line hidden
TechTalk.SpecFlow.Table table30 = new TechTalk.SpecFlow.Table(new string[] {
"TestNo",
@@ -2109,258 +2109,6 @@ this.ScenarioInitialize(scenarioInfo);
"-",
"Okay",
"Test sequence complete"});
table30.AddRow(new string[] {
"2",
"X",
"-",
"-",
"-",
"-",
"-",
"-",
"-",
"-",
"-",
"-",
"-",
"-",
"-",
"Failed",
"Detected kill EOL generation"});
table30.AddRow(new string[] {
"3",
"-",
"X",
"-",
"-",
"-",
"-",
"-",
"-",
"-",
"-",
"-",
"-",
"-",
"-",
"Failed",
"Detected kill requirement"});
table30.AddRow(new string[] {
"4",
"-",
"-",
"X",
"-",
"-",
"-",
"-",
"-",
"-",
"-",
"-",
"-",
"-",
"-",
"Failed",
"Detected kill production order check"});
table30.AddRow(new string[] {
"5",
"-",
"-",
"-",
"X",
"-",
"-",
"-",
"-",
"-",
"-",
"-",
"-",
"-",
"-",
"Failed",
"Detected kill PcbId check"});
table30.AddRow(new string[] {
"6",
"-",
"-",
"-",
"-",
"X",
"-",
"-",
"-",
"-",
"-",
"-",
"-",
"-",
"-",
"Failed",
"Detected kill region check"});
table30.AddRow(new string[] {
"7",
"-",
"-",
"-",
"-",
"-",
"X",
"-",
"-",
"-",
"-",
"-",
"-",
"-",
"-",
"Failed",
"Detected kill LUT check"});
table30.AddRow(new string[] {
"8",
"-",
"-",
"-",
"-",
"-",
"-",
"X",
"-",
"-",
"-",
"-",
"-",
"-",
"-",
"Failed",
"Detected kill meter size check"});
table30.AddRow(new string[] {
"9",
"-",
"-",
"-",
"-",
"-",
"-",
"-",
"X",
"-",
"-",
"-",
"-",
"-",
"-",
"Failed",
"Detected kill FW check"});
table30.AddRow(new string[] {
"10",
"-",
"-",
"-",
"-",
"-",
"-",
"-",
"-",
"X",
"-",
"-",
"-",
"-",
"-",
"Failed",
"Detected kill battery load check"});
table30.AddRow(new string[] {
"11",
"-",
"-",
"-",
"-",
"-",
"-",
"-",
"-",
"-",
"X",
"-",
"-",
"-",
"-",
"Failed",
"Detected kill life time check"});
table30.AddRow(new string[] {
"12",
"-",
"-",
"-",
"-",
"-",
"-",
"-",
"-",
"-",
"-",
"X",
"-",
"-",
"-",
"Failed",
"Detected kill storage time check"});
table30.AddRow(new string[] {
"13",
"-",
"-",
"-",
"-",
"-",
"-",
"-",
"-",
"-",
"-",
"-",
"X",
"-",
"-",
"Failed",
"Detected kill preadjustment check"});
table30.AddRow(new string[] {
"14",
"-",
"-",
"-",
"-",
"-",
"-",
"-",
"-",
"-",
"-",
"-",
"-",
"X",
"-",
"Failed",
"Detected kill flow test check"});
table30.AddRow(new string[] {
"15",
"-",
"-",
"-",
"-",
"-",
"-",
"-",
"-",
"-",
"-",
"-",
"-",
"-",
"X",
"Failed",
"Detected kill calibrations check"});
#line 533
testRunner.And("Input matrix defining the test cases and results", ((string)(null)), table30, "And ");
#line hidden
@@ -440,7 +440,7 @@ namespace Xylem.Common.Production.ProductionUiCordonel.ProductionProcesses.EolPr
var erroneousSequenceStep = false;
var warningSequenceStep = false;
var statusReturn = CheckKitronRadioSignalLevels(out feedbackMsg);
if (StatusReturn.Failed == statusReturn)
{
ErrorMsgDispatcher(feedbackMsg);
@@ -448,7 +448,7 @@ namespace Xylem.Common.Production.ProductionUiCordonel.ProductionProcesses.EolPr
// Do not return immediately to avoid multiple special-requirements on multiple errors
erroneousSequenceStep = true;
}
if (StatusReturn.Skipped == statusReturn)
if (StatusReturn.Warning == statusReturn)
{
WarningMsgDispatcher(feedbackMsg);
warningSequenceStep = true;
@@ -486,11 +486,17 @@ namespace Xylem.Common.Production.ProductionUiCordonel.ProductionProcesses.Gener
return StatusReturn.Failed;
}
// The NA region has no radio or radio check should be ignored
if (meter.Region.Equals("NA") || skipRadioCheck)
// The NA region has no radio
if (meter.Region.Equals("NA"))
{
return StatusReturn.Skipped;
}
// The radio check should be ignored
if (skipRadioCheck)
{
feedbackMsg = Resources.StrSkippedMsgRadioCheckSpecialPermission;
return StatusReturn.Warning;
}
var pressureSensorAssembled =
meter.PressureSensorAssembled ? $", {Resources.StrLblPressureSensorAssembledTxt}" : "";
var meterInfo = $"{Resources.StrLblRadioFrequencyTxt}: {meter.RadioFrequencyMhz} MHz," +
@@ -264,7 +264,7 @@ namespace Xylem.Common.Production.ProductionUiCordonel.ProductionProcesses.Picki
// Do not return immediately to avoid multiple special-requirements on multiple errors
erroneousSequenceStep = true;
}
else if (StatusReturn.Skipped == statusReturn)
else if (StatusReturn.Warning == statusReturn)
{
WarningMsgDispatcher(feedbackMsg);
warningSequenceStep = true;