private void RunTestStep(IServiceTestModel selectedServiceTest, IServiceTestStep resTestStep)
        {
            var serviceTestSteps = selectedServiceTest.TestSteps.Where(testStep => testStep.UniqueId == resTestStep.UniqueId).ToList();

            foreach (var serviceTestStep in serviceTestSteps)
            {
                var resServiceTestStep = serviceTestStep as ServiceTestStep;
                if (resServiceTestStep == null)
                {
                    continue;
                }

                UpdateTestStepResult(resServiceTestStep, resTestStep);

                var serviceTestOutputs = resTestStep.StepOutputs;
                if (serviceTestOutputs.Count > 0)
                {
                    resServiceTestStep.StepOutputs = CreateServiceTestOutputFromResult(resTestStep.StepOutputs, resServiceTestStep);
                }
                var children = resTestStep.Children;
                if (children.Count > 0)
                {
                    SetChildrenTestResult(children, resServiceTestStep.Children);
                }
            }
        }
 private void RunTestStepForeachTestStep(IServiceTestModel selectedServiceTest, IServiceTestModelTO res)
 {
     foreach (var resTestStep in res.TestSteps)
     {
         RunTestStep(selectedServiceTest, resTestStep);
     }
 }
Example #3
0
        public IServiceTestModel Clone()
        {
            var serializer = new Dev2JsonSerializer();
            IServiceTestModel serviceTestModel = this;
            var ser   = serializer.SerializeToBuilder(serviceTestModel);
            var clone = serializer.Deserialize <IServiceTestModel>(ser);

            return(clone);
        }
        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;
            });
        }
 static void UpdateTestStatus(IServiceTestModel selectedServiceTest, IServiceTestModelTO res)
 {
     selectedServiceTest.TestFailing = res.Result.RunTestResult == RunResult.TestFailed;
     selectedServiceTest.TestPassed  = res.Result.RunTestResult == RunResult.TestPassed;
     selectedServiceTest.TestInvalid = res.Result.RunTestResult == RunResult.TestInvalid ||
                                       res.Result.RunTestResult == RunResult.TestResourceDeleted;
     selectedServiceTest.TestPending = res.Result.RunTestResult != RunResult.TestFailed &&
                                       res.Result.RunTestResult != RunResult.TestPassed &&
                                       res.Result.RunTestResult != RunResult.TestInvalid &&
                                       res.Result.RunTestResult != RunResult.TestResourceDeleted &&
                                       res.Result.RunTestResult != RunResult.TestResourcePathUpdated;
 }
        public IServiceTestModel DuplicateTest(IServiceTestModel selectedTests, int testNumber)
        {
            var clone = selectedTests.Clone();

            clone.TestName       = selectedTests.TestName + " " + (testNumber == 0 ? 1 : testNumber);
            clone.OldTestName    = clone.TestName;
            clone.Enabled        = true;
            clone.IsTestSelected = true;
            clone.TestPending    = true;
            clone.NewTest        = true;

            return(clone);
        }
        public void RunSelectedTest(IServiceTestModel selectedServiceTest, IContextualResourceModel resourceModel, IAsyncWorker asyncWorker)
        {
            var model = selectedServiceTest.As <ServiceTestModel>();

            if (model == null || resourceModel == null || asyncWorker == null ||
                model.IsNewTest)
            {
                return;
            }
            model.IsTestLoading = true;
            model.IsTestRunning = true;

            asyncWorker.Start(() => BackgroundAction(model, resourceModel), res => UiAction(model, resourceModel, res));
        }
        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;
        }
        private void RunTestStep(IServiceTestModel selectedServiceTest, IServiceTestStep resTestStep)
        {
            var serviceTestSteps = selectedServiceTest
                                   .TestSteps
                                   .Select(o => o.As <ServiceTestStep>())
                                   .Where(testStep => testStep != null && testStep.ActivityID == resTestStep.ActivityID)
                                   .ToList();

            foreach (var resServiceTestStep in serviceTestSteps)
            {
                UpdateTestStepResult(resServiceTestStep, resTestStep);

                var serviceTestOutputs = resTestStep.StepOutputs;
                if (serviceTestOutputs.Count > 0)
                {
                    resServiceTestStep.StepOutputs = CreateServiceTestOutputFromResult(resTestStep.StepOutputs, resServiceTestStep);
                }
                var children = resTestStep.Children;
                if (children.Count > 0)
                {
                    SetChildrenTestResult(children, resServiceTestStep.Children);
                }
            }
        }
 public void SetItem(IServiceTestModel model)
 {
 }
 private static void ShowResourceDeleted(IServiceTestModel selectedServiceTest, IContextualResourceModel resourceModel)
 {
     selectedServiceTest.IsTestRunning = false;
     ShowPopupController();
     CloseResourceTestView(resourceModel);
 }
 private static IServiceTestModelTO BackgroundAction(IServiceTestModel selectedServiceTest, IContextualResourceModel resourceModel)
 {
     return(resourceModel.Environment.ResourceRepository.ExecuteTest(resourceModel, selectedServiceTest.TestName));
 }
Example #13
0
 public void SetItem(IServiceTestModel model)
 {
     Item = model as ServiceTestModel;
 }