public void WebPostActivityViewModel_ToModel_Given_IsManualChecked_True_ExpectFromPostDataVariableInputs()
        {
            //---------------Set up test pack-------------------
            var mockModel    = GetMockModel();
            var postActivity = GetPostActivityWithOutPuts(mockModel);

            var postViewModel = new WebPostActivityViewModel(ModelItemUtils.CreateModelItem(postActivity), mockModel);

            postViewModel.ManageServiceInputViewModel = new InputViewForWebPostTest(postViewModel, mockModel);
            postViewModel.SourceRegion.SelectedSource = postViewModel.SourceRegion.Sources.First();
            postViewModel.InputArea.Headers.Add(new NameValue("a", "asa"));
            postViewModel.InputArea.PostData                 = "this is a test body with a [[VariableToExpose]]";
            postViewModel.InputArea.ViewModel                = new WebPostActivityViewModelNew(ModelItemUtils.CreateModelItem(postActivity), mockModel);
            postViewModel.InputArea.IsManualChecked          = true;
            postViewModel.InputArea.IsFormDataChecked        = false;
            postViewModel.ConditionExpressionOptions.Options = new List <IOption>
            {
                new FormDataOptionConditionExpression
                {
                    Key       = "l",
                    Value     = "[[VariableNotToExpose]]",
                    TableType = enFormDataTableType.Text
                }
            };
            //---------------Execute Test ----------------------
            var result = postViewModel.ToModel();

            var actualInputs = result.Inputs;

            Assert.IsTrue(actualInputs.Count == 1);
            Assert.IsTrue(actualInputs.First().Name == "[[VariableToExpose]]");
        }
        public void WebPostActivityViewModel_WebPut_BodyIsXmlExistingHeaders_ExpectNoHeadersAdded()
        {
            //---------------Set up test pack-------------------
            CustomContainer.LoadedTypes = new List <Type>()
            {
                typeof(ManageWebServiceModel)
            };
            var shellVm       = new Mock <IShellViewModel>();
            var serverMock    = new Mock <IServer>();
            var updateProxy   = new Mock <IStudioUpdateManager>();
            var updateManager = new Mock <IQueryManager>();

            serverMock.Setup(server => server.UpdateRepository).Returns(updateProxy.Object);
            serverMock.Setup(server => server.QueryProxy).Returns(updateManager.Object);
            shellVm.Setup(model => model.ActiveServer).Returns(serverMock.Object);
            CustomContainer.Register(shellVm.Object);
            var mod           = GetMockModel();
            var act           = GetPostActivityWithOutPuts(mod);
            var modelItem     = ModelItemUtils.CreateModelItem(act);
            var postViewModel = new WebPostActivityViewModel(modelItem);

            var oldCount = postViewModel.InputArea.Headers.Count;
            //---------------Assert Precondition----------------

            //---------------Execute Test ----------------------
            var person = "<person sex=\"female\"><firstname>Anna</firstname><lastname>Smith</lastname></person>";

            postViewModel.InputArea.PostData = person;
            var newCount = postViewModel.InputArea.Headers.Count;

            //---------------Test Result -----------------------
            Assert.IsTrue(newCount == oldCount);
        }
        public void WebPostActivityViewModel_WebPost_TestActionSetSourceAndTestClickOkHasQueryStringAndHeadersRecSet()
        {
            //---------------Set up test pack-------------------
            var mod           = GetMockModel();
            var act           = GetPostActivityWithOutPuts(mod);
            var postViewModel = new WebPostActivityViewModel(ModelItemUtils.CreateModelItem(act), mod);

            postViewModel.ManageServiceInputViewModel = new InputViewForWebPostTest(postViewModel, mod);
            postViewModel.SourceRegion.SelectedSource = postViewModel.SourceRegion.Sources.First();
            postViewModel.InputArea.Headers.Add(new NameValue("[[a]]", "asa"));
            postViewModel.InputArea.QueryString = "the [[b().a]]";
#pragma warning disable 4014
            postViewModel.TestInputCommand.Execute();
            postViewModel.ManageServiceInputViewModel.TestCommand.Execute(null);
            postViewModel.ManageServiceInputViewModel.IsEnabled          = true;
            postViewModel.ManageServiceInputViewModel.OutputArea.Outputs = new List <IServiceOutputMapping> {
                new ServiceOutputMapping("a", "b", "c"), new ServiceOutputMapping("a", "b", "c"), new ServiceOutputMapping("a", "b", "c")
            };
            postViewModel.ManageServiceInputViewModel.OkCommand.Execute(null);
#pragma warning restore 4014
            //---------------Assert Precondition----------------

            //---------------Execute Test ----------------------
            Assert.IsTrue(postViewModel.SourceRegion.IsEnabled);
            Assert.IsTrue(postViewModel.OutputsRegion.IsEnabled);
            Assert.IsTrue(postViewModel.InputArea.IsEnabled);
            Assert.IsTrue(postViewModel.ErrorRegion.IsEnabled);
            Assert.IsTrue(postViewModel.ManageServiceInputViewModel.InputArea.Inputs.Count == 2);
            Assert.IsTrue(postViewModel.ManageServiceInputViewModel.InputArea.Inputs.First().Name == "[[b().a]]");
            Assert.IsTrue(postViewModel.ManageServiceInputViewModel.InputArea.Inputs.Last().Name == "[[a]]");
            Assert.AreEqual(0, postViewModel.ManageServiceInputViewModel.Errors.Count);
            //---------------Test Result -----------------------
        }
        public void WebPostActivityViewModel_TestInputCommand_IsFormDataChecked()
        {
            //---------------Set up test pack-------------------
            var mockModel    = GetMockModel();
            var postActivity = GetPostActivityWithOutPuts(mockModel);

            var postViewModel = new WebPostActivityViewModel(ModelItemUtils.CreateModelItem(postActivity), mockModel);

            postViewModel.ManageServiceInputViewModel = new InputViewForWebPostTest(postViewModel, mockModel);
            postViewModel.SourceRegion.SelectedSource = postViewModel.SourceRegion.Sources.First();
            postViewModel.InputArea.Headers.Add(new NameValue("[[a]]", "asa"));
            postViewModel.InputArea.ViewModel                = new WebPostActivityViewModelNew(ModelItemUtils.CreateModelItem(postActivity), mockModel);
            postViewModel.InputArea.IsFormDataChecked        = true;
            postViewModel.ConditionExpressionOptions.Options = new List <IOption>
            {
                new FormDataOptionConditionExpression
                {
                    Key   = "l",
                    Value = "r",
                    Cond  = new FormDataConditionText
                    {
                        TableType = enFormDataTableType.Text,
                        Value     = "this can be any text message"
                    },
                }
            };
            //---------------Execute Test ----------------------
            postViewModel.TestInputCommand.Execute();
            postViewModel.ManageServiceInputViewModel.TestCommand.Execute(null);
            postViewModel.ManageServiceInputViewModel.IsEnabled          = true;
            postViewModel.ManageServiceInputViewModel.OutputArea.Outputs = new List <IServiceOutputMapping> {
                new ServiceOutputMapping("a", "b", "c"), new ServiceOutputMapping("a", "b", "c"), new ServiceOutputMapping("a", "b", "c")
            };
            postViewModel.ManageServiceInputViewModel.OkCommand.Execute(null);

            //---------------Test Result -----------------------
            Assert.IsTrue(postViewModel.SourceRegion.IsEnabled);
            Assert.IsTrue(postViewModel.OutputsRegion.IsEnabled);
            Assert.IsTrue(postViewModel.InputArea.IsEnabled);
            Assert.IsTrue(postViewModel.ErrorRegion.IsEnabled);
            Assert.AreEqual(1, postViewModel.ManageServiceInputViewModel.InputArea.Inputs.Count);
            Assert.IsTrue(postViewModel.ManageServiceInputViewModel.InputArea.Inputs.First().Name == "[[a]]");
            Assert.AreEqual(0, postViewModel.ManageServiceInputViewModel.Errors.Count);
            Assert.IsTrue(postViewModel.ManageServiceInputViewModel.IsFormDataChecked);

            var options = postViewModel.ManageServiceInputViewModel.ConditionExpressionOptions.Options;

            Assert.IsTrue(options.Count == 2);
            var item1 = options.First() as FormDataOptionConditionExpression;

            Assert.IsNotNull(item1);
            Assert.AreEqual("l", item1.Key);
            Assert.AreEqual("r", item1.Value);
            Assert.AreEqual(enFormDataTableType.Text, item1.Cond.TableType);
            Assert.AreEqual("this can be any text message", (item1.Cond as FormDataConditionText)?.Value);
        }
        public void WebPostActivityViewModel_DeleteCondition()
        {
            //------------Setup for test--------------------------
            var mod = GetMockModel();
            var conditionExpressionList = new List <FormDataConditionExpression>
            {
                new FormDataConditionExpression
                {
                    Key  = "[[a]]",
                    Cond = new FormDataConditionText
                    {
                        TableType = enFormDataTableType.Text,
                        Value     = "this can be any text message"
                    }
                }
            };

            var gateOptionsProperty = CreateModelProperty("FormDataOptions", null).Object;
            var conditionsProperty  = CreateModelProperty("Conditions", conditionExpressionList);
            var displayNameProperty = CreateModelProperty("DisplayName", "test display name");

            var mockProperties = new Mock <ModelPropertyCollection>();

            mockProperties.Protected().Setup <ModelProperty>("Find", "FormDataOptions", true).Returns(gateOptionsProperty);
            mockProperties.Protected().Setup <ModelProperty>("Find", "Conditions", true).Returns(conditionsProperty.Object);
            mockProperties.Protected().Setup <ModelProperty>("Find", "DisplayName", true).Returns(displayNameProperty.Object);

            var mockModelItem = new Mock <ModelItem>();

            mockModelItem.Setup(modelItem => modelItem.Properties).Returns(mockProperties.Object);
            //------------Execute Test---------------------------
            var gateDesignerViewModel = new WebPostActivityViewModel(mockModelItem.Object, mod);

            var conditions = gateDesignerViewModel.ConditionExpressionOptions.Options.ToList();

            //------------Assert Results-------------------------
            Assert.AreEqual(2, conditions.Count);

            var optionConditionExpression = conditions[0] as FormDataOptionConditionExpression;

            Assert.IsNotNull(optionConditionExpression);
            optionConditionExpression.SelectedTableType = new NamedInt {
                Name = "Text", Value = 1
            };
            optionConditionExpression.DeleteCommand.Execute(optionConditionExpression);

            conditions = gateDesignerViewModel.ConditionExpressionOptions.Options.ToList();

            Assert.AreEqual(1, conditions.Count);

            var emptyCondition = conditions[0] as FormDataOptionConditionExpression;

            Assert.IsNotNull(emptyCondition);
            Assert.IsNull(emptyCondition.Key);
            Assert.AreEqual(enFormDataTableType.Text, emptyCondition.TableType);
        }
Esempio n. 6
0
        public void ManageWebServiceInputViewModel_ExecuteTest_ExpectSuccess()
        {
            var mockWebServiceModel = new Mock <IWebServiceModel>();

            mockWebServiceModel.Setup(o => o.RetrieveSources())
            .Returns(new List <IWebServiceSource>
            {
                new WebServiceSourceDefinition()
            });

            var myWebModel     = mockWebServiceModel.Object;
            var webGetActivity = new WebPostActivityNew()
            {
                SourceId = Guid.NewGuid(),
                Outputs  = new List <IServiceOutputMapping> {
                    new ServiceOutputMapping("a", "b", "c"), new ServiceOutputMapping("d", "e", "f")
                },
                Headers = new List <INameValue> {
                    new NameValue("a", "x")
                },
                Conditions = new List <FormDataConditionExpression>
                {
                    new FormDataConditionExpression
                    {
                        Key  = "testKey",
                        Cond = new FormDataConditionText
                        {
                            Value = "this can be any text value"
                        }
                    }
                },
                QueryString = "Bob the builder",
                ServiceName = "dsfBob"
            };

#pragma warning disable 618
            var webPostActivityViewModel = new WebPostActivityViewModel(ModelItemUtils.CreateModelItem(webGetActivity), myWebModel);
#pragma warning restore 618
            webPostActivityViewModel.SourceRegion.SelectedSource = webPostActivityViewModel.SourceRegion.Sources.First();
            webPostActivityViewModel.TestInputCommand.Execute();
            webPostActivityViewModel.ManageServiceInputViewModel.TestCommand.Execute(null);
            //------------Assert Results-------------------------
            var inputViewModel = new ManageWebServiceInputViewModel(webPostActivityViewModel, myWebModel)
            {
                IsFormDataChecked = true,
            };

            Assert.IsTrue(inputViewModel.IsFormDataChecked);
            Assert.IsNotNull(inputViewModel.ConditionExpressionOptions);
            Assert.AreEqual(1, inputViewModel.ConditionExpressionOptions.Options.Count);

            mockWebServiceModel.Verify(o => o.TestService(It.IsAny <IWebService>()), Times.Once);
        }
        //public void WebPostActivityViewModel_Validate_GivenHasNewInstance_ShouldHaveOneDefaultError()
        public void WebPostActivityViewModel_WebPost_MethodName_ValidateExpectErrors()
        {
            //---------------Set up test pack-------------------
            var mod           = GetMockModel();
            var act           = GetEmptyPostActivity();
            var postViewModel = new WebPostActivityViewModel(ModelItemUtils.CreateModelItem(act), mod);

            //---------------Assert Precondition----------------
            Assert.IsNotNull(postViewModel);
            //---------------Execute Test ----------------------
            postViewModel.Validate();
            //---------------Test Result -----------------------
            Assert.AreEqual(postViewModel.Errors.Count, 1);
            Assert.AreEqual(postViewModel.DesignValidationErrors.Count, 2);
        }
        public void WebPostActivityViewModel_ClearValidationMemoWithNoFoundError_GivenHasNoErrors_ShouldNullErrors()
        {
            //---------------Set up test pack-------------------
            var mod           = GetMockModel();
            var act           = GetPostActivityWithOutPuts(mod);
            var postViewModel = new WebPostActivityViewModel(ModelItemUtils.CreateModelItem(act), mod);

            //---------------Assert Precondition----------------
            //---------------Execute Test ----------------------
            postViewModel.ClearValidationMemoWithNoFoundError();
            //---------------Test Result -----------------------
            Assert.IsNull(postViewModel.Errors);
            Assert.AreEqual(postViewModel.DesignValidationErrors.Count, 1);
            Assert.IsTrue(postViewModel.IsWorstErrorReadOnly);
        }
        public void WebPostActivityViewModel_GetHeaderRegion_GivenIsNew_ShouldReturnInputArea()
        {
            //---------------Set up test pack-------------------
            var mod           = GetMockModel();
            var act           = GetEmptyPostActivity();
            var postViewModel = new WebPostActivityViewModel(ModelItemUtils.CreateModelItem(act), mod);

            //---------------Assert Precondition----------------
            //---------------Execute Test ----------------------
            Assert.IsTrue(postViewModel.SourceRegion.IsEnabled);
            Assert.IsFalse(postViewModel.OutputsRegion.IsEnabled);
            Assert.IsFalse(postViewModel.InputArea.IsEnabled);
            Assert.IsTrue(postViewModel.ErrorRegion.IsEnabled);
            //---------------Test Result -----------------------
            Assert.AreSame(postViewModel.InputArea, postViewModel.GetHeaderRegion());
        }
        public void WebPostActivityViewModel_Construct_GivenIsNew_ShouldHaveDefalutValues()
        {
            //---------------Set up test pack-------------------
            var mod           = GetMockModel();
            var act           = GetEmptyPostActivity();
            var postViewModel = new WebPostActivityViewModel(ModelItemUtils.CreateModelItem(act), mod);

            //---------------Assert Precondition----------------
            //---------------Execute Test ----------------------
            Assert.IsTrue(postViewModel.SourceRegion.IsEnabled);
            Assert.IsFalse(postViewModel.OutputsRegion.IsEnabled);
            Assert.IsFalse(postViewModel.InputArea.IsEnabled);
            Assert.IsTrue(postViewModel.ErrorRegion.IsEnabled);

            //---------------Test Result -----------------------
        }
        public void WebPostActivityViewModel_OnLoad_GivenHasModelAndId_ShouldHaveDefaultHeightValues()
        {
            //---------------Set up test pack-------------------
            var id            = Guid.NewGuid();
            var mod           = GetMockModel();
            var act           = GetPostActivityWithOutPuts(mod);
            var postViewModel = new WebPostActivityViewModel(ModelItemUtils.CreateModelItem(act), mod);

            //---------------Assert Precondition----------------
            //---------------Execute Test ----------------------
            //---------------Test Result -----------------------
            Assert.IsTrue(postViewModel.SourceRegion.IsEnabled);
            Assert.IsTrue(postViewModel.OutputsRegion.IsEnabled);
            Assert.IsTrue(postViewModel.InputArea.IsEnabled);
            Assert.IsTrue(postViewModel.ErrorRegion.IsEnabled);
            postViewModel.ValidateTestComplete();
            Assert.IsTrue(postViewModel.OutputsRegion.IsEnabled);
        }
        public void WebPostActivityViewModel_ActionSetSource_GivenSelectedSource_ShouldHaveDefaultValues()
        {
            //---------------Set up test pack-------------------
            var mod           = GetMockModel();
            var act           = GetPostActivityWithOutPuts(mod);
            var postViewModel = new WebPostActivityViewModel(ModelItemUtils.CreateModelItem(act), mod);

            postViewModel.ManageServiceInputViewModel = new InputViewForWebPostTest(postViewModel, mod);
            postViewModel.SourceRegion.SelectedSource = postViewModel.SourceRegion.Sources.First();
            //---------------Assert Precondition----------------
            //---------------Execute Test ----------------------
            Assert.IsTrue(postViewModel.SourceRegion.IsEnabled);
            Assert.IsFalse(postViewModel.OutputsRegion.IsEnabled);
            Assert.IsTrue(postViewModel.InputArea.IsEnabled);
            Assert.IsTrue(postViewModel.ErrorRegion.IsEnabled);

            //---------------Test Result -----------------------
        }
        public void WebPostActivityViewModel_WebPostDesignerViewModel_UpdateHelp_ShouldCallToHelpViewMode()
        {
            //------------Setup for test--------------------------
            var mockMainViewModel = new Mock <IShellViewModel>();
            var mockHelpViewModel = new Mock <IHelpWindowViewModel>();

            mockHelpViewModel.Setup(model => model.UpdateHelpText(It.IsAny <string>())).Verifiable();
            mockMainViewModel.Setup(model => model.HelpViewModel).Returns(mockHelpViewModel.Object);
            CustomContainer.Register(mockMainViewModel.Object);

            var mod       = GetMockModel();
            var act       = GetEmptyPostActivity();
            var viewModel = new WebPostActivityViewModel(ModelItemUtils.CreateModelItem(act), mod);

            //------------Execute Test---------------------------
            viewModel.UpdateHelpDescriptor("help");
            //------------Assert Results-------------------------
            mockHelpViewModel.Verify(model => model.UpdateHelpText(It.IsAny <string>()), Times.Once());
        }
        public void WebPostActivityViewModel_WebPut_BodyIsJSonNoHeaders_ExpectNewHeadersAdded()
        {
            //---------------Set up test pack-------------------
            CustomContainer.LoadedTypes = new List <Type>()
            {
                typeof(ManageWebServiceModel)
            };
            var shellVm       = new Mock <IShellViewModel>();
            var serverMock    = new Mock <IServer>();
            var updateProxy   = new Mock <IStudioUpdateManager>();
            var updateManager = new Mock <IQueryManager>();

            serverMock.Setup(server => server.UpdateRepository).Returns(updateProxy.Object);
            serverMock.Setup(server => server.QueryProxy).Returns(updateManager.Object);
            shellVm.Setup(model => model.ActiveServer).Returns(serverMock.Object);
            CustomContainer.Register(shellVm.Object);
            var mod = GetMockModel();
            var act = GetPostActivityWithOutPuts(mod);

            act.Headers = new List <INameValue>();
            var modelItem      = ModelItemUtils.CreateModelItem(act);
            var postViewModel  = new WebPostActivityViewModel(modelItem);
            var oldHeaderCount = postViewModel.InputArea.Headers.Count;

            //---------------Assert Precondition----------------
            Assert.AreEqual(1, oldHeaderCount);
            //---------------Execute Test ----------------------
            var human       = new Human();
            var h           = new Dev2JsonSerializer();
            var humanString = h.Serialize(human);

            postViewModel.InputArea.PostData = humanString;
            var newCount = postViewModel.InputArea.Headers.Count;

            //---------------Test Result -----------------------
            Assert.AreEqual(GlobalConstants.ApplicationJsonHeader, postViewModel.InputArea.Headers.Single(value => value.Value == GlobalConstants.ApplicationJsonHeader).Value);
            Assert.AreEqual(GlobalConstants.ContentType, postViewModel.InputArea.Headers.Single(value => value.Name == GlobalConstants.ContentType).Name);
            Assert.IsTrue(newCount > oldHeaderCount);
        }
        public void WebPostActivityViewModel_WebPost_TestActionSetSourceAndTestClickOkHasserialisationIssue()
        {
            //---------------Set up test pack-------------------
            var mod = GetMockModel();

            mod.IsTextResponse = true;
            var act           = GetEmptyPostActivity();
            var postViewModel = new WebPostActivityViewModel(ModelItemUtils.CreateModelItem(act), mod);

            postViewModel.ManageServiceInputViewModel = new InputViewForWebPostTest(postViewModel, mod);
            postViewModel.SourceRegion.SelectedSource = postViewModel.SourceRegion.Sources.First();
#pragma warning disable 4014
            postViewModel.TestInputCommand.Execute();
            postViewModel.ManageServiceInputViewModel.TestCommand.Execute(null);
            postViewModel.ManageServiceInputViewModel.IsEnabled = true;
            postViewModel.ManageServiceInputViewModel.OkCommand.Execute(null);
#pragma warning restore 4014
            //---------------Assert Precondition----------------
            //---------------Execute Test ----------------------
            Assert.AreEqual(postViewModel.OutputsRegion.Outputs.First().MappedFrom, "Result");

            //---------------Test Result -----------------------
        }
        public void WebPostActivityViewModel_WebPost_TestActionSetSourceAndTestClickOkHasMappingsErrorFromServer()
        {
            //---------------Set up test pack-------------------
            var mod           = GetMockModel();
            var act           = GetPostActivityWithOutPuts(mod);
            var postViewModel = new WebPostActivityViewModel(ModelItemUtils.CreateModelItem(act), mod);

            postViewModel.ManageServiceInputViewModel = new InputViewForWebPostTest(postViewModel, mod);
            postViewModel.SourceRegion.SelectedSource = postViewModel.SourceRegion.Sources.First();
#pragma warning disable 4014
            postViewModel.TestInputCommand.Execute();
            postViewModel.ManageServiceInputViewModel.TestCommand.Execute(null);
            postViewModel.ManageServiceInputViewModel.IsEnabled          = true;
            postViewModel.ManageServiceInputViewModel.OutputArea.Outputs = new List <IServiceOutputMapping> {
                new ServiceOutputMapping("a", "b", "c"), new ServiceOutputMapping("a", "b", "c"), new ServiceOutputMapping("a", "b", "c")
            };
            postViewModel.ManageServiceInputViewModel.OkCommand.Execute(null);
#pragma warning restore 4014
            //---------------Assert Precondition----------------

            //---------------Execute Test ----------------------
            Assert.IsTrue(postViewModel.ErrorRegion.IsEnabled);
            //---------------Test Result -----------------------
        }