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;
            });
        }
Ejemplo n.º 3
0
 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);
         }
     }
 }
Ejemplo n.º 4
0
 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;
        }
Ejemplo n.º 7
0
        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);
        }