protected override void BuildDataList() { BuildShapeAndTestData(); var decisionActivity = new DsfFlowDecisionActivity(); scenarioContext.TryGetValue("mode", out Dev2DecisionMode mode); var decisionModels = scenarioContext.Get <List <Tuple <string, enDecisionType, string, string> > >("decisionModels"); var dds = new Dev2DecisionStack { TheStack = new List <Dev2Decision>(), Mode = mode, TrueArmText = "YES", FalseArmText = "NO" }; foreach (var dm in decisionModels) { var dev2Decision = new Dev2Decision { Col1 = dm.Item1 ?? string.Empty, EvaluationFn = dm.Item2, Col2 = dm.Item3 ?? string.Empty, Col3 = dm.Item4 ?? string.Empty }; dds.AddModelItem(dev2Decision); } var modelData = dds.ToVBPersistableModel(); scenarioContext.Add("modelData", modelData); decisionActivity.ExpressionText = string.Join("", GlobalConstants.InjectedDecisionHandler, "(\"", modelData, "\",", GlobalConstants.InjectedDecisionDataListVariable, ")"); scenarioContext.TryGetValue("variableList", out List <Tuple <string, string> > variableList); if (variableList == null) { variableList = new List <Tuple <string, string> >(); scenarioContext.Add("variableList", variableList); } var multiAssign = new DsfMultiAssignActivity(); var row = 1; foreach (var variable in variableList) { multiAssign.FieldsCollection.Add(new ActivityDTO(variable.Item1, variable.Item2, row, true)); row++; } var x = new FlowDecision(); x.Condition = decisionActivity; TestStartNode = new FlowStep { Action = multiAssign, Next = x }; scenarioContext.Add("activity", decisionActivity); }
public void SequenceActivityFindMissingStrategy_GetActivityFields_WithAssignAndDecision_ReturnsAllVariables() { //------------Setup for test-------------------------- var multiAssignActivity = new DsfMultiAssignActivity { FieldsCollection = new List <ActivityDTO> { new ActivityDTO("[[AssignRight1]]", "[[AssignLeft1]]", 1), new ActivityDTO("[[AssignRight2]]", "[[AssignLeft2]]", 2) } }; var decisionActivity = new DsfFlowDecisionActivity { OnErrorVariable = "[[error]]" }; var activity = new DsfSequenceActivity(); activity.Activities.Add(multiAssignActivity); activity.Activities.Add(decisionActivity); var fac = new Dev2FindMissingStrategyFactory(); var strategy = fac.CreateFindMissingStrategy(enFindMissingType.Sequence); //------------Execute Test--------------------------- var actual = strategy.GetActivityFields(activity); //------------Assert Results------------------------- var expected = new List <string> { "[[AssignRight1]]", "[[AssignLeft1]]", "[[AssignRight2]]", "[[AssignLeft2]]", "[[error]]" }; CollectionAssert.AreEqual(expected, actual); }
protected override void BuildDataList() { BuildShapeAndTestData(); var decisionActivity = new DsfFlowDecisionActivity(); Dev2DecisionMode mode; ScenarioContext.Current.TryGetValue("mode", out mode); var decisionModels = ScenarioContext.Current.Get<List<Tuple<string, enDecisionType, string, string>>>("decisionModels"); var dds = new Dev2DecisionStack { TheStack = new List<Dev2Decision>(), Mode = mode, TrueArmText = "YES", FalseArmText = "NO" }; foreach(var dm in decisionModels) { var dev2Decision = new Dev2Decision { Col1 = dm.Item1 ?? string.Empty, EvaluationFn = dm.Item2, Col2 = dm.Item3 ?? string.Empty, Col3 = dm.Item4 ?? string.Empty }; dds.AddModelItem(dev2Decision); } string modelData = dds.ToVBPersistableModel(); ScenarioContext.Current.Add("modelData", modelData); decisionActivity.ExpressionText = string.Join("", GlobalConstants.InjectedDecisionHandler, "(\"", modelData, "\",", GlobalConstants.InjectedDecisionDataListVariable, ")"); List<Tuple<string, string>> variableList; ScenarioContext.Current.TryGetValue("variableList", out variableList); if(variableList == null) { variableList = new List<Tuple<string, string>>(); ScenarioContext.Current.Add("variableList", variableList); } var multiAssign = new DsfMultiAssignActivity(); int row = 1; foreach(var variable in variableList) { multiAssign.FieldsCollection.Add(new ActivityDTO(variable.Item1, variable.Item2, row, true)); row++; } FlowDecision x = new FlowDecision(); x.Condition=decisionActivity; TestStartNode = new FlowStep { Action = multiAssign, Next = x }; ScenarioContext.Current.Add("activity", decisionActivity); }
public void Workflow_WorkflowNodesForHtml_FlowDecision_HandlingNestedObjects_With_NoFalseArm_ShouldSuccess() { var dev2DecisionStack = new Dev2DecisionStack { TheStack = new List <Dev2Decision> { new Dev2Decision { Cols1 = new List <DataStorage.WarewolfAtom> { DataStorage.WarewolfAtom.NewDataString("a") } }, new Dev2Decision { Cols1 = new List <DataStorage.WarewolfAtom> { DataStorage.WarewolfAtom.NewDataString("a") } } }, DisplayText = "a", FalseArmText = "ErrorArm", TrueArmText = "true Arm", Version = "2", Mode = Dev2DecisionMode.AND }; var jsonSerializer = new Dev2JsonSerializer(); var flowDecisionActivity = new DsfFlowDecisionActivity { ExpressionText = jsonSerializer.Serialize(dev2DecisionStack) }; var flowNodes = new Collection <FlowNode> { new FlowDecision(flowDecisionActivity) { DisplayName = "Decision (sdf)", True = new FlowStep { Action = new DsfMultiAssignActivity { DisplayName = "Assign (success)" } }, } }; var sut = new Workflow(flowNodes); var nodes = sut.WorkflowNodesForHtml; Assert.AreEqual(1, nodes.Count); Assert.AreEqual(1, nodes[0].NextNodes.Count); Assert.AreEqual(2, sut.WorkflowNodes.Count); }
public void DsfFlowDecisionActivity_GetState_ReturnsStateVariable() { //---------------Set up test pack------------------- //------------Setup for test-------------------------- var act = new DsfFlowDecisionActivity(); //------------Execute Test--------------------------- var stateItems = act.GetState(); //------------Assert Results------------------------- Assert.AreEqual(0, stateItems.Count()); }
public void UniqueIDSame_EmptyAssigns_IsEqual() { //---------------Set up test pack------------------- var decisionActivity = new DsfFlowDecisionActivity(); var decision = new Dev2.Activities.DsfDecision(decisionActivity); var decision1 = new Dev2.Activities.DsfDecision(decisionActivity); //---------------Assert Precondition---------------- Assert.IsNotNull(decision); //---------------Execute Test ---------------------- var equals = decision.Equals(decision1); //---------------Test Result ----------------------- Assert.IsTrue(equals);//This Id is meaningless }
public void ConflictModelFactory_GivenDsfDecisionConflictNode_ShouldReturnMergeToolModel() { //------------Setup for test-------------------------- var adapter = new Mock <IApplicationAdaptor>(); adapter.Setup(p => p.TryFindResource(It.IsAny <object>())).Returns(new object()); CustomContainer.Register(adapter.Object); var node = new Mock <IConflictTreeNode>(); var contextualResource = new Mock <IContextualResourceModel>(); var dev2DecisionStack = new Dev2DecisionStack { TheStack = new List <Dev2Decision>(), TrueArmText = "a", FalseArmText = "a", DisplayText = "a", Mode = Dev2DecisionMode.AND }; var serializer = new Dev2JsonSerializer(); var serialize = serializer.Serialize(dev2DecisionStack); var condition = new DsfFlowDecisionActivity { ExpressionText = serialize }; var value = new DsfDecision(condition) { Conditions = dev2DecisionStack }; var assignStep = new FlowStep { Action = value }; node.Setup(p => p.Activity).Returns(value); var toolConflictItem = new ToolConflictItem(new ViewModels.Merge.Utils.ConflictRowList(new Mock <IConflictModelFactory>().Object, new Mock <IConflictModelFactory>().Object, new List <ConflictTreeNode>(), new List <ConflictTreeNode>()), ViewModels.Merge.Utils.ConflictRowList.Column.Current); //------------Execute Test--------------------------- var completeConflict = new ConflictModelFactory(toolConflictItem, contextualResource.Object, node.Object); //------------Assert Results------------------------- Assert.IsNotNull(completeConflict); adapter.Verify(p => p.TryFindResource(It.IsAny <object>())); var mergeToolModel = completeConflict.CreateModelItem(toolConflictItem, node.Object); Assert.AreEqual("a", mergeToolModel.MergeDescription); Assert.AreEqual(typeof(DecisionDesignerViewModel).FullName, ((ToolConflictItem)mergeToolModel).ActivityDesignerViewModel.GetType().FullName); }
public void WorkflowHelperCompileExpressionsWithActivityExpectedCompilesExpressionsAddsToCacheThenInvalidate() { const string ExpressionParams = "(\"\",AmbientDataList)"; var fsa = new DsfFlowSwitchActivity { ExpressionText = GlobalConstants.InjectedSwitchDataFetchOld + ExpressionParams }; var fda = new DsfFlowDecisionActivity { ExpressionText = GlobalConstants.InjectedDecisionHandlerOld + ExpressionParams }; var startNode = new FlowStep { Action = new CommentActivityForTest() }; var chart = new Flowchart { StartNode = startNode }; chart.Nodes.Add(startNode); chart.Nodes.Add(new FlowDecision(fda)); chart.Nodes.Add(new FlowSwitch <string> { Expression = fsa }); var workflow = new DynamicActivity { Implementation = () => chart }; var guid = Guid.NewGuid(); new WorkflowHelper().CompileExpressions(workflow, guid); // No exception thrown means compilation worked var compiledExpressionRoot = CompiledExpressionInvoker.GetCompiledExpressionRootForImplementation(workflow) as ICompiledExpressionRoot; Assert.AreEqual(GlobalConstants.Resultscache.Count, 1); GlobalConstants.InvalidateCache(guid); Assert.AreEqual(GlobalConstants.Resultscache.Count, 0); Assert.IsNotNull(compiledExpressionRoot); }
public void SequenceActivityFindMissingStrategy_GetActivityFields_WithAssignAndDecision_ReturnsAllVariables() { //------------Setup for test-------------------------- DsfMultiAssignActivity multiAssignActivity = new DsfMultiAssignActivity { FieldsCollection = new List<ActivityDTO> { new ActivityDTO("[[AssignRight1]]", "[[AssignLeft1]]", 1), new ActivityDTO("[[AssignRight2]]", "[[AssignLeft2]]", 2) } }; DsfFlowDecisionActivity decisionActivity = new DsfFlowDecisionActivity { OnErrorVariable = "[[error]]" }; DsfSequenceActivity activity = new DsfSequenceActivity(); activity.Activities.Add(multiAssignActivity); activity.Activities.Add(decisionActivity); Dev2FindMissingStrategyFactory fac = new Dev2FindMissingStrategyFactory(); IFindMissingStrategy strategy = fac.CreateFindMissingStrategy(enFindMissingType.Sequence); //------------Execute Test--------------------------- List<string> actual = strategy.GetActivityFields(activity); //------------Assert Results------------------------- List<string> expected = new List<string> { "[[AssignRight1]]", "[[AssignLeft1]]", "[[AssignRight2]]", "[[AssignLeft2]]", "[[error]]" }; CollectionAssert.AreEqual(expected, actual); }
public void WorkflowHelperCompileExpressionsWithActivityExpectedFixesExpressions() { const string ExpressionParams = "(\"\",AmbientDataList)"; var fsa = new DsfFlowSwitchActivity { ExpressionText = GlobalConstants.InjectedSwitchDataFetchOld + ExpressionParams }; var fda = new DsfFlowDecisionActivity { ExpressionText = GlobalConstants.InjectedDecisionHandlerOld + ExpressionParams }; var fdv = new VisualBasicValue <Boolean>(GlobalConstants.InjectedDecisionHandlerOld + ExpressionParams); var fsv = new VisualBasicValue <string>(GlobalConstants.InjectedSwitchDataFetchOld + ExpressionParams); var startNode = new FlowStep { Action = new CommentActivityForTest() }; var chart = new Flowchart { StartNode = startNode }; chart.Nodes.Add(startNode); chart.Nodes.Add(new FlowDecision(fda)); chart.Nodes.Add(new FlowSwitch <string> { Expression = fsa }); chart.Nodes.Add(new FlowDecision(fdv)); chart.Nodes.Add(new FlowSwitch <string> { Expression = fsv }); var workflow = new DynamicActivity { Implementation = () => chart }; new WorkflowHelper().CompileExpressions(workflow); Assert.AreEqual(GlobalConstants.InjectedSwitchDataFetch + ExpressionParams, fsa.ExpressionText); Assert.AreEqual(GlobalConstants.InjectedDecisionHandler + ExpressionParams, fda.ExpressionText); }
// ReSharper disable InconsistentNaming public void FlowController_HandleConfigureDecisionExpressionMessageAndIsNewFalse_WizardShown() // ReSharper restore InconsistentNaming { #region setup first Mock ModelItem var env = EnviromentRepositoryTest.CreateMockEnvironment(); var properties = new Dictionary <string, Mock <ModelProperty> >(); var propertyCollection = new Mock <ModelPropertyCollection>(); var testAct = new DsfFlowDecisionActivity { ExpressionText = "Not Null Test Value" }; var prop = new Mock <ModelProperty>(); prop.Setup(p => p.ComputedValue).Returns(testAct); properties.Add("Condition", prop); propertyCollection.Protected().Setup <ModelProperty>("Find", "Condition", true).Returns(prop.Object); var source = new Mock <ModelItem>(); source.Setup(s => s.Properties).Returns(propertyCollection.Object); #endregion #region setup decision Mock ModelItem var crmDecision = new Mock <IContextualResourceModel>(); crmDecision.Setup(r => r.Environment).Returns(env.Object); crmDecision.Setup(r => r.ResourceName).Returns("Test"); crmDecision.Setup(res => res.WorkflowXaml).Returns(new StringBuilder(StringResourcesTest.xmlServiceDefinition)); var decisionProperties = new Dictionary <string, Mock <ModelProperty> >(); var decisionPropertyCollection = new Mock <ModelPropertyCollection>(); var decisionProp = new Mock <ModelProperty>(); decisionProp.Setup(p => p.ComputedValue).Returns(string.Empty); decisionProperties.Add("Condition", decisionProp); decisionPropertyCollection.Protected().Setup <ModelProperty>("Find", "Condition", true).Returns(decisionProp.Object); var decisionModelItem = new Mock <ModelItem>(); decisionModelItem.Setup(s => s.Properties).Returns(decisionPropertyCollection.Object); decisionModelItem.Setup(s => s.ItemType).Returns(typeof(FlowDecision)); prop.Setup(p => p.Value).Returns(decisionModelItem.Object); #endregion #region setup Environment Model env.Setup(c => c.Connection).Returns(new Mock <IEnvironmentConnection>().Object); #endregion #region setup Start Decision Wizard var flowController = new Mock <FlowController>(new Mock <IPopupController>().Object); flowController.Protected().Setup("StartDecisionWizard", ItExpr.IsAny <IEnvironmentModel>(), ItExpr.IsAny <string>()).Verifiable(); #endregion flowController.Object.Handle(new ConfigureDecisionExpressionMessage { ModelItem = source.Object, EnvironmentModel = env.Object, IsNew = false }); flowController.Protected().Verify("StartDecisionWizard", Times.Once(), ItExpr.IsAny <IEnvironmentModel>(), ItExpr.IsAny <string>()); }
public void Workflow_Given_WorkflowNodesForHtml_Executed_WorkflowNodes_FlowDecision_HandlingNestedObjects_ShouldReturnAllNodes() { var dev2DecisionStack = new Dev2DecisionStack { TheStack = new List <Dev2Decision> { new Dev2Decision { Cols1 = new List <DataStorage.WarewolfAtom> { DataStorage.WarewolfAtom.NewDataString("a") } }, new Dev2Decision { Cols1 = new List <DataStorage.WarewolfAtom> { DataStorage.WarewolfAtom.NewDataString("a") } } }, DisplayText = "a", FalseArmText = "ErrorArm", TrueArmText = "true Arm", Version = "2", Mode = Dev2DecisionMode.AND }; var jsonSerializer = new Dev2JsonSerializer(); var flowDecisionActivity = new DsfFlowDecisionActivity { ExpressionText = jsonSerializer.Serialize(dev2DecisionStack) }; var flowNodes = new Collection <FlowNode> { new FlowDecision(flowDecisionActivity) { DisplayName = "Decision (sdf)", True = new FlowStep { Action = new DsfMultiAssignActivity { DisplayName = "Assign (success)" } }, False = new FlowStep { Action = new DsfMultiAssignActivity { DisplayName = "Assign (fail)", NextNodes = new List <IDev2Activity> { new DsfCommentActivity { DisplayName = "Comment (this activity should not be part of the coverage)" }, new DsfMultiAssignActivity { DisplayName = "Assign (child node)" } } } } } }; var sut = new Workflow(flowNodes); var nodes = sut.WorkflowNodesForHtml; Assert.AreEqual(1, nodes.Count); Assert.AreEqual(2, nodes[0].NextNodes.Count); Assert.AreEqual(3, sut.WorkflowNodes.Count); }
// ReSharper disable InconsistentNaming public void FlowController_HandleConfigureDecisionExpressionMessageAndIsNewFalse_WizardShown() // ReSharper restore InconsistentNaming { #region setup first Mock ModelItem var env = EnviromentRepositoryTest.CreateMockEnvironment(); var properties = new Dictionary<string, Mock<ModelProperty>>(); var propertyCollection = new Mock<ModelPropertyCollection>(); var testAct = new DsfFlowDecisionActivity { ExpressionText = "Not Null Test Value" }; var prop = new Mock<ModelProperty>(); prop.Setup(p => p.ComputedValue).Returns(testAct); properties.Add("Condition", prop); propertyCollection.Protected().Setup<ModelProperty>("Find", "Condition", true).Returns(prop.Object); var source = new Mock<ModelItem>(); source.Setup(s => s.Properties).Returns(propertyCollection.Object); #endregion #region setup decision Mock ModelItem var crmDecision = new Mock<IContextualResourceModel>(); crmDecision.Setup(r => r.Environment).Returns(env.Object); crmDecision.Setup(r => r.ResourceName).Returns("Test"); crmDecision.Setup(res => res.WorkflowXaml).Returns(new StringBuilder(StringResourcesTest.xmlServiceDefinition)); var decisionProperties = new Dictionary<string, Mock<ModelProperty>>(); var decisionPropertyCollection = new Mock<ModelPropertyCollection>(); var decisionProp = new Mock<ModelProperty>(); decisionProp.Setup(p => p.ComputedValue).Returns(string.Empty); decisionProperties.Add("Condition", decisionProp); decisionPropertyCollection.Protected().Setup<ModelProperty>("Find", "Condition", true).Returns(decisionProp.Object); var decisionModelItem = new Mock<ModelItem>(); decisionModelItem.Setup(s => s.Properties).Returns(decisionPropertyCollection.Object); decisionModelItem.Setup(s => s.ItemType).Returns(typeof(FlowDecision)); prop.Setup(p => p.Value).Returns(decisionModelItem.Object); #endregion #region setup Environment Model env.Setup(c => c.Connection).Returns(new Mock<IEnvironmentConnection>().Object); #endregion #region setup Start Decision Wizard var flowController = new Mock<FlowController>(new Mock<IPopupController>().Object); flowController.Protected().Setup("StartDecisionWizard", ItExpr.IsAny<IEnvironmentModel>(), ItExpr.IsAny<string>()).Verifiable(); #endregion flowController.Object.Handle(new ConfigureDecisionExpressionMessage { ModelItem = source.Object, EnvironmentModel = env.Object, IsNew = false }); flowController.Protected().Verify("StartDecisionWizard", Times.Once(), ItExpr.IsAny<IEnvironmentModel>(), ItExpr.IsAny<string>()); }
public void WorkflowHelperCompileExpressionsWithActivityExpectedCompilesExpressionsAddsToCacheThenInvalidate() { const string ExpressionParams = "(\"\",AmbientDataList)"; var fsa = new DsfFlowSwitchActivity { ExpressionText = GlobalConstants.InjectedSwitchDataFetchOld + ExpressionParams }; var fda = new DsfFlowDecisionActivity { ExpressionText = GlobalConstants.InjectedDecisionHandlerOld + ExpressionParams }; var startNode = new FlowStep { Action = new CommentActivityForTest() }; var chart = new Flowchart { StartNode = startNode }; chart.Nodes.Add(startNode); chart.Nodes.Add(new FlowDecision(fda)); chart.Nodes.Add(new FlowSwitch<string> { Expression = fsa }); var workflow = new DynamicActivity { Implementation = () => chart }; var guid = Guid.NewGuid(); new WorkflowHelper().CompileExpressions(workflow, guid); // No exception thrown means compilation worked var compiledExpressionRoot = CompiledExpressionInvoker.GetCompiledExpressionRootForImplementation(workflow) as ICompiledExpressionRoot; Assert.AreEqual(GlobalConstants.Resultscache.Count, 1); GlobalConstants.InvalidateCache(guid); Assert.AreEqual(GlobalConstants.Resultscache.Count, 0); Assert.IsNotNull(compiledExpressionRoot); }
public void FlowDecision_GetDifferences_WhenMainDecisionModified_DecisionToolHasConflict() { var activityParser = new ActivityParser(); var shellView = new Mock <IShellViewModel>(); var serverMock = new Mock <IServer>(); shellView.Setup(model => model.ActiveServer).Returns(serverMock.Object); CustomContainer.Register(shellView.Object); CustomContainer.Register <IActivityParser>(activityParser); var deicisionId = Guid.NewGuid().ToString(); var bb = new DsfFlowDecisionActivity { UniqueID = deicisionId }; var jsonSerializer = new Dev2JsonSerializer(); var dev2DecisionStack = new Dev2DecisionStack { TheStack = new List <Dev2Decision> { new Dev2Decision { Cols1 = new List <DataStorage.WarewolfAtom> { DataStorage.WarewolfAtom.NewDataString("a") } }, new Dev2Decision { Cols1 = new List <DataStorage.WarewolfAtom> { DataStorage.WarewolfAtom.NewDataString("a") } } }, DisplayText = "a", FalseArmText = "ErrorArm", TrueArmText = "true Arm", Version = "2", Mode = Dev2DecisionMode.AND }; bb.ExpressionText = jsonSerializer.Serialize(dev2DecisionStack); var bb2 = new DsfFlowDecisionActivity { UniqueID = deicisionId }; var dev2DecisionStack2 = new Dev2DecisionStack { TheStack = new List <Dev2Decision> { new Dev2Decision { Cols1 = new List <DataStorage.WarewolfAtom> { DataStorage.WarewolfAtom.NewDataString("a") } }, new Dev2Decision { Cols1 = new List <DataStorage.WarewolfAtom> { DataStorage.WarewolfAtom.NewDataString("a") } } }, DisplayText = "changed", FalseArmText = "false", TrueArmText = "true", Version = "2", Mode = Dev2DecisionMode.AND }; bb2.ExpressionText = jsonSerializer.Serialize(dev2DecisionStack2); var assignId = Guid.NewGuid().ToString(); var calcActivity = new DsfCalculateActivity { UniqueID = assignId }; var chart = new Flowchart { StartNode = new FlowStep { Action = calcActivity, Next = new FlowDecision { DisplayName = "DisplayName", True = new FlowStep { Action = calcActivity }, Condition = bb } } }; var otherChart = new Flowchart { StartNode = new FlowStep { Action = calcActivity, Next = new FlowDecision { DisplayName = "DisplayName", True = new FlowStep { Action = calcActivity }, Condition = bb2 } } }; var current = ParserTestHelper.CreateContextualResourceModel(otherChart); var diff = ParserTestHelper.CreateContextualResourceModel(chart); var psd = new ServiceDifferenceParser(); var(currentTree, diffTree) = psd.GetDifferences(current, diff); var currConflicts = currentTree; var diffConflicts = diffTree; var count = currConflicts.Count + diffConflicts.Count; Assert.AreEqual(4, count); Assert.IsFalse(diffTree.First().IsInConflict); Assert.IsFalse(currentTree.First().IsInConflict); Assert.IsFalse(diffTree.Last().IsInConflict); Assert.IsFalse(currentTree.Last().IsInConflict); Assert.AreEqual(assignId, diffTree[0].UniqueId); Assert.AreEqual(assignId, currentTree[0].UniqueId); //First Node chart var tupleDifference = diffTree[0]; var tupleCurrent = currentTree[0]; Assert.IsNotNull(tupleDifference); Assert.IsNotNull(tupleCurrent); var devActivityDiff = tupleDifference.Activity; var devActivityCurr = tupleCurrent.Activity; Assert.IsNotNull(devActivityDiff); Assert.IsNotNull(devActivityCurr); Assert.AreEqual(assignId, devActivityCurr.UniqueID); Assert.AreEqual(assignId, devActivityDiff.UniqueID); //Decision Node chart var tupleDifference1 = diffTree[1]; var tupleCurrent1 = currentTree[1]; Assert.IsNotNull(tupleDifference1); Assert.IsNotNull(tupleCurrent1); var devActivityDiff1 = tupleDifference1.Activity; var devActivityCurr1 = tupleCurrent1.Activity; Assert.IsNotNull(devActivityDiff1); Assert.IsNotNull(devActivityCurr1); Assert.IsFalse(devActivityDiff1.Equals(devActivityCurr1)); }
public DsfDecision(DsfFlowDecisionActivity inner) { _inner = inner; }
public DsfDecision(DsfFlowDecisionActivity inner) : this() { _inner = inner; UniqueID = _inner.UniqueID; }
public void FlowDecision_GetDifferences_WhenArmToolsTheSame_DecisionHasNoConflict() { var activityParser = new ActivityParser(); var shellView = new Mock <IShellViewModel>(); var serverMock = new Mock <IServer>(); shellView.Setup(model => model.ActiveServer).Returns(serverMock.Object); CustomContainer.Register(shellView.Object); CustomContainer.Register <IActivityParser>(activityParser); var bb = new DsfFlowDecisionActivity(); var jsonSerializer = new Dev2JsonSerializer(); var toolId1 = Guid.NewGuid().ToString(); var toolId2 = Guid.NewGuid().ToString(); var dev2DecisionStack = new Dev2DecisionStack { TheStack = new List <Dev2Decision> { new Dev2Decision { Cols1 = new List <DataStorage.WarewolfAtom> { DataStorage.WarewolfAtom.NewDataString("a") } }, new Dev2Decision { Cols1 = new List <DataStorage.WarewolfAtom> { DataStorage.WarewolfAtom.NewDataString("a") } } }, DisplayText = "a", FalseArmText = "ErrorArm", TrueArmText = "true Arm", Version = "2", Mode = Dev2DecisionMode.AND }; bb.ExpressionText = jsonSerializer.Serialize(dev2DecisionStack); var assignId = Guid.NewGuid().ToString(); var chart = new Flowchart { StartNode = new FlowStep { Action = new DsfMultiAssignActivity { FieldsCollection = new List <ActivityDTO> { new ActivityDTO("field1", "field1", 1), new ActivityDTO("field2", "field2", 4), new ActivityDTO("field3", "field3", 3), new ActivityDTO("field3", "field3", 2), }, UniqueID = assignId }, Next = new FlowDecision { DisplayName = "DisplayName", True = new FlowStep { Action = ActivityBuilderFactory.BuildActivity(typeof(DsfCalculateActivity), toolId1), Next = new FlowStep { Action = ActivityBuilderFactory.BuildActivity(typeof(DsfBaseConvertActivity), toolId2) } }, Condition = bb } } }; var otherChart = new Flowchart { StartNode = new FlowStep { Action = new DsfMultiAssignActivity { FieldsCollection = new List <ActivityDTO> { new ActivityDTO("field1", "field1", 1), new ActivityDTO("field2", "field2", 2), new ActivityDTO("field2", "fff", 4), new ActivityDTO("field3", "field3", 3), }, UniqueID = assignId }, Next = new FlowDecision { DisplayName = "DisplayName", True = new FlowStep { Action = ActivityBuilderFactory.BuildActivity(typeof(DsfCalculateActivity), toolId1), Next = new FlowStep { Action = ActivityBuilderFactory.BuildActivity(typeof(DsfBaseConvertActivity), toolId2) } }, Condition = bb } } }; var current = ParserTestHelper.CreateContextualResourceModel(otherChart); var diff = ParserTestHelper.CreateContextualResourceModel(chart); var psd = new ServiceDifferenceParser(); var(currentTree, diffTree) = psd.GetDifferences(current, diff); var currConflicts = currentTree; var diffConflicts = diffTree; var count = currConflicts.Count + diffConflicts.Count; Assert.AreEqual(8, count); Assert.IsFalse(diffTree.Any(d => d.IsInConflict)); Assert.IsFalse(currentTree.Any(d => d.IsInConflict)); Assert.AreEqual(assignId, diffTree[0].UniqueId); Assert.AreEqual(assignId, currentTree[0].UniqueId); //First Node chart var tupleDifference = diffTree[0]; var tupleCurrent = currentTree[0]; Assert.IsNotNull(tupleDifference); Assert.IsNotNull(tupleCurrent); var devActivityDiff = tupleDifference.Activity; var devActivityCurr = tupleCurrent.Activity; Assert.IsNotNull(devActivityDiff); Assert.IsNotNull(devActivityCurr); Assert.AreEqual(assignId, devActivityCurr.UniqueID); Assert.AreEqual(assignId, devActivityDiff.UniqueID); //Decision Node chart var tupleDifference1 = diffTree[1]; var tupleCurrent1 = currentTree[1]; Assert.IsNotNull(tupleDifference1); Assert.IsNotNull(tupleCurrent1); var devActivityDiff1 = tupleDifference1.Activity; var devActivityCurr1 = tupleCurrent1.Activity; Assert.IsNotNull(devActivityDiff1); Assert.IsNotNull(devActivityCurr1); Assert.IsTrue(devActivityDiff1.Equals(devActivityCurr1)); }
public void SwitchDesignerViewModel_DisplayName_Setup_HasValue() { //------------Setup for test-------------------------- #region setup first Mock ModelItem var popupController = new Mock <IPopupController>(); CustomContainer.Register(popupController.Object); var env = EnviromentRepositoryTest.CreateMockEnvironment(); var properties = new Dictionary <string, Mock <ModelProperty> >(); var propertyCollection = new Mock <ModelPropertyCollection>(); var testAct = new DsfFlowDecisionActivity { ExpressionText = "Not Null Test Value" }; var prop = new Mock <ModelProperty>(); prop.Setup(p => p.ComputedValue).Returns(testAct); properties.Add("Condition", prop); propertyCollection.Protected().Setup <ModelProperty>("Find", "Condition", true).Returns(prop.Object); var mockModelItem = new Mock <ModelItem>(); mockModelItem.Setup(s => s.Properties).Returns(propertyCollection.Object); #endregion #region setup decision Mock ModelItem var crmDecision = new Mock <IContextualResourceModel>(); crmDecision.Setup(r => r.Environment).Returns(env.Object); crmDecision.Setup(r => r.ResourceName).Returns("Test"); crmDecision.Setup(res => res.WorkflowXaml).Returns(new StringBuilder(StringResourcesTest.xmlServiceDefinition)); var decisionProperties = new Dictionary <string, Mock <ModelProperty> >(); var decisionPropertyCollection = new Mock <ModelPropertyCollection>(); var decisionProp = new Mock <ModelProperty>(); decisionProp.Setup(p => p.ComputedValue).Returns(string.Empty); decisionProperties.Add("Condition", decisionProp); decisionPropertyCollection.Protected().Setup <ModelProperty>("Find", "Condition", true).Returns(decisionProp.Object); var decisionModelItem = new Mock <ModelItem>(); decisionModelItem.Setup(s => s.Properties).Returns(decisionPropertyCollection.Object); decisionModelItem.Setup(s => s.ItemType).Returns(typeof(FlowDecision)); prop.Setup(p => p.Value).Returns(decisionModelItem.Object); #endregion #region setup Environment Model env.Setup(c => c.Connection).Returns(new Mock <IEnvironmentConnection>().Object); #endregion //------------Execute Test--------------------------- var switchDesigner = new SwitchDesignerViewModel(mockModelItem.Object, "TrueArm"); //------------Assert Results------------------------- Assert.IsNotNull(switchDesigner); Assert.AreEqual("TrueArm", switchDesigner.DisplayText); }
public void SwitchDesignerViewModel_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); #region setup first Mock ModelItem var popupController = new Mock <IPopupController>(); CustomContainer.Register(popupController.Object); var env = EnviromentRepositoryTest.CreateMockEnvironment(); var properties = new Dictionary <string, Mock <ModelProperty> >(); var propertyCollection = new Mock <ModelPropertyCollection>(); var testAct = new DsfFlowDecisionActivity { ExpressionText = "Not Null Test Value" }; var prop = new Mock <ModelProperty>(); prop.Setup(p => p.ComputedValue).Returns(testAct); properties.Add("Condition", prop); propertyCollection.Protected().Setup <ModelProperty>("Find", "Condition", true).Returns(prop.Object); var mockModelItem = new Mock <ModelItem>(); mockModelItem.Setup(s => s.Properties).Returns(propertyCollection.Object); #endregion #region setup decision Mock ModelItem var crmDecision = new Mock <IContextualResourceModel>(); crmDecision.Setup(r => r.Environment).Returns(env.Object); crmDecision.Setup(r => r.ResourceName).Returns("Test"); crmDecision.Setup(res => res.WorkflowXaml).Returns(new StringBuilder(StringResourcesTest.xmlServiceDefinition)); var decisionProperties = new Dictionary <string, Mock <ModelProperty> >(); var decisionPropertyCollection = new Mock <ModelPropertyCollection>(); var decisionProp = new Mock <ModelProperty>(); decisionProp.Setup(p => p.ComputedValue).Returns(string.Empty); decisionProperties.Add("Condition", decisionProp); decisionPropertyCollection.Protected().Setup <ModelProperty>("Find", "Condition", true).Returns(decisionProp.Object); var decisionModelItem = new Mock <ModelItem>(); decisionModelItem.Setup(s => s.Properties).Returns(decisionPropertyCollection.Object); decisionModelItem.Setup(s => s.ItemType).Returns(typeof(FlowSwitch <string>)); prop.Setup(p => p.Value).Returns(decisionModelItem.Object); #endregion #region setup Environment Model env.Setup(c => c.Connection).Returns(new Mock <IEnvironmentConnection>().Object); #endregion var switchDesigner = new SwitchDesignerViewModel(mockModelItem.Object, ""); //------------Execute Test--------------------------- switchDesigner.UpdateHelpDescriptor("help"); //------------Assert Results------------------------- mockHelpViewModel.Verify(model => model.UpdateHelpText(It.IsAny <string>()), Times.Once()); }