示例#1
0
        public void WorkflowDesignerUtils_ShowExampleWorkflow_DsfDateTime_DateTimeExampleShown()
        {
            const string   expectedResourceName  = "Example - DateTime";
            var            aggregator            = new Mock <EventAggregator>();
            IResourceModel actualResourceInvoked = null;

            aggregator.Setup(a => a.Publish(It.IsAny <AddWorkSurfaceMessage>())).Callback <object>(msg =>
            {
                var workSurfaceObject = (msg is AddWorkSurfaceMessage) ? (msg as AddWorkSurfaceMessage).WorkSurfaceObject : null;
                actualResourceInvoked = (workSurfaceObject is IResourceModel) ? (workSurfaceObject as IResourceModel) : null;
            });
            EventPublishers.Aggregator = aggregator.Object;

            var mockedResourceRepo    = new Mock <IResourceRepository>();
            var mockedEnvironment     = new Mock <IEnvironmentModel>();
            var mockedExampleWorkflow = new Mock <IResourceModel>();

            mockedExampleWorkflow.Setup(res => res.DisplayName).Returns(expectedResourceName);
            mockedResourceRepo.Setup(repo => repo.FindSingle(It.IsAny <Expression <Func <IResourceModel, bool> > >(), false)).Returns(mockedExampleWorkflow.Object);
            mockedEnvironment.Setup(env => env.ResourceRepository).Returns(mockedResourceRepo.Object);

            //------------Execute Test---------------------------
            WorkflowDesignerUtils.ShowExampleWorkflow("DsfDateTimeActivity", mockedEnvironment.Object, null);

            // Assert MultiAssign example shown
            Assert.AreEqual(expectedResourceName, actualResourceInvoked.DisplayName, "Example for DateTime tool not shown");
        }
        public void CanFormatDsfActivityFieldWithMissmatchedRegionBracesExpectedNotParsed()
        {
            var wdu = new WorkflowDesignerUtils();

            var result = wdu.FormatDsfActivityField("[[MoIsNotUber([[invalid).field]]");

            Assert.AreEqual(0, result.Count, "Format DsfActivity returned results when the region braces where missmatched");
        }
        public void CanFormatDsfActivityFieldHandleNormalParse()
        {
            var wdu = new WorkflowDesignerUtils();

            var result = wdu.FormatDsfActivityField("[[MoIsNotUber]]");

            Assert.AreEqual(1, result.Count, "Strange behaviors parsing normal regions, I was expecting 1 result");
        }
        public void CanFormatDsfActivityFieldHandleSpecialCharsWithNoException()
        {
            var wdu = new WorkflowDesignerUtils();

            var result = wdu.FormatDsfActivityField("! @ #$% ^&* ( ) +_{ }| [] \\: \"; \'<> ?, ./");

            Assert.AreEqual(0, result.Count, "Strange behaviors parsing special chars, I got results when I should not?!");
        }
示例#5
0
        public void CanFormatDsfActivityFieldHandleSpecialCharsWithNoException()
        {
            WorkflowDesignerUtils wdu = new WorkflowDesignerUtils();

            IList <string> result = wdu.FormatDsfActivityField(TestResourceStringsTest.SpecialChars);

            Assert.AreEqual(0, result.Count, "Strange behaviors parsing special chars, I got results when I should not?!");
        }
示例#6
0
        public bool SetModelItemForServiceTypes(IDataObject dataObject)
        {
            if (dataObject != null && (dataObject.GetDataPresent(GlobalConstants.ExplorerItemModelFormat) || dataObject.GetDataPresent(GlobalConstants.UpgradedExplorerItemModelFormat)))
            {
                var  explorerItemModel = dataObject.GetData(GlobalConstants.UpgradedExplorerItemModelFormat);
                Guid envId             = new Guid();
                Guid resourceId        = new Guid();

                if (explorerItemModel == null)
                {
                    return(false);
                }
                IExplorerItemViewModel itemModel = explorerItemModel as IExplorerItemViewModel;
                if (itemModel != null)
                {
                    if (itemModel.Server != null)
                    {
                        envId = itemModel.Server.EnvironmentID;
                    }
                    resourceId = itemModel.ResourceId;
                }

                try
                {
                    IServer server   = ServerRepository.Instance.FindSingle(c => c.EnvironmentID == envId);
                    var     resource = server?.ResourceRepository.LoadContextualResourceModel(resourceId);

                    if (resource != null)
                    {
                        DsfActivity d = DsfActivityFactory.CreateDsfActivity(resource, null, true, ServerRepository.Instance, true);
                        d.ServiceName = d.DisplayName = d.ToolboxFriendlyName = resource.Category;
                        if (Application.Current != null && Application.Current.Dispatcher.CheckAccess() && Application.Current.MainWindow != null)
                        {
                            dynamic mvm = Application.Current.MainWindow.DataContext;
                            if (mvm != null && mvm.ActiveItem != null)
                            {
                                WorkflowDesignerUtils.CheckIfRemoteWorkflowAndSetProperties(d, resource, mvm.ActiveItem.Environment);
                            }
                        }

                        ModelItem modelItem = ModelItemUtils.CreateModelItem(d);
                        if (modelItem != null)
                        {
                            dynamic             mi = ModelItem;
                            ModelItemCollection activitiesCollection = mi.Activities;
                            activitiesCollection.Insert(activitiesCollection.Count, d);
                            return(true);
                        }
                    }
                }
                catch (RuntimeBinderException e)
                {
                    Dev2Logger.Error(e);
                }
            }
            return(false);
        }
示例#7
0
        protected override void OnPreviewMouseLeftButtonDown(MouseButtonEventArgs e)
        {
            //2012.10.01: massimo.guerrera - Added for the click through on the dependency viewer
            if (e.ClickCount == 2)
            {
                ReleaseMouseCapture();
                FrameworkElement        fe  = e.OriginalSource as FrameworkElement;
                FrameworkContentElement fce = e.OriginalSource as FrameworkContentElement;
                object dataContext          = null;

                if (fe != null)
                {
                    dataContext = fe.DataContext;
                }
                else if (fce != null)
                {
                    dataContext = fce.DataContext;
                }

                string resourceName = dataContext as string;

                if (string.IsNullOrEmpty(resourceName) && dataContext is Node)
                {
                    resourceName = (dataContext as Node).ID;
                }

                if (!string.IsNullOrEmpty(resourceName))
                {
                    var vm = DataContext as DependencyVisualiserViewModel;
                    if (vm != null)
                    {
                        IResourceModel resource = vm.ResourceModel.Environment
                                                  .ResourceRepository.FindSingle(
                            c => c.ResourceName == resourceName);
                        if (resource != null)
                        {
                            WorkflowDesignerUtils.EditResource(resource, _eventPublisher);
                        }
                    }
                }
            }

            e.GetPosition(this);
            _scrollStartOffset.X = myScrollViewer.HorizontalOffset;
            _scrollStartOffset.Y = myScrollViewer.VerticalOffset;

            // Update the cursor if scrolling is possible
            Cursor = (myScrollViewer.ExtentWidth > myScrollViewer.ViewportWidth) ||
                     (myScrollViewer.ExtentHeight > myScrollViewer.ViewportHeight) ?
                     Cursors.ScrollAll : Cursors.Arrow;

            CaptureMouse();
            base.OnPreviewMouseDown(e);
        }
示例#8
0
        public void WorkflowDesignerUtils_ShowExampleWorkflow_DsfMultiAssignExampleResourceNotFound_MultiAssignExampleShown()
        {
            var mockedResourceRepo = new Mock <IResourceRepository>();
            var mockedEnvironment  = new Mock <IEnvironmentModel>();
            var popupController    = new MoqPopup(MessageBoxResult.OK);

            mockedEnvironment.Setup(env => env.ResourceRepository).Returns(mockedResourceRepo.Object);

            //------------Execute Test---------------------------
            WorkflowDesignerUtils.ShowExampleWorkflow("DsfMultiAssignActivity", mockedEnvironment.Object, popupController);

            // Assert MultiAssign example shown
            Assert.AreEqual(1, popupController.ShowHitCount, "Info messagebox not shown when example workflow not found");
        }
示例#9
0
        public void EditResource_UnitTest_EditResourceWhereNullEventAggregator_ExpectException()
        {
            //------------Setup for test--------------------------
            var mockResourceModel = new Mock <IResourceModel>();

            mockResourceModel.Setup(model => model.ResourceType).Returns(ResourceType.Service);
            var eventAggregator = new EventAggregator();
            var handleMessages  = new TestHandleMessages();

            eventAggregator.Subscribe(handleMessages);
            //------------Execute Test---------------------------
            WorkflowDesignerUtils.EditResource(mockResourceModel.Object, null);
            //------------Assert Results-------------------------
        }
示例#10
0
        public bool SetModelItemForServiceTypes(IDataObject dataObject)
        {
            if (dataObject != null && dataObject.GetDataPresent(GlobalConstants.ExplorerItemModelFormat))
            {
                var explorerItemModel = dataObject.GetData(GlobalConstants.ExplorerItemModelFormat);
                try
                {
                    ExplorerItemModel itemModel = explorerItemModel as ExplorerItemModel;
                    if (itemModel != null)
                    {
                        IEnvironmentModel environmentModel = EnvironmentRepository.Instance.FindSingle(c => c.ID == itemModel.EnvironmentId);
                        if (environmentModel != null)
                        {
                            var resource = environmentModel.ResourceRepository.FindSingle(c => c.ID == itemModel.ResourceId) as IContextualResourceModel;

                            if (resource != null)
                            {
                                DsfActivity d = DsfActivityFactory.CreateDsfActivity(resource, null, true, EnvironmentRepository.Instance, true);
                                d.ServiceName = d.DisplayName = d.ToolboxFriendlyName = resource.Category;
                                d.IconPath    = resource.IconPath;
                                if (Application.Current != null && Application.Current.Dispatcher.CheckAccess() && Application.Current.MainWindow != null)
                                {
                                    dynamic mvm = Application.Current.MainWindow.DataContext;
                                    if (mvm != null && mvm.ActiveItem != null)
                                    {
                                        WorkflowDesignerUtils.CheckIfRemoteWorkflowAndSetProperties(d, resource, mvm.ActiveItem.Environment);
                                    }
                                }

                                ModelItem modelItem = ModelItemUtils.CreateModelItem(d);
                                if (modelItem != null)
                                {
                                    dynamic             mi = ModelItem;
                                    ModelItemCollection activitiesCollection = mi.Activities;
                                    activitiesCollection.Insert(activitiesCollection.Count, d);
                                    return(true);
                                }
                            }
                        }
                    }
                }
                catch (RuntimeBinderException e)
                {
                    Dev2Logger.Log.Error(e);
                }
            }
            return(false);
        }
示例#11
0
        public void EditResource_UnitTest_EditResourceWhereWorkflow_ExpectAddWorksurfaceMessageHandled()
        {
            //------------Setup for test--------------------------
            var mockResourceModel = new Mock <IResourceModel>();

            mockResourceModel.Setup(model => model.ResourceType).Returns(ResourceType.WorkflowService);
            var eventAggregator = new EventAggregator();
            var handleMessages  = new TestHandleMessages();

            eventAggregator.Subscribe(handleMessages);
            //------------Execute Test---------------------------
            WorkflowDesignerUtils.EditResource(mockResourceModel.Object, eventAggregator);
            //------------Assert Results-------------------------
            Assert.IsTrue(handleMessages.WorkSurfaceMessageCalled);
            Assert.IsFalse(handleMessages.EditResourceMessageCalled);
        }
        public void WorkflowDesignerUtils_CheckIfRemoteWorkflowAndSetProperties_ServerName_SetAsSource()
        {
            var x       = new Mock <IContextualResourceModel>();
            var mockEnv = new Mock <IServer>();
            var mockCon = new Mock <IEnvironmentConnection>();

            mockEnv.Setup(a => a.Connection).Returns(mockCon.Object);
            mockCon.Setup(a => a.WebServerUri).Returns(new Uri("http://rsaklf/bob"));
            var envGuid = Guid.NewGuid();

            x.Setup(a => a.Environment).Returns(mockEnv.Object);
            mockEnv.Setup(a => a.EnvironmentID).Returns(envGuid);
            x.Setup(a => a.Environment).Returns(mockEnv.Object);
            var act = new DsfActivity("a", "b", "c", "d", "e", "f");

            //------------Execute Test---------------------------
            WorkflowDesignerUtils.CheckIfRemoteWorkflowAndSetProperties(act, x.Object, mockEnv.Object);
            Assert.AreEqual("rsaklf", act.FriendlySourceName.Expression.ToString());
        }
        public void WorkflowDesignerUtils_CheckIfRemoteWorkflowAndSetProperties_DsfDateTime_DateTimeExampleShown()
        {
            var x          = new Mock <IContextualResourceModel>();
            var mockEnv    = new Mock <IServer>();
            var mockEnvRes = new Mock <IServer>();
            var mockCon    = new Mock <IEnvironmentConnection>();
            var mockConRes = new Mock <IEnvironmentConnection>();

            mockEnv.Setup(a => a.Connection).Returns(mockCon.Object);
            mockEnvRes.Setup(a => a.Connection).Returns(mockConRes.Object);
            mockCon.Setup(a => a.WebServerUri).Returns(new Uri("http://rsaklf/bob"));
            var envGuid    = Guid.NewGuid();
            var envGuidRes = Guid.NewGuid();

            x.Setup(a => a.Environment).Returns(mockEnvRes.Object);
            mockEnv.Setup(a => a.EnvironmentID).Returns(envGuid);
            mockEnv.Setup(a => a.EnvironmentID).Returns(envGuidRes);
            x.Setup(a => a.Environment).Returns(mockEnv.Object);
            var act = new DsfActivity("a", "b", "c", "d", "e", "f");

            //------------Execute Test---------------------------
            WorkflowDesignerUtils.CheckIfRemoteWorkflowAndSetProperties(act, x.Object, mockEnvRes.Object);
            Assert.AreEqual("http://rsaklf/bob", act.ServiceUri);
        }
示例#14
0
 public void TestCheckIfRemoteWorkflowAndSetProperties(DsfActivity dsfActivity, IContextualResourceModel resource, IEnvironmentModel environmentModel)
 {
     WorkflowDesignerUtils.CheckIfRemoteWorkflowAndSetProperties(dsfActivity, resource, environmentModel);
 }
 public void TestCheckIfRemoteWorkflowAndSetProperties(DsfActivity dsfActivity, IContextualResourceModel resource, IServer server)
 {
     WorkflowDesignerUtils.CheckIfRemoteWorkflowAndSetProperties(dsfActivity, resource, server);
 }
 static Action <Type> CreateShowExampleWorkflowAction()
 {
     return(type => WorkflowDesignerUtils.ShowExampleWorkflow(type.Name, ServerUtil.GetLocalhostServer(), null));
 }