Inheritance: Dev2.Studio.ViewModels.Workflow.WorkflowInputDataViewModel
Example #1
0
        public void CloseInputExpectFinishMessage()
        {
            var debugVM                    = CreateDebugOutputViewModel();
            var mockResouce                = GetMockResource();
            var serviceDebugInfo           = GetMockServiceDebugInfo(mockResouce);
            var workflowInputDataviewModel = new WorkflowInputDataViewModelMock(serviceDebugInfo.Object, debugVM);

            workflowInputDataviewModel.DebugExecutionFinished += () => debugVM.DebugStatus = DebugStatus.Finished;
            workflowInputDataviewModel.ViewClosed();
            Assert.AreEqual(DebugStatus.Finished, debugVM.DebugStatus);
        }
        public void WorkflowInputDataViewModel_ExecuteWorkflow_InvokesSendExecuteRequest()
        {
            //------------Setup for test--------------------------
            var rm = new Mock <IContextualResourceModel>();

            rm.Setup(r => r.ServerID).Returns(_serverID);
            rm.Setup(r => r.ResourceName).Returns(ResourceName);
            rm.Setup(r => r.WorkflowXaml).Returns(new StringBuilder(StringResourcesTest.DebugInputWindow_WorkflowXaml));
            rm.Setup(r => r.ID).Returns(_resourceID);
            rm.Setup(r => r.DataList).Returns(StringResourcesTest.DebugInputWindow_DataList);
            var mockEnvironmentModel = new Mock <IEnvironmentModel>();

            mockEnvironmentModel.Setup(model => model.ID).Returns(Guid.Empty);
            var mockEnvironmentConnection = new Mock <IEnvironmentConnection>();

            mockEnvironmentModel.Setup(model => model.Connection).Returns(mockEnvironmentConnection.Object);
            rm.Setup(model => model.Environment).Returns(mockEnvironmentModel.Object);

            var serviceDebugInfoModel = new ServiceDebugInfoModel
            {
                DebugModeSetting = DebugMode.DebugInteractive,
                RememberInputs   = true,
                ResourceModel    = rm.Object,
                ServiceInputData = "<DataList></DataList>"
            };

            var debugOutputViewModel       = CreateDebugOutputViewModel();
            var workflowInputDataViewModel = new WorkflowInputDataViewModelMock(serviceDebugInfoModel, debugOutputViewModel);

            workflowInputDataViewModel.DebugExecutionStart += () => debugOutputViewModel.DebugStatus = DebugStatus.Executing;
            //------------Execute Test---------------------------
            workflowInputDataViewModel.ExecuteWorkflow();

            //------------Assert Results-------------------------
            Assert.AreEqual(DebugStatus.Executing, debugOutputViewModel.DebugStatus);

            Assert.AreEqual(1, workflowInputDataViewModel.SendExecuteRequestHitCount);
            Assert.IsNotNull(workflowInputDataViewModel.SendExecuteRequestPayload);

            var payload = XElement.Parse(workflowInputDataViewModel.DebugTo.XmlData);

            payload.Add(new XElement("BDSDebugMode", workflowInputDataViewModel.DebugTo.IsDebugMode));
            payload.Add(new XElement("DebugSessionID", workflowInputDataViewModel.DebugTo.SessionID));
            payload.Add(new XElement("EnvironmentID", Guid.Empty));

            var expectedPayload = payload.ToString(SaveOptions.None);
            var actualPayload   = workflowInputDataViewModel.SendExecuteRequestPayload.ToString(SaveOptions.None);

            Assert.AreEqual(expectedPayload, actualPayload);
        }
        public void WorkflowInputDataViewModel_ExecuteWorkflowViewInBrowser_InvokesSendViewInBrowserRequest_ScalarsOnly()
        {
            //------------Setup for test--------------------------
            const string datalist = @"<DataList><val IsEditable=""True"" ColumnIODirection=""Input""/><res IsEditable=""True"" ColumnIODirection=""Input""/></DataList>";
            var          rm       = new Mock <IContextualResourceModel>();

            rm.Setup(r => r.ServerID).Returns(_serverID);
            rm.Setup(r => r.ResourceName).Returns("AnotherWorkflow");
            rm.Setup(r => r.WorkflowXaml).Returns(new StringBuilder(StringResourcesTest.DebugInputWindow_WorkflowXaml));
            rm.Setup(r => r.ID).Returns(_resourceID);
            rm.Setup(r => r.DataList).Returns(datalist);
            var mockEnvironmentModel = new Mock <IEnvironmentModel>();

            mockEnvironmentModel.Setup(model => model.ID).Returns(Guid.Empty);
            var mockEnvironmentConnection = new Mock <IEnvironmentConnection>();

            mockEnvironmentModel.Setup(model => model.Connection).Returns(mockEnvironmentConnection.Object);
            rm.Setup(model => model.Environment).Returns(mockEnvironmentModel.Object);


            var serviceDebugInfoModel = new ServiceDebugInfoModel
            {
                DebugModeSetting = DebugMode.DebugInteractive,
                RememberInputs   = true,
                ResourceModel    = rm.Object,
                ServiceInputData = datalist
            };

            var debugOutputViewModel       = CreateDebugOutputViewModel();
            var workflowInputDataViewModel = new WorkflowInputDataViewModelMock(serviceDebugInfoModel, debugOutputViewModel)
            {
                DebugTo = { DataList = datalist }
            };

            workflowInputDataViewModel.LoadWorkflowInputs();
            workflowInputDataViewModel.XmlData = @"<DataList><val>1</val><res>2</res></DataList>";
            workflowInputDataViewModel.SetWorkflowInputData();
            //------------Execute Test---------------------------
            workflowInputDataViewModel.ViewInBrowser();
            //------------Assert Results-------------------------
            Assert.AreEqual(1, workflowInputDataViewModel.SendViewInBrowserRequestHitCount);
            Assert.IsNotNull(workflowInputDataViewModel.SendViewInBrowserRequestPayload);
            const string expectedPayload = @"val=1&res=2";
            var          actualPayload   = workflowInputDataViewModel.SendViewInBrowserRequestPayload;

            Assert.AreEqual(expectedPayload, actualPayload);
        }
        public void WorkflowInputDataViewModel_Save_WithScalarVariable_ExpectNewDataListInputViewModelItems()
        {
            //------------Setup for test--------------------------
            var rm = new Mock <IContextualResourceModel>();

            rm.Setup(r => r.ServerID).Returns(_serverID);
            rm.Setup(r => r.ResourceName).Returns(ResourceName);
            rm.Setup(r => r.WorkflowXaml).Returns(new StringBuilder(StringResourcesTest.DebugInputWindow_WorkflowXaml));
            rm.Setup(r => r.ID).Returns(_resourceID);
            rm.Setup(r => r.DataList).Returns("<DataList><rs Description=\"\" IsEditable=\"True\" ColumnIODirection=\"Input\" ><val Description=\"\" IsEditable=\"True\" ColumnIODirection=\"Input\" /></rs></DataList>");

            var serviceDebugInfoModel = new ServiceDebugInfoModel
            {
                DebugModeSetting = DebugMode.DebugInteractive,
                RememberInputs   = true,
                ResourceModel    = rm.Object,
                ServiceInputData = "<DataList><rs><val>1</val></rs></DataList>"
            };

            var debugOutputViewModel       = CreateDebugOutputViewModel();
            var workflowInputDataViewModel = new WorkflowInputDataViewModelMock(serviceDebugInfoModel, debugOutputViewModel);

            workflowInputDataViewModel.LoadWorkflowInputs();


            //------------Execute Test---------------------------
            workflowInputDataViewModel.WorkflowInputs.Add(new DataListItem {
                DisplayValue = "rs(2).val", Field = "val", Recordset = "rs", IsRecordset = true, Value = "2", RecordsetIndex = "2"
            });
            workflowInputDataViewModel.Save();

            //------------Assert Results-------------------------
            const string expectedPayload = @"<DataList>
  <rs>
    <val>1</val>
  </rs>
  <rs>
    <val>2</val>
  </rs>
</DataList>";

            Assert.AreEqual(expectedPayload, workflowInputDataViewModel.DebugTo.XmlData);
        }
        public void WorkflowInputDataViewModel_Save_WithScalarVariable_ExpectNewDataListInputViewModelItems()
        {
            //------------Setup for test--------------------------
            var rm = new Mock<IContextualResourceModel>();
            rm.Setup(r => r.ServerID).Returns(_serverID);
            rm.Setup(r => r.ResourceName).Returns(ResourceName);
            rm.Setup(r => r.WorkflowXaml).Returns(new StringBuilder(StringResourcesTest.DebugInputWindow_WorkflowXaml));
            rm.Setup(r => r.ID).Returns(_resourceID);
            rm.Setup(r => r.DataList).Returns("<DataList><rs Description=\"\" IsEditable=\"True\" ColumnIODirection=\"Input\" ><val Description=\"\" IsEditable=\"True\" ColumnIODirection=\"Input\" /></rs></DataList>");

            var serviceDebugInfoModel = new ServiceDebugInfoModel
            {
                DebugModeSetting = DebugMode.DebugInteractive,
                RememberInputs = true,
                ResourceModel = rm.Object,
                ServiceInputData = "<DataList><rs><val>1</val></rs></DataList>"
            };

            var debugOutputViewModel = CreateDebugOutputViewModel();
            var workflowInputDataViewModel = new WorkflowInputDataViewModelMock(serviceDebugInfoModel, debugOutputViewModel);
            workflowInputDataViewModel.LoadWorkflowInputs();

            //------------Execute Test---------------------------
            workflowInputDataViewModel.WorkflowInputs.Add(new DataListItem { DisplayValue = "rs(2).val", Field = "val", Recordset = "rs", IsRecordset = true, Value = "2", RecordsetIndex = "2" });
            workflowInputDataViewModel.Save();

            //------------Assert Results-------------------------
            const string expectedPayload = @"<DataList>
              <rs>
            <val>1</val>
              </rs>
              <rs>
            <val>2</val>
              </rs>
            </DataList>";
            Assert.AreEqual(expectedPayload, workflowInputDataViewModel.DebugTo.XmlData);
        }
        public void WorkflowInputDataViewModel_ExecuteWorkflow_InvokesSendExecuteRequest()
        {
            //------------Setup for test--------------------------
            var rm = new Mock<IContextualResourceModel>();
            rm.Setup(r => r.ServerID).Returns(_serverID);
            rm.Setup(r => r.ResourceName).Returns(ResourceName);
            rm.Setup(r => r.WorkflowXaml).Returns(new StringBuilder(StringResourcesTest.DebugInputWindow_WorkflowXaml));
            rm.Setup(r => r.ID).Returns(_resourceID);
            rm.Setup(r => r.DataList).Returns(StringResourcesTest.DebugInputWindow_DataList);
            var mockEnvironmentModel = new Mock<IEnvironmentModel>();
            mockEnvironmentModel.Setup(model => model.ID).Returns(Guid.Empty);
            var mockEnvironmentConnection = new Mock<IEnvironmentConnection>();
            mockEnvironmentModel.Setup(model => model.Connection).Returns(mockEnvironmentConnection.Object);
            rm.Setup(model => model.Environment).Returns(mockEnvironmentModel.Object);

            var serviceDebugInfoModel = new ServiceDebugInfoModel
            {
                DebugModeSetting = DebugMode.DebugInteractive,
                RememberInputs = true,
                ResourceModel = rm.Object,
                ServiceInputData = "<DataList></DataList>"
            };

            var debugOutputViewModel = CreateDebugOutputViewModel();
            var workflowInputDataViewModel = new WorkflowInputDataViewModelMock(serviceDebugInfoModel, debugOutputViewModel);
            workflowInputDataViewModel.DebugExecutionStart += () => debugOutputViewModel.DebugStatus = DebugStatus.Executing;
            //------------Execute Test---------------------------
            workflowInputDataViewModel.ExecuteWorkflow();

            //------------Assert Results-------------------------
            Assert.AreEqual(DebugStatus.Executing, debugOutputViewModel.DebugStatus);

            Assert.AreEqual(1, workflowInputDataViewModel.SendExecuteRequestHitCount);
            Assert.IsNotNull(workflowInputDataViewModel.SendExecuteRequestPayload);

            var payload = XElement.Parse(workflowInputDataViewModel.DebugTo.XmlData);
            payload.Add(new XElement("BDSDebugMode", workflowInputDataViewModel.DebugTo.IsDebugMode));
            payload.Add(new XElement("DebugSessionID", workflowInputDataViewModel.DebugTo.SessionID));
            payload.Add(new XElement("EnvironmentID", Guid.Empty));

            var expectedPayload = payload.ToString(SaveOptions.None);
            var actualPayload = workflowInputDataViewModel.SendExecuteRequestPayload.ToString(SaveOptions.None);
            Assert.AreEqual(expectedPayload, actualPayload);
        }
        public void WorkflowInputDataViewModel_ExecuteWorkflowViewInBrowser_InvokesSendViewInBrowserRequest_ScalarsOnly()
        {
            //------------Setup for test--------------------------
            const string datalist = @"<DataList><val IsEditable=""True"" ColumnIODirection=""Input""/><res IsEditable=""True"" ColumnIODirection=""Input""/></DataList>";
            var rm = new Mock<IContextualResourceModel>();
            rm.Setup(r => r.ServerID).Returns(_serverID);
            rm.Setup(r => r.ResourceName).Returns("AnotherWorkflow");
            rm.Setup(r => r.WorkflowXaml).Returns(new StringBuilder(StringResourcesTest.DebugInputWindow_WorkflowXaml));
            rm.Setup(r => r.ID).Returns(_resourceID);
            rm.Setup(r => r.DataList).Returns(datalist);
            var mockEnvironmentModel = new Mock<IEnvironmentModel>();
            mockEnvironmentModel.Setup(model => model.ID).Returns(Guid.Empty);
            var mockEnvironmentConnection = new Mock<IEnvironmentConnection>();
            mockEnvironmentModel.Setup(model => model.Connection).Returns(mockEnvironmentConnection.Object);
            rm.Setup(model => model.Environment).Returns(mockEnvironmentModel.Object);

            var serviceDebugInfoModel = new ServiceDebugInfoModel
            {
                DebugModeSetting = DebugMode.DebugInteractive,
                RememberInputs = true,
                ResourceModel = rm.Object,
                ServiceInputData = datalist
            };

            var debugOutputViewModel = CreateDebugOutputViewModel();
            var workflowInputDataViewModel = new WorkflowInputDataViewModelMock(serviceDebugInfoModel, debugOutputViewModel) { DebugTo = { DataList = datalist } };
            workflowInputDataViewModel.LoadWorkflowInputs();
            workflowInputDataViewModel.XmlData = @"<DataList><val>1</val><res>2</res></DataList>";
            workflowInputDataViewModel.SetWorkflowInputData();
            //------------Execute Test---------------------------
            workflowInputDataViewModel.ViewInBrowser();
            //------------Assert Results-------------------------
            Assert.AreEqual(1, workflowInputDataViewModel.SendViewInBrowserRequestHitCount);
            Assert.IsNotNull(workflowInputDataViewModel.SendViewInBrowserRequestPayload);
            const string expectedPayload = @"val=1&res=2";
            var actualPayload = workflowInputDataViewModel.SendViewInBrowserRequestPayload;
            Assert.AreEqual(expectedPayload, actualPayload);
        }