コード例 #1
0
        public void MergeViewModel_DoDeactivate_CanSave_MessageBoxYes()
        {
            //------------Setup for test--------------------------
            _firstResource = CreateResource(ResourceType.WorkflowService);

            var mockWorkSurfaceViewModel = new Mock <IMergePreviewWorkflowDesignerViewModel>();

            mockWorkSurfaceViewModel.Setup(model => model.Server).Returns(_environmentModel.Object);
            mockWorkSurfaceViewModel.Setup(model => model.ResourceModel).Returns(_firstResource.Object);

            var currentTree = new List <ConflictTreeNode>();
            var diffTree    = new List <ConflictTreeNode>();

            _mockParseServiceForDifferences.Setup(parser =>
                                                  parser.GetDifferences(It.IsAny <IContextualResourceModel>(), It.IsAny <IContextualResourceModel>(),
                                                                        false)).Returns((currentTree, diffTree));

            //------------Execute Test---------------------------

            var popupController = new Mock <IPopupController>();

            popupController.Setup(controller => controller.Show(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <MessageBoxButton>(), MessageBoxImage.Information, "", false, false, true, false, false, false)).Returns(MessageBoxResult.Yes);
            CustomContainer.Register(popupController.Object);

            var mockConflictRow = new Mock <IToolConflictRow>();

            mockConflictRow.Setup(cr => cr.HasConflict).Returns(true);
            var conflicts = new List <IToolConflictRow>();

            conflicts.Add(mockConflictRow.Object);

            var viewModel = new Mock <IMergeWorkflowViewModel>();

            viewModel.Setup(model => model.MergePreviewWorkflowDesignerViewModel).Returns(mockWorkSurfaceViewModel.Object);
            var vm = new MergeViewModel(_eventAggregator.Object, viewModel.Object, popupController.Object, new Mock <IView>().Object);

            Assert.IsNotNull(vm);
            Assert.IsFalse(vm.HasVariables);
            Assert.IsFalse(vm.HasDebugOutput);
            Assert.IsNull(vm.DisplayName);
            Assert.AreEqual("MergeConflicts", vm.ResourceType);
            Assert.IsNull(vm.HelpText);
            Assert.IsFalse(vm.IsDirty);

            var mergeWorkflowViewModel = new MergeWorkflowViewModel(_firstResource.Object, _firstResource.Object, false);

            mergeWorkflowViewModel.Conflicts       = conflicts;
            mergeWorkflowViewModel.HasMergeStarted = true;
            mergeWorkflowViewModel.DisplayName     = "Merge";

            vm.ViewModel = mergeWorkflowViewModel;

            vm.DoDeactivate(true);

            //------------Assert Results-------------------------

            Assert.IsTrue(vm.IsDirty);
            Assert.IsNull(vm.HelpText);
        }
コード例 #2
0
        public void WhenMergeWindowIsOpenedWithLocalVersion(string p0)
        {
            var localResourceVersion = _scenarioContext.Get <IContextualResourceModel>(localResourceVersionString);
            var localResource        = _scenarioContext.Get <IContextualResourceModel>(localResourceString);
            var mergeVm = new MergeWorkflowViewModel(localResourceVersion, localResource, true);

            _scenarioContext.Add(mergeVmString, mergeVm);
        }
コード例 #3
0
        public void Initialize_GivenSameResourceModel_ShouldHaveNoDeifferences_desicion()
        {
            //---------------Set up test pack-------------------
            var helloWorldGuid = "41617daa-509e-40eb-aa76-b0827028721d".ToGuid();
            var loadContextualResourceModel = _server.Source.ResourceRepository.LoadContextualResourceModel(helloWorldGuid);

            //---------------Assert Precondition----------------
            Assert.IsNotNull(loadContextualResourceModel);
            //---------------Execute Test ----------------------
            var mergeWorkflowViewModel = new MergeWorkflowViewModel(loadContextualResourceModel, loadContextualResourceModel, true);

            //---------------Test Result -----------------------
            Assert.IsNotNull(mergeWorkflowViewModel);
        }
コード例 #4
0
        public void Example_ControlFlowDecision_No_Differences_TreeHierachyIsCorrect()
        {
            //---------------Set up test pack-------------------
            var environmentModel = _server.Source;

            environmentModel.Connect();
            var resourceRepository = _server.Source.ResourceRepository;

            resourceRepository.Load();

            //---------------Assert Precondition----------------
            //---------------Execute Test ----------------------
            var contextualResourceModel =
                resourceRepository.LoadContextualResourceModel("41617daa-509e-40eb-aa76-b0827028721d".ToGuid());
            var mergeWorkflowViewModel = new MergeWorkflowViewModel(contextualResourceModel, contextualResourceModel, true);

            //---------------Test Result -----------------------
            Assert.IsNotNull(mergeWorkflowViewModel);

            var all = mergeWorkflowViewModel.Conflicts.All(conflict => !conflict.HasConflict);

            Assert.IsTrue(all);
            var conflictsCount = mergeWorkflowViewModel.Conflicts.Count;

            Assert.AreEqual(35, conflictsCount);
            var completeConflict1 = mergeWorkflowViewModel.Conflicts.First;

            Assert.IsNotNull(completeConflict1);

            var toolConflict1 = completeConflict1.Value as IToolConflict;

            Assert.IsTrue(!toolConflict1.CurrentViewModel.Children.Any());
            Assert.AreEqual("Use the Decision tool to:", toolConflict1.CurrentViewModel.MergeDescription);

            var completeConflict2 = completeConflict1.Next;

            Assert.IsNotNull(completeConflict2);
            var toolConflict2 = completeConflict2.Value as IToolConflict;

            Assert.IsTrue(!toolConflict2.CurrentViewModel.Children.Any());
            Assert.AreEqual("EXAMPLE 1 - Basic Usage", toolConflict2.CurrentViewModel.MergeDescription);

            var completeConflict3 = completeConflict2.Next;

            Assert.IsNotNull(completeConflict3);
            var toolConflict3 = completeConflict3.Value as IArmConnectorConflict;

            Assert.IsNotNull(toolConflict3.CurrentArmConnector);
            Assert.AreEqual("Use the Decision tool to: -> EXAMPLE 1 - Basic Usage", toolConflict3.CurrentArmConnector.ArmDescription);
        }
コード例 #5
0
        public void MergeViewModel_PropertyChanged_DataListViewModel_IsTrue()
        {
            //------------Setup for test--------------------------
            _firstResource = CreateResource(ResourceType.WorkflowService);

            var mockWorkSurfaceViewModel = new Mock <IMergePreviewWorkflowDesignerViewModel>();

            mockWorkSurfaceViewModel.Setup(model => model.Server).Returns(_environmentModel.Object);
            mockWorkSurfaceViewModel.Setup(model => model.ResourceModel).Returns(_firstResource.Object);

            var currentTree = new List <ConflictTreeNode>();
            var diffTree    = new List <ConflictTreeNode>();

            _mockParseServiceForDifferences.Setup(parser =>
                                                  parser.GetDifferences(It.IsAny <IContextualResourceModel>(), It.IsAny <IContextualResourceModel>(),
                                                                        false)).Returns((currentTree, diffTree));

            //------------Execute Test---------------------------

            var viewModel = new Mock <IMergeWorkflowViewModel>();

            viewModel.Setup(model => model.MergePreviewWorkflowDesignerViewModel).Returns(mockWorkSurfaceViewModel.Object);
            var vm = new MergeViewModel(_eventAggregator.Object, viewModel.Object, new Mock <IPopupController>().Object, new Mock <IView>().Object);

            var mergeWorkflowViewModel = new MergeWorkflowViewModel(_firstResource.Object, _firstResource.Object, false);

            mergeWorkflowViewModel.HasMergeStarted = true;

            vm.ViewModel = mergeWorkflowViewModel;

            bool wasCalled = false;

            vm.PropertyChanged += (sender, args) =>
            {
                if (args.PropertyName == "DataListViewModel")
                {
                    wasCalled = true;
                }
            };

            Assert.IsNotNull(vm);
            Assert.IsFalse(vm.HasVariables);
            Assert.IsFalse(vm.HasDebugOutput);
            Assert.AreEqual(mergeWorkflowViewModel.DisplayName, vm.DisplayName);
            Assert.AreEqual("MergeConflicts", vm.ResourceType);
            Assert.IsNull(vm.HelpText);
            Assert.IsTrue(vm.IsDirty);
        }
コード例 #6
0
        public void MergeViewModel_DoDeactivate_CanSave_ExpectedFalse()
        {
            //------------Setup for test--------------------------
            _firstResource = CreateResource(ResourceType.WorkflowService);

            var mockWorkSurfaceViewModel = new Mock <IMergePreviewWorkflowDesignerViewModel>();

            mockWorkSurfaceViewModel.Setup(model => model.Server).Returns(_environmentModel.Object);
            mockWorkSurfaceViewModel.Setup(model => model.ResourceModel).Returns(_firstResource.Object);

            var currentTree = new List <ConflictTreeNode>();
            var diffTree    = new List <ConflictTreeNode>();

            _mockParseServiceForDifferences.Setup(parser =>
                                                  parser.GetDifferences(It.IsAny <IContextualResourceModel>(), It.IsAny <IContextualResourceModel>(),
                                                                        false)).Returns((currentTree, diffTree));

            //------------Execute Test---------------------------

            var viewModel = new Mock <IMergeWorkflowViewModel>();

            viewModel.Setup(model => model.MergePreviewWorkflowDesignerViewModel).Returns(mockWorkSurfaceViewModel.Object);
            var vm = new MergeViewModel(_eventAggregator.Object, viewModel.Object, new Mock <IPopupController>().Object, new Mock <IView>().Object);

            Assert.IsNotNull(vm);
            Assert.IsFalse(vm.HasVariables);
            Assert.IsFalse(vm.HasDebugOutput);
            Assert.IsNull(vm.DisplayName);
            Assert.AreEqual("MergeConflicts", vm.ResourceType);
            Assert.IsNull(vm.HelpText);
            Assert.IsFalse(vm.IsDirty);

            vm.HelpText = string.Empty;

            var mergeWorkflowViewModel = new MergeWorkflowViewModel(_firstResource.Object, _firstResource.Object, false);

            vm.ViewModel = mergeWorkflowViewModel;

            var expectedValue = vm.DoDeactivate(false);

            //------------Assert Results-------------------------

            Assert.IsFalse(vm.ViewModel.IsDirty);
            Assert.IsTrue(vm.IsDirty);
            Assert.AreEqual(string.Empty, vm.HelpText);
            Assert.IsTrue(expectedValue);
            _shellViewModel.Verify(model => model.HelpViewModel.UpdateHelpText(It.IsAny <string>()));
        }
コード例 #7
0
        public void Batch_Compare_All_Examples_Have_No_Differences()
        {
            //---------------Set up test pack-------------------
            var environmentModel = _server.Source;

            environmentModel.Connect();
            var resourceRepository = _server.Source.ResourceRepository;

            resourceRepository.Load();
            var resourceModels = resourceRepository.All();

            Assert.IsNotNull(resourceModels);
            var examples = resourceModels.Where(model => model.GetSavePath().StartsWith("Examples")).ToList();

            foreach (var example in examples)
            {
                //---------------Assert Precondition----------------
                //---------------Execute Test ----------------------
                var contextualResourceModel = example as IContextualResourceModel;
                try
                {
                    var mergeWorkflowViewModel =
                        new MergeWorkflowViewModel(contextualResourceModel, contextualResourceModel, true);
                    //---------------Test Result -----------------------
                    Assert.IsNotNull(mergeWorkflowViewModel);
                    var conflicts = mergeWorkflowViewModel.Conflicts;
                    var all       = conflicts.All(conflict =>
                    {
                        var toolConflict = conflict as IToolConflict;
                        return(toolConflict.DiffViewModel == null);
                    });
                    if (all)
                    {
                        Assert.IsTrue(all);
                    }
                    else
                    {
                        Debug.WriteLine(example.ID + " " + example.DisplayName + " Has some differences ");
                    }
                }
                catch (Exception e)
                {
                    Debug.WriteLine(example.ID + " " + example.DisplayName + " Has some differences " + e.Message);
                }
            }
        }
コード例 #8
0
        public void Initialize_GivenSameResourceModel_ShouldHaveNoDeifferences_Switch()
        {
            //---------------Set up test pack-------------------
            var resourceId = "6dcdd72f-c4ba-484d-9806-8134d8eb2447".ToGuid();
            var loadContextualResourceModel = _server.Source.ResourceRepository.LoadContextualResourceModel(resourceId);
            var resourceModel = new ResourceModel(_server.Source)
            {
                ID = resourceId
            };
            var xElement = XML.XmlResource.Fetch("SameResourceSwitch");
            var element  = xElement.Element("Action");

            Assert.IsNotNull(element);
            var xamlDef = element.ToString(SaveOptions.DisableFormatting);

            resourceModel.WorkflowXaml = new StringBuilder(xamlDef);
            //---------------Assert Precondition----------------
            //---------------Execute Test ----------------------
            var mergeWorkflowViewModel = new MergeWorkflowViewModel(loadContextualResourceModel, resourceModel, true);

            //---------------Test Result -----------------------
            Assert.IsNotNull(mergeWorkflowViewModel);
        }
コード例 #9
0
        public void Example_LoopConstructsForEach_No_Differences_TreeHierachyIsCorrect()
        {
            //---------------Set up test pack-------------------
            var environmentModel = _server.Source;

            environmentModel.Connect();
            var resourceRepository = _server.Source.ResourceRepository;

            resourceRepository.Load();

            //---------------Assert Precondition----------------
            //---------------Execute Test ----------------------
            var contextualResourceModel =
                resourceRepository.LoadContextualResourceModel("a3ad09e1-a058-4dc1-af6a-b4d856dc0e52".ToGuid());
            var mergeWorkflowViewModel = new MergeWorkflowViewModel(contextualResourceModel, contextualResourceModel, true);

            //---------------Test Result -----------------------
            Assert.IsNotNull(mergeWorkflowViewModel);

            var all = mergeWorkflowViewModel.Conflicts.All(conflict => !conflict.HasConflict);

            Assert.IsTrue(all);
            var conflictsCount = mergeWorkflowViewModel.Conflicts.Count;

            Assert.AreEqual(13, conflictsCount);

            var completeConflict1 = mergeWorkflowViewModel.Conflicts.First;

            Assert.IsNotNull(completeConflict1);
            var toolConflict1 = completeConflict1.Value as IToolConflict;

            Assert.IsTrue(!toolConflict1.CurrentViewModel.Children.Any());
            Assert.AreEqual("Use the For Each tool to:", toolConflict1.CurrentViewModel.MergeDescription);

            var completeConflict2 = completeConflict1.Next;

            Assert.IsNotNull(completeConflict2);
            var toolConflict2 = completeConflict2.Value as IToolConflict;

            Assert.IsTrue(!toolConflict2.CurrentViewModel.Children.Any());
            Assert.AreEqual("EXAMPLE 1 - No. of Executions", toolConflict2.CurrentViewModel.MergeDescription);

            var completeConflict3 = completeConflict2.Next;

            Assert.IsNotNull(completeConflict3);
            var toolConflict3 = completeConflict3.Value as IArmConnectorConflict;

            Assert.IsNotNull(toolConflict3.CurrentArmConnector);
            Assert.AreEqual("Use the For Each tool to: -> EXAMPLE 1 - No. of Executions", toolConflict3.CurrentArmConnector.ArmDescription);

            var completeConflict4 = completeConflict3.Next;

            Assert.IsNotNull(completeConflict4);
            var toolConflict4 = completeConflict4.Value as IToolConflict;

            Assert.IsTrue(!toolConflict4.CurrentViewModel.Children.Any());
            Assert.AreEqual("For Each", toolConflict4.CurrentViewModel.MergeDescription);

            var completeConflict5 = completeConflict4.Next;

            Assert.IsNotNull(completeConflict5);
            var toolConflict5 = completeConflict5.Value as IArmConnectorConflict;

            Assert.IsNotNull(toolConflict5.CurrentArmConnector);
            Assert.AreEqual("EXAMPLE 1 - No. of Executions -> For Each", toolConflict5.CurrentArmConnector.ArmDescription);

            var completeConflict6 = completeConflict5.Next;

            Assert.IsNotNull(completeConflict6);
            var toolConflict6 = completeConflict6.Value as IToolConflict;

            Assert.IsTrue(!toolConflict6.CurrentViewModel.Children.Any());
            Assert.AreEqual("EXAMPLE 2 - * in Range", toolConflict6.CurrentViewModel.MergeDescription);

            var completeConflict7 = completeConflict6.Next;

            Assert.IsNotNull(completeConflict7);
            var toolConflict7 = completeConflict7.Value as IArmConnectorConflict;

            Assert.IsNotNull(toolConflict7.CurrentArmConnector);
            Assert.AreEqual("For Each -> EXAMPLE 2 - * in Range", toolConflict7.CurrentArmConnector.ArmDescription);

            var completeConflict8 = completeConflict7.Next;

            Assert.IsNotNull(completeConflict8);
            var toolConflict8 = completeConflict8.Value as IToolConflict;

            Assert.IsTrue(!toolConflict8.CurrentViewModel.Children.Any());
            Assert.AreEqual("For Each", toolConflict8.CurrentViewModel.MergeDescription);

            var completeConflict9 = completeConflict8.Next;

            Assert.IsNotNull(completeConflict9);
            var toolConflict9 = completeConflict9.Value as IArmConnectorConflict;

            Assert.IsNotNull(toolConflict9.CurrentArmConnector);
            Assert.AreEqual("EXAMPLE 2 - * in Range -> For Each", toolConflict9.CurrentArmConnector.ArmDescription);
        }
コード例 #10
0
        public void Example_ControlFlowSequence_No_Differences_TreeHierachyIsCorrect()
        {
            //---------------Set up test pack-------------------
            var environmentModel = _server.Source;

            environmentModel.Connect();
            var resourceRepository = _server.Source.ResourceRepository;

            resourceRepository.Load();

            //---------------Assert Precondition----------------
            //---------------Execute Test ----------------------
            var contextualResourceModel =
                resourceRepository.LoadContextualResourceModel("1b0e0881-9869-4b71-b853-e0c752c38678".ToGuid());
            var mergeWorkflowViewModel = new MergeWorkflowViewModel(contextualResourceModel, contextualResourceModel, true);

            //---------------Test Result -----------------------
            Assert.IsNotNull(mergeWorkflowViewModel);

            var all = mergeWorkflowViewModel.Conflicts.All(conflict => !conflict.HasConflict);

            Assert.IsTrue(all);
            var conflictsCount = mergeWorkflowViewModel.Conflicts.Count;

            Assert.AreEqual(11, conflictsCount);

            var completeConflict1 = mergeWorkflowViewModel.Conflicts.First;

            Assert.IsNotNull(completeConflict1);
            var toolConflict1 = completeConflict1.Value as IToolConflict;

            Assert.IsTrue(!toolConflict1.CurrentViewModel.Children.Any());
            Assert.AreEqual("Use the Sequence tool to:", toolConflict1.CurrentViewModel.MergeDescription);

            var completeConflict2 = completeConflict1.Next;

            Assert.IsNotNull(completeConflict2);
            var toolConflict2 = completeConflict2.Value as IToolConflict;

            Assert.IsTrue(!toolConflict2.CurrentViewModel.Children.Any());
            Assert.AreEqual("EXAMPLE 1 - Basic Usage", toolConflict2.CurrentViewModel.MergeDescription);

            var completeConflict3 = completeConflict2.Next;

            Assert.IsNotNull(completeConflict3);
            var toolConflict3 = completeConflict3.Value as IArmConnectorConflict;

            Assert.IsNotNull(toolConflict3.CurrentArmConnector);
            Assert.AreEqual("Use the Sequence tool to: -> EXAMPLE 1 - Basic Usage", toolConflict3.CurrentArmConnector.ArmDescription);

            var completeConflict4 = completeConflict3.Next;

            Assert.IsNotNull(completeConflict4);
            var toolConflict4 = completeConflict4.Value as IToolConflict;

            Assert.IsTrue(!toolConflict4.CurrentViewModel.Children.Any());
            Assert.AreEqual("Create Example Data (1)", toolConflict4.CurrentViewModel.MergeDescription);
            var childrenCount = toolConflict4.CurrentViewModel.Children.Count;

            Assert.AreEqual(0, childrenCount);

            var completeConflict5 = completeConflict4.Next;

            Assert.IsNotNull(completeConflict5);
            var toolConflict5 = completeConflict5.Value as IArmConnectorConflict;

            Assert.IsNotNull(toolConflict5.CurrentArmConnector);
            Assert.AreEqual("EXAMPLE 1 - Basic Usage -> Create Example Data (1)", toolConflict5.CurrentArmConnector.ArmDescription);

            var completeConflict6 = completeConflict5.Next;

            Assert.IsNotNull(completeConflict6);
            var toolConflict6 = completeConflict6.Value as IToolConflict;

            Assert.IsTrue(!toolConflict6.CurrentViewModel.Children.Any());
            Assert.AreEqual("Organize Customers", toolConflict6.CurrentViewModel.MergeDescription);

            var childrenCount5 = toolConflict6.CurrentViewModel.Children.Count;

            Assert.AreEqual(0, childrenCount5);
        }
コード例 #11
0
        public void MergeCurrent_HelloWorld_No_Differences_TreeHierachyIsCorrect()
        {
            //---------------Set up test pack-------------------
            var environmentModel = _server.Source;

            environmentModel.Connect();
            var resourceRepository = _server.Source.ResourceRepository;

            resourceRepository.Load();

            //---------------Assert Precondition----------------
            //---------------Execute Test ----------------------
            var contextualResourceModel =
                resourceRepository.LoadContextualResourceModel("acb75027-ddeb-47d7-814e-a54c37247ec1".ToGuid());
            var mergeWorkflowViewModel = new MergeWorkflowViewModel(contextualResourceModel, contextualResourceModel, true);

            //---------------Test Result -----------------------
            Assert.IsNotNull(mergeWorkflowViewModel);

            var all = mergeWorkflowViewModel.Conflicts.All(conflict => !conflict.HasConflict);

            Assert.IsTrue(all);
            var conflictsCount = mergeWorkflowViewModel.Conflicts.Count;

            Assert.AreEqual(6, conflictsCount);
            var completeConflict1 = mergeWorkflowViewModel.Conflicts.First;

            Assert.IsNotNull(completeConflict1);
            var toolConflict1 = completeConflict1.Value as IToolConflict;

            Assert.IsTrue(!toolConflict1.CurrentViewModel.Children.Any());
            Assert.AreEqual("If [[Name]] <> (Not Equal) ", toolConflict1.CurrentViewModel.MergeDescription);

            var completeConflict2 = completeConflict1.Next;

            Assert.IsNotNull(completeConflict2);
            var toolConflict2 = completeConflict2.Value as IToolConflict;

            Assert.IsTrue(!toolConflict2.CurrentViewModel.Children.Any());
            Assert.AreEqual("Set the output variable (1)", toolConflict2.CurrentViewModel.MergeDescription);

            var completeConflict3 = completeConflict2.Next;

            Assert.IsNotNull(completeConflict3);
            var toolConflict3 = completeConflict3.Value as IArmConnectorConflict;

            Assert.IsNotNull(toolConflict3.CurrentArmConnector);
            Assert.AreEqual("If [[Name]] <> (Not Equal) : TRUE -> Set the output variable (1)", toolConflict3.CurrentArmConnector.ArmDescription);

            var completeConflict4 = completeConflict3.Next;

            Assert.IsNotNull(completeConflict4);
            var toolConflict4 = completeConflict4.Value as IToolConflict;

            Assert.IsTrue(!toolConflict4.CurrentViewModel.Children.Any());
            Assert.AreEqual("Assign a value to Name if blank (1)", toolConflict4.CurrentViewModel.MergeDescription);

            var childrenCount = toolConflict4.CurrentViewModel.Children.Count;

            Assert.AreEqual(0, childrenCount);
        }