public void WorkflowDesignerViewModel_LinkName_SavedDebugData_ShouldReturnUrlWithDataListUsingSavedData() { //------------Setup for test-------------------------- var workflow = new ActivityBuilder { Implementation = new Flowchart { StartNode = CreateFlowNode(Guid.NewGuid(), "CanSaveTest", true, typeof(TestActivity)) } }; #region Setup viewModel var resourceRep = new Mock<IResourceRepository>(); resourceRep.Setup(r => r.All()).Returns(new List<IResourceModel>()); resourceRep.Setup(r => r.FetchResourceDefinition(It.IsAny<IEnvironmentModel>(), It.IsAny<Guid>(), It.IsAny<Guid>(), It.IsAny<bool>())).Returns(new ExecuteMessage()); resourceRep.Setup(repository => repository.Save(It.IsAny<IResourceModel>())).Verifiable(); var resourceModel = new Mock<IContextualResourceModel>(); var mockEnvironmentModel = new Mock<IEnvironmentModel>(); var mockConnection = new Mock<IEnvironmentConnection>(); mockConnection.Setup(connection => connection.IsConnected).Returns(true); mockConnection.Setup(connection => connection.WebServerUri).Returns(new Uri("http://myMachineName:3142")); mockEnvironmentModel.Setup(model => model.Connection).Returns(mockConnection.Object); resourceModel.Setup(m => m.Environment).Returns(mockEnvironmentModel.Object); resourceModel.Setup(m => m.Environment.IsConnected).Returns(true); resourceModel.Setup(m => m.Environment.ResourceRepository).Returns(resourceRep.Object); resourceModel.Setup(m => m.Environment.Connection).Returns(mockConnection.Object); resourceModel.Setup(model => model.IsNewWorkflow).Returns(true); resourceModel.Setup(model => model.Category).Returns("myservice"); resourceModel.Setup(model => model.ResourceName).Returns("myservice"); resourceModel.Setup(model => model.DataList).Returns(StringResourcesTest.DebugInputWindow_DataList); var workflowInputDataViewModel = WorkflowInputDataViewModel.Create(resourceModel.Object); workflowInputDataViewModel.LoadWorkflowInputs(); workflowInputDataViewModel.WorkflowInputs[0].Value = "1"; workflowInputDataViewModel.WorkflowInputs[1].Value = "2"; workflowInputDataViewModel.DoSaveActions(); var workflowHelper = new Mock<IWorkflowHelper>(); workflowHelper.Setup(h => h.CreateWorkflow(It.IsAny<string>())).Returns(workflow); workflowHelper.Setup(helper => helper.SerializeWorkflow(It.IsAny<ModelService>())).Returns(new StringBuilder("my workflow")); var viewModel = new WorkflowDesignerViewModelMock(resourceModel.Object, workflowHelper.Object); viewModel.InitializeDesigner(new Dictionary<Type, Type>()); resourceModel.SetupProperty(model => model.WorkflowXaml); #endregion //------------Assert Preconditions------------------- Assert.IsNull(resourceModel.Object.WorkflowXaml); //------------Execute Test--------------------------- var workflowLink = viewModel.GetWorkflowLink(); var displayWorkflowLink = viewModel.DisplayWorkflowLink; //------------Assert Results------------------------- Assert.AreEqual("http://mymachinename:3142/secure/myservice.json?scalar1=1&scalar2=2&wid=00000000-0000-0000-0000-000000000000", workflowLink); Assert.AreEqual("http://mymachinename:3142/secure/myservice.json?scalar1=1&scalar2=2", displayWorkflowLink); workflowInputDataViewModel.WorkflowInputs[0].Value = ""; workflowInputDataViewModel.WorkflowInputs[1].Value = ""; workflowInputDataViewModel.DoSaveActions(); }
public void WorkflowDesignerViewModel_LinkName_HasDataListNoInputs_ShouldReturnUrlEmptyDataListPortion() { //------------Setup for test-------------------------- var workflow = new ActivityBuilder { Implementation = new Flowchart { StartNode = CreateFlowNode(Guid.NewGuid(), "CanSaveTest", true, typeof(TestActivity)) } }; #region Setup viewModel var resourceRep = new Mock<IResourceRepository>(); resourceRep.Setup(r => r.All()).Returns(new List<IResourceModel>()); resourceRep.Setup(r => r.FetchResourceDefinition(It.IsAny<IEnvironmentModel>(), It.IsAny<Guid>(), It.IsAny<Guid>(), It.IsAny<bool>())).Returns(new ExecuteMessage()); resourceRep.Setup(repository => repository.Save(It.IsAny<IResourceModel>())).Verifiable(); var resourceModel = new Mock<IContextualResourceModel>(); var mockEnvironmentModel = new Mock<IEnvironmentModel>(); var mockConnection = new Mock<IEnvironmentConnection>(); mockConnection.Setup(connection => connection.IsConnected).Returns(true); mockConnection.Setup(connection => connection.WebServerUri).Returns(new Uri("http://myMachineName:3142")); mockEnvironmentModel.Setup(model => model.Connection).Returns(mockConnection.Object); resourceModel.Setup(m => m.Environment).Returns(mockEnvironmentModel.Object); resourceModel.Setup(m => m.Environment.IsConnected).Returns(true); resourceModel.Setup(m => m.Environment.ResourceRepository).Returns(resourceRep.Object); resourceModel.Setup(m => m.Environment.Connection).Returns(mockConnection.Object); resourceModel.Setup(model => model.IsNewWorkflow).Returns(true); resourceModel.Setup(model => model.Category).Returns("myservice"); resourceModel.Setup(model => model.ResourceName).Returns("myservice"); resourceModel.Setup(model => model.DataList).Returns(StringResourcesTest.DebugInputWindow_NoInputs_XMLData); var workflowHelper = new Mock<IWorkflowHelper>(); workflowHelper.Setup(h => h.CreateWorkflow(It.IsAny<string>())).Returns(workflow); workflowHelper.Setup(helper => helper.SerializeWorkflow(It.IsAny<ModelService>())).Returns(new StringBuilder("my workflow")); var mockPopController = new Mock<IPopupController>(); mockPopController.Setup(controller => controller.ShowNoInputsSelectedWhenClickLink()).Verifiable(); var viewModel = new WorkflowDesignerViewModelMock(resourceModel.Object, workflowHelper.Object, mockPopController.Object); viewModel.InitializeDesigner(new Dictionary<Type, Type>()); resourceModel.SetupProperty(model => model.WorkflowXaml); #endregion //------------Assert Preconditions------------------- Assert.IsNull(resourceModel.Object.WorkflowXaml); //------------Execute Test--------------------------- var workflowLink = viewModel.GetWorkflowLink(); var displayWorkflowLink = viewModel.DisplayWorkflowLink; viewModel.OpenWorkflowLinkCommand.Execute("Do not perform action"); //------------Assert Results------------------------- Assert.AreEqual("http://mymachinename:3142/secure/myservice.json?<DataList></DataList>&wid=00000000-0000-0000-0000-000000000000", workflowLink); Assert.AreEqual("http://mymachinename:3142/secure/myservice.json?<DataList></DataList>", displayWorkflowLink); mockPopController.Verify(controller => controller.ShowNoInputsSelectedWhenClickLink(), Times.Once()); }