private static ObservableCollection <IServiceTestOutput> CreateServiceTestOutputFromResult(IEnumerable <IServiceTestOutput> stepStepOutputs, ServiceTestStep testStep) { var stepOutputs = new ObservableCollection <IServiceTestOutput>(); foreach (var serviceTestOutput in stepStepOutputs) { var testOutput = new ServiceTestOutput(); if (serviceTestOutput != null) { testOutput = GetTestOutput(testStep, serviceTestOutput); } if (testStep.MockSelected) { if (!string.IsNullOrEmpty(testOutput.Variable)) { testOutput.TestPassed = true; } else { testOutput.TestPending = false; testOutput.TestPassed = false; testOutput.TestFailing = false; testOutput.TestInvalid = true; } } stepOutputs.Add(testOutput); } return(stepOutputs); }
public void RunSelectedTest(IServiceTestModel selectedServiceTest, IContextualResourceModel resourceModel, IAsyncWorker asyncWorker) { selectedServiceTest = selectedServiceTest as ServiceTestModel; if (selectedServiceTest == null || resourceModel == null || asyncWorker == null || selectedServiceTest.IsNewTest) { return; } selectedServiceTest.IsTestLoading = true; selectedServiceTest.IsTestRunning = true; asyncWorker.Start(() => resourceModel.Environment.ResourceRepository.ExecuteTest(resourceModel, selectedServiceTest.TestName), res => { if (res?.Result != null) { if (res.Result.RunTestResult == RunResult.TestResourceDeleted) { selectedServiceTest.IsTestRunning = false; var popupController = CustomContainer.Get <IPopupController>(); popupController?.Show(Resources.Languages.Core.ServiceTestResourceDeletedMessage, Resources.Languages.Core.ServiceTestResourceDeletedHeader, MessageBoxButton.OK, MessageBoxImage.Error, null, false, true, false, false, false, false); var shellViewModel = CustomContainer.Get <IShellViewModel>(); shellViewModel.CloseResourceTestView(resourceModel.ID, resourceModel.ServerID, resourceModel.Environment.EnvironmentID); return; } UpdateTestStatus(selectedServiceTest, res); selectedServiceTest.Outputs = res.Outputs?.Select(output => { var serviceTestOutput = new ServiceTestOutput(output.Variable, output.Value, output.From, output.To) as IServiceTestOutput; serviceTestOutput.AssertOp = output.AssertOp; serviceTestOutput.Result = output.Result; return(serviceTestOutput); }).ToObservableCollection(); if (selectedServiceTest.TestSteps != null && res.TestSteps != null) { foreach (var resTestStep in res.TestSteps) { RunTestStep(selectedServiceTest, resTestStep); } } selectedServiceTest.DebugForTest = res.Result.DebugForTest; selectedServiceTest.LastRunDate = DateTime.Now; selectedServiceTest.LastRunDateVisibility = true; } else { selectedServiceTest.TestPassed = false; selectedServiceTest.TestFailing = false; selectedServiceTest.TestInvalid = true; } selectedServiceTest.IsTestRunning = false; selectedServiceTest.IsTestLoading = false; }); }
public void AddNewEmptyRow() { if (_stepOutputs?.Count >= 1) { var lastOrDefault = _stepOutputs.LastOrDefault( output => !string.IsNullOrWhiteSpace(output.Variable) && !string.IsNullOrWhiteSpace(output.Value)); if (lastOrDefault != null && DataListUtil.IsValueRecordset(lastOrDefault?.Variable)) { var serviceTestOutput = new ServiceTestOutput("", "", "", "") { AddNewAction = () => AddNewOutput(_stepOutputs.LastOrDefault().Variable) }; _stepOutputs.Add(serviceTestOutput); } } }
public void AddNewOutput(string varName) { if (DataListUtil.IsValueRecordset(varName)) { if (DataListUtil.GetRecordsetIndexType(varName) == enRecordsetIndexType.Numeric) { var extractedIndex = DataListUtil.ExtractIndexRegionFromRecordset(varName); int intIndex; if (int.TryParse(extractedIndex, out intIndex)) { intIndex++; var blankName = DataListUtil.ReplaceRecordsetIndexWithBlank(varName); var indexedName = DataListUtil.ReplaceRecordsetBlankWithIndex(blankName, intIndex); if (StepOutputs.FirstOrDefault(output => output.Variable.Equals(indexedName, StringComparison.InvariantCultureIgnoreCase)) == null) { var serviceTestOutput = new ServiceTestOutput(indexedName, "", "", "") { AddNewAction = () => AddNewOutput(indexedName) }; StepOutputs?.Add(serviceTestOutput); } } } else { if (StepOutputs != null && StepOutputs.Count >= 1) { var testOutput = StepOutputs.Last(); if (string.IsNullOrWhiteSpace(testOutput?.Variable) && string.IsNullOrWhiteSpace(testOutput?.Value)) { if (testOutput != null) { testOutput.Variable = varName; } } } else { var serviceTestOutput = new ServiceTestOutput(varName, "", "", "") { AddNewAction = () => AddNewOutput(varName) }; StepOutputs?.Add(serviceTestOutput); } } } }
ObservableCollection <IServiceTestOutput> CreateServiceTestOutputFromResult(ObservableCollection <IServiceTestOutput> stepStepOutputs, ServiceTestStep testStep) { var stepOutputs = new ObservableCollection <IServiceTestOutput>(); foreach (var serviceTestOutput in stepStepOutputs) { var variable = serviceTestOutput?.Variable ?? ""; var value = serviceTestOutput?.Value ?? ""; var to = serviceTestOutput?.To ?? ""; var from = serviceTestOutput?.From ?? ""; var testOutput = new ServiceTestOutput(variable, value, from, to) { AddStepOutputRow = testStep.AddNewOutput, AssertOp = serviceTestOutput?.AssertOp ?? "=", HasOptionsForValue = serviceTestOutput?.HasOptionsForValue ?? false, OptionsForValue = serviceTestOutput?.OptionsForValue ?? new List <string>(), Result = serviceTestOutput?.Result ?? new TestRunResult { RunTestResult = RunResult.TestPending } }; if (testStep.MockSelected) { if (!string.IsNullOrEmpty(testOutput.Variable)) { testOutput.TestPassed = true; } else { testOutput.TestPending = false; testOutput.TestPassed = false; testOutput.TestFailing = false; testOutput.TestInvalid = true; } } stepOutputs.Add(testOutput); } return(stepOutputs); }
private void UiAction(IServiceTestModel selectedServiceTest, IContextualResourceModel resourceModel, IServiceTestModelTO res) { if (res == null) { ShowResourceDeleted(selectedServiceTest, resourceModel); return; } if (res.Result != null) { if (res.Result.RunTestResult == RunResult.TestResourceDeleted) { ShowResourceDeleted(selectedServiceTest, resourceModel); return; } UpdateTestStatus(selectedServiceTest, res); selectedServiceTest.Outputs = res.Outputs?.Select(output => { var serviceTestOutput = new ServiceTestOutput(output.Variable, output.Value, output.From, output.To) as IServiceTestOutput; serviceTestOutput.AssertOp = output.AssertOp; serviceTestOutput.Result = output.Result; return(serviceTestOutput); }).ToObservableCollection(); if (selectedServiceTest.TestSteps != null && res.TestSteps != null) { RunTestStepForeachTestStep(selectedServiceTest, res); } selectedServiceTest.DebugForTest = res.Result.DebugForTest; selectedServiceTest.LastRunDate = DateTime.Now; selectedServiceTest.LastRunDateVisibility = true; } else { selectedServiceTest.TestPassed = false; selectedServiceTest.TestFailing = false; selectedServiceTest.TestInvalid = true; } selectedServiceTest.IsTestRunning = false; selectedServiceTest.IsTestLoading = false; }
void AddBlankRowToRecordset(IServiceTestOutput dlItem, IList <IScalar> columns, int indexToInsertAt, int indexNum, IDataListModel dataList) { IList <IScalar> recsetCols = columns.Distinct(Scalar.Comparer).ToList(); string colName = null; foreach (var col in recsetCols.Distinct(new ScalarNameComparer())) { if (string.IsNullOrEmpty(colName) || !colName.Equals(col.Name)) { var recSetName = DataListUtil.ExtractRecordsetNameFromValue(dlItem.Variable); var varName = string.Concat(recSetName, @"(", indexNum, @").", col.Name); var serviceTestOutput = new ServiceTestOutput(varName, string.Empty, string.Empty, string.Empty); serviceTestOutput.AddNewAction = () => AddRow(serviceTestOutput, dataList); Outputs.Insert(indexToInsertAt + 1, serviceTestOutput); indexToInsertAt++; } colName = col.Name; } }
private static ServiceTestOutput GetTestOutput(ServiceTestStep testStep, IServiceTestOutput serviceTestOutput) { var variable = serviceTestOutput.Variable ?? ""; var value = serviceTestOutput.Value ?? ""; var to = serviceTestOutput.To ?? ""; var from = serviceTestOutput.From ?? ""; var testOutput = new ServiceTestOutput(variable, value, from, to) { AddStepOutputRow = testStep.AddNewOutput, AssertOp = serviceTestOutput.AssertOp ?? "=", HasOptionsForValue = serviceTestOutput.HasOptionsForValue, OptionsForValue = serviceTestOutput.OptionsForValue ?? new List <string>(), Result = serviceTestOutput.Result ?? new TestRunResult { RunTestResult = RunResult.TestPending } }; return(testOutput); }
public IServiceTestModel CreateTest(IResourceModel resourceModel, int testNumber, bool isFromDebug) { var testModel = new ServiceTestModel(resourceModel.ID) { TestName = "Test " + (testNumber == 0 ? 1 : testNumber), TestPending = true, Enabled = true, NewTest = true, NoErrorExpected = true, ErrorExpected = false, ErrorContainsText = string.Empty, Inputs = new ObservableCollection <IServiceTestInput>(), Outputs = new ObservableCollection <IServiceTestOutput>(), }; if (!string.IsNullOrEmpty(resourceModel.DataList)) { DataList = new DataListModel(); DataList.Create(resourceModel.DataList, resourceModel.DataList); var inputList = _dataListConversionUtils.GetInputs(DataList); var outputList = _dataListConversionUtils.GetOutputs(DataList); testModel.Inputs = inputList.Select(sca => { var serviceTestInput = new ServiceTestInput(sca.DisplayValue, ""); serviceTestInput.AddNewAction = () => testModel.AddRow(serviceTestInput, DataList); return((IServiceTestInput)serviceTestInput); }).ToObservableCollection(); if (!isFromDebug) { testModel.Outputs = outputList.Select(sca => { var serviceTestOutput = new ServiceTestOutput(sca.DisplayValue, "", "", ""); serviceTestOutput.AddNewAction = () => testModel.AddRow(serviceTestOutput, DataList); return((IServiceTestOutput)serviceTestOutput); }).ToObservableCollection(); } } testModel.Item = (ServiceTestModel)testModel.Clone(); return(testModel); }