public void ObservableReadOnlyList_IReadOnlyList_Implemented()
        {
            //------------Setup for test--------------------------
            var observableReadOnlyList = new ObservableReadOnlyList<string>();

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

            //------------Assert Results-------------------------
            Assert.IsInstanceOfType(observableReadOnlyList, typeof(IReadOnlyList<string>));

            observableReadOnlyList.Insert(0, "Item1");
            observableReadOnlyList.Insert(1, "Item3");
            observableReadOnlyList.Insert(1, "Item2");

            Assert.AreEqual(3, observableReadOnlyList.Count);
            Assert.AreEqual("Item1", observableReadOnlyList[0]);
            Assert.AreEqual("Item2", observableReadOnlyList[1]);
            Assert.AreEqual("Item3", observableReadOnlyList[2]);

            var idx = observableReadOnlyList.IndexOf("Item3");
            Assert.AreEqual(2, idx);

            observableReadOnlyList.RemoveAt(1);
            Assert.AreEqual(2, observableReadOnlyList.Count);
            Assert.AreEqual("Item1", observableReadOnlyList[0]);
            Assert.AreEqual("Item3", observableReadOnlyList[1]);

            observableReadOnlyList[1] = "Item5";
            Assert.AreEqual("Item5", observableReadOnlyList[1]);
        }
Esempio n. 2
0
        public void ObservableReadOnlyList_IReadOnlyList_Implemented()
        {
            //------------Setup for test--------------------------
            var observableReadOnlyList = new ObservableReadOnlyList <string>();

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

            //------------Assert Results-------------------------
            Assert.IsInstanceOfType(observableReadOnlyList, typeof(IReadOnlyList <string>));

            observableReadOnlyList.Insert(0, "Item1");
            observableReadOnlyList.Insert(1, "Item3");
            observableReadOnlyList.Insert(1, "Item2");

            Assert.AreEqual(3, observableReadOnlyList.Count);
            Assert.AreEqual("Item1", observableReadOnlyList[0]);
            Assert.AreEqual("Item2", observableReadOnlyList[1]);
            Assert.AreEqual("Item3", observableReadOnlyList[2]);

            var idx = observableReadOnlyList.IndexOf("Item3");

            Assert.AreEqual(2, idx);

            observableReadOnlyList.RemoveAt(1);
            Assert.AreEqual(2, observableReadOnlyList.Count);
            Assert.AreEqual("Item1", observableReadOnlyList[0]);
            Assert.AreEqual("Item3", observableReadOnlyList[1]);

            observableReadOnlyList[1] = "Item5";
            Assert.AreEqual("Item5", observableReadOnlyList[1]);
        }
Esempio n. 3
0
        public void ActivityDesignerViewModel_Collapse_HelpButtonGetsRemovedOnCollapse()
        {
            //------------Setup for test--------------------------
            var mockModelItem          = GenerateMockModelItem();
            var setupResourceModelMock = Dev2MockFactory.SetupResourceModelMock();
            var errorInfo = new ErrorInfo {
                InstanceID = new Guid()
            };

            var envRepo = new Mock <IServerRepository>();

            envRepo.Setup(e => e.ActiveServer).Returns(setupResourceModelMock.Object.Environment);

            IObservableReadOnlyList <IErrorInfo> testErrors = new ObservableReadOnlyList <IErrorInfo> {
                errorInfo
            };

            setupResourceModelMock.Setup(c => c.Errors).Returns(testErrors);
            setupResourceModelMock.Setup(c => c.GetErrors(It.IsAny <Guid>())).Returns(new List <IErrorInfo> {
                errorInfo
            });
            var viewModel = new ServiceDesignerViewModel(mockModelItem.Object, setupResourceModelMock.Object, envRepo.Object, new Mock <IEventAggregator>().Object, new SynchronousAsyncWorker());

            Assert.AreEqual(1, viewModel.TitleBarToggles.Count);

            viewModel.ShowLarge = true;

            Assert.AreEqual(1, viewModel.TitleBarToggles.Count);

            //------------Execute Test---------------------------
            viewModel.Collapse();

            //------------Assert Results-------------------------
            Assert.AreEqual(1, viewModel.TitleBarToggles.Count);
        }
 public TestResourceModel()
 {
     _serverID        = Guid.Empty;
     WorkflowActivity = null;
     TagList          = new List <string>();
     Error            = "";
     HasErrors        = false;
     Errors           = new ObservableReadOnlyList <IErrorInfo>();
     FixedErrors      = new ObservableReadOnlyList <IErrorInfo>();
 }
Esempio n. 5
0
 public TestResourceModel()
 {
     _serverID = Guid.Empty;
     WorkflowActivity = null;
     TagList = new List<string>();
     Error = "";
     HasErrors = false;
     Errors = new ObservableReadOnlyList<IErrorInfo>();
     FixedErrors = new ObservableReadOnlyList<IErrorInfo>();
 }
Esempio n. 6
0
        void VerifyCollectionChangedBoundToCollectionViewDoesNotThrowException(Action <ObservableReadOnlyList <string> > action)
        {
            //------------Setup for test--------------------------

            var otherDone = new ManualResetEventSlim(false);

            //
            // Create list and view on the Dispatcher.CurrentDispatcher thread
            // MUST bind to CollectionView!!
            //
            var observableReadOnlyList = new ObservableReadOnlyList <string> {
                "item1", "item2"
            };
            var px = new PrivateObject(observableReadOnlyList);

            px.SetProperty("TestDispatcherFrame", new DispatcherFrame());

            var collectionView = CollectionViewSource.GetDefaultView(observableReadOnlyList);

            //
            // Modify list from another thread
            //
            string exceptionMessage = null;
            var    otherThread      = new Thread(() =>
            {
                try
                {
                    action?.Invoke(observableReadOnlyList);

                    exceptionMessage = null;
                }
                catch (Exception ex)
                {
                    exceptionMessage = ex.Message;
                }
                finally
                {
                    otherDone.Set();
                }
            });

            //------------Execute Test---------------------------
            otherThread.Start();


            // Wait for thread to finish
            Dispatcher.PushFrame((DispatcherFrame)px.GetProperty("TestDispatcherFrame"));

            otherDone.Wait();

            //------------Assert Results-------------------------
            Assert.IsNull(exceptionMessage);
        }
Esempio n. 7
0
        public void ObservableReadOnlyList_INotifyCollectionChanged_Implemented()
        {
            //------------Setup for test--------------------------
            var observableReadOnlyList = new ObservableReadOnlyList <string>(new List <string> {
                "Item1", "Item2", "Item3"
            });

            var collectionChanged = false;

            observableReadOnlyList.CollectionChanged += (sender, args) => collectionChanged = true;

            //------------Execute Test---------------------------
            observableReadOnlyList.Add("item4");

            //------------Assert Results-------------------------
            Assert.IsInstanceOfType(observableReadOnlyList, typeof(INotifyCollectionChanged));
            Assert.IsTrue(collectionChanged);
        }
Esempio n. 8
0
        public void ObservableReadOnlyList_IReadOnlyCollection_Implemented()
        {
            //------------Setup for test--------------------------
            var observableReadOnlyList = new ObservableReadOnlyList <string>();

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

            //------------Assert Results-------------------------
            Assert.IsInstanceOfType(observableReadOnlyList, typeof(IReadOnlyCollection <string>));
            Assert.IsTrue(observableReadOnlyList.IsReadOnly);

            observableReadOnlyList.Add("Item1");
            observableReadOnlyList.Add("Item2");
            observableReadOnlyList.Add("Item3");

            Assert.AreEqual(3, observableReadOnlyList.Count);
            Assert.AreEqual("Item1", observableReadOnlyList[0]);
            Assert.AreEqual("Item2", observableReadOnlyList[1]);
            Assert.AreEqual("Item3", observableReadOnlyList[2]);

            var contains    = observableReadOnlyList.Contains("Item3");
            var notContains = observableReadOnlyList.Contains("Item4");

            Assert.IsTrue(contains);
            Assert.IsFalse(notContains);

            observableReadOnlyList.Remove("Item2");
            Assert.AreEqual(2, observableReadOnlyList.Count);
            Assert.AreEqual("Item1", observableReadOnlyList[0]);
            Assert.AreEqual("Item3", observableReadOnlyList[1]);

            var array = new string[3];

            observableReadOnlyList.CopyTo(array, 1);

            Assert.IsNull(array[0]);
            Assert.AreEqual("Item1", array[1]);
            Assert.AreEqual("Item3", array[2]);
        }
Esempio n. 9
0
        public void ObservableReadOnlyList_IEnumerable_Implemented()
        {
            //------------Setup for test--------------------------
            var observableReadOnlyList = new ObservableReadOnlyList <string>(new List <string> {
                "Item1", "Item2", "Item3"
            });

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

            //------------Assert Results-------------------------
            Assert.IsInstanceOfType(observableReadOnlyList, typeof(IEnumerable <string>));

            var enumeratorCount = 0;
            var enumerator      = observableReadOnlyList.GetEnumerator();

            while (enumerator.MoveNext())
            {
                Assert.AreEqual("Item" + ++enumeratorCount, enumerator.Current);
            }

            Assert.AreEqual(3, enumeratorCount);
        }
Esempio n. 10
0
        public static Mock <IContextualResourceModel> CreateResourceModel(Guid resourceID, out Mock <IResourceRepository> resourceRepository, params IErrorInfo[] resourceErrors)
        {
            var connection = new Mock <IEnvironmentConnection>();

            connection.Setup(conn => conn.ServerEvents).Returns(new EventPublisher());

            var environmentID = Guid.NewGuid();
            var environment   = new Mock <IEnvironmentModel>();

            environment.Setup(e => e.Connection).Returns(connection.Object);
            environment.Setup(e => e.ID).Returns(environmentID);
            environment.Setup(e => e.IsConnected).Returns(true);

            var errors = new ObservableReadOnlyList <IErrorInfo>();

            if (resourceErrors != null)
            {
                foreach (var resourceError in resourceErrors)
                {
                    errors.Add(resourceError);
                }
            }

            var model = new Mock <IContextualResourceModel>();

            model.Setup(r => r.ResourceName).Returns("TestResource");
            model.Setup(r => r.ServerID).Returns(Guid.NewGuid());
            model.Setup(r => r.WorkflowXaml).Returns(new StringBuilder("<root/>"));
            model.Setup(m => m.Errors).Returns(errors);
            model.Setup(m => m.ID).Returns(resourceID);
            model.Setup(m => m.Environment).Returns(environment.Object);
            model.Setup(m => m.GetErrors(It.IsAny <Guid>())).Returns(errors);
            model.Setup(m => m.RemoveError(It.IsAny <IErrorInfo>())).Callback((IErrorInfo error) => errors.Remove(error));

            resourceRepository = new Mock <IResourceRepository>();

            environment.Setup(e => e.ResourceRepository).Returns(resourceRepository.Object);
            return(model);
        }
        public void ObservableReadOnlyList_IReadOnlyCollection_Implemented()
        {
            //------------Setup for test--------------------------
            var observableReadOnlyList = new ObservableReadOnlyList<string>();

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

            //------------Assert Results-------------------------
            Assert.IsInstanceOfType(observableReadOnlyList, typeof(IReadOnlyCollection<string>));
            Assert.IsTrue(observableReadOnlyList.IsReadOnly);

            observableReadOnlyList.Add("Item1");
            observableReadOnlyList.Add("Item2");
            observableReadOnlyList.Add("Item3");

            Assert.AreEqual(3, observableReadOnlyList.Count);
            Assert.AreEqual("Item1", observableReadOnlyList[0]);
            Assert.AreEqual("Item2", observableReadOnlyList[1]);
            Assert.AreEqual("Item3", observableReadOnlyList[2]);

            var contains = observableReadOnlyList.Contains("Item3");
            var notContains = observableReadOnlyList.Contains("Item4");
            Assert.IsTrue(contains);
            Assert.IsFalse(notContains);

            observableReadOnlyList.Remove("Item2");
            Assert.AreEqual(2, observableReadOnlyList.Count);
            Assert.AreEqual("Item1", observableReadOnlyList[0]);
            Assert.AreEqual("Item3", observableReadOnlyList[1]);

            var array = new string[3];
            observableReadOnlyList.CopyTo(array, 1);

            Assert.IsNull(array[0]);
            Assert.AreEqual("Item1", array[1]);
            Assert.AreEqual("Item3", array[2]);
        }
        public void ObservableReadOnlyList_IEnumerable_Implemented()
        {
            //------------Setup for test--------------------------
            var observableReadOnlyList = new ObservableReadOnlyList<string>(new List<string> { "Item1", "Item2", "Item3" });

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

            //------------Assert Results-------------------------
            Assert.IsInstanceOfType(observableReadOnlyList, typeof(IEnumerable<string>));

            var enumeratorCount = 0;
            var enumerator = observableReadOnlyList.GetEnumerator();
            while(enumerator.MoveNext())
            {
                Assert.AreEqual("Item" + ++enumeratorCount, enumerator.Current);
            }

            Assert.AreEqual(3, enumeratorCount);
        }
        public void ServiceDesignerViewModel_WhenRemoteEnvironmentLoads_ShouldUseNameToFindEnvironment()
        {
            //------------Setup for test--------------------------
            var resourceID = Guid.Empty;

            var connection = new Mock<IEnvironmentConnection>();
            connection.Setup(conn => conn.ServerEvents).Returns(new EventPublisher());

            var environmentID = Guid.NewGuid();


            var environment = new Mock<IEnvironmentModel>();
            environment.Setup(e => e.Connection).Returns(connection.Object);
            environment.Setup(e => e.ID).Returns(environmentID);
            environment.Setup(e => e.IsConnected).Returns(true);
            environment.Setup(model => model.IsLocalHost).Returns(false);
            environment.Setup(e => e.IsLocalHostCheck()).Returns(false);

            var errors = new ObservableReadOnlyList<IErrorInfo>();

            var resourceModel = new Mock<IContextualResourceModel>();
            resourceModel.Setup(r => r.ResourceName).Returns("TestResource").Verifiable();
            resourceModel.Setup(r => r.ServerID).Returns(Guid.NewGuid());
            resourceModel.Setup(r => r.WorkflowXaml).Returns(new StringBuilder("<root/>"));
            resourceModel.Setup(m => m.Errors).Returns(errors);
            resourceModel.Setup(m => m.ID).Returns(resourceID);
            resourceModel.Setup(m => m.Environment).Returns(environment.Object);
            resourceModel.Setup(m => m.GetErrors(It.IsAny<Guid>())).Returns(errors);
            resourceModel.Setup(m => m.HasErrors).Returns(() => false);
            resourceModel.SetupProperty(m => m.IsValid);
            resourceModel.Setup(m => m.RemoveError(It.IsAny<IErrorInfo>())).Callback((IErrorInfo error) => errors.Remove(error));

            resourceModel.Setup(model => model.DataList).Returns("<DataList><n1/></DataList>");

            var resources = new Mock<IResourceRepository>();

            environment.Setup(a => a.ResourceRepository).Returns(resources.Object);
            var dataListViewModel = new DataListViewModel();
            dataListViewModel.InitializeDataListViewModel(resourceModel.Object);
            dataListViewModel.ScalarCollection.Add(new DataListItemModel("n1"));
            DataListSingleton.SetDataList(dataListViewModel);

            var rootModel = CreateResourceModel(resourceID);

            var envRepository = new Mock<IEnvironmentRepository>();
            envRepository.Setup(r => r.FindSingle(It.IsAny<Expression<Func<IEnvironmentModel, bool>>>())).Returns(resourceModel.Object.Environment);
            envRepository.Setup(r => r.ActiveEnvironment).Returns(resourceModel.Object.Environment);

            var activity = new DsfActivity
            {
                ServiceName = "bob",
                ResourceID = new InArgument<Guid>(resourceID),
                EnvironmentID = new InArgument<Guid>(Guid.Empty),
                UniqueID = Guid.Empty.ToString(),
                SimulationMode = SimulationMode.OnDemand,
                InputMapping = "<Inputs><Input Name=\"n1\" Source=\"[[n1]]\" /></Inputs>",
                OutputMapping = "<Outputs><Output Name=\"n1\" MapsTo=\"[[n1]]\" Value=\"[[n1]]\" /></Outputs>"
            };

            var modelItem = CreateModelItem(activity);
            var worker = new Mock<IAsyncWorker>();
            // ReSharper disable MaximumChainedReferences
            worker.Setup(a => a.Start(It.IsAny<System.Action>(), It.IsAny<System.Action>()))
                .Callback((System.Action a, System.Action b) =>
                // ReSharper restore MaximumChainedReferences
                {
                    a.Invoke();
                    b.Invoke();
                }
                );
            //------------Execute Test---------------------------
            // ReSharper disable UnusedVariable


            var viewModel = new ServiceDesignerViewModel(modelItem, rootModel.Object, envRepository.Object, new Mock<IEventAggregator>().Object, worker.Object);
            var webFact = new Mock<IWebActivityFactory>();
            var wa = new Mock<IWebActivity>();
            // ReSharper disable MaximumChainedReferences
            webFact.Setup(
                a => a.CreateWebActivity(It.IsAny<Object>(), It.IsAny<IContextualResourceModel>(), It.IsAny<string>())).Returns(wa.Object).Verifiable();
            // ReSharper restore MaximumChainedReferences
            viewModel.ActivityFactory = webFact.Object;

            var mappingF = new Mock<IDataMappingViewModelFactory>();
            var mapping = new Mock<IDataMappingViewModel>();
            mapping.Setup(a => a.GetOutputString(It.IsAny<IList<IInputOutputViewModel>>())).Returns("bob");
            // ReSharper disable once MaximumChainedReferences
            mappingF.Setup(a => a.CreateModel(It.IsAny<IWebActivity>(), It.IsAny<NotifyCollectionChangedEventHandler>()))
                    .Returns(mapping.Object);
            viewModel.MappingFactory = mappingF.Object;

            // ReSharper restore UnusedVariable
            // ReSharper disable MaximumChainedReferences
            // ReSharper disable MaximumChainedReferences
            resources.Setup(a => a.FindSingle(It.IsAny<Expression<Func<IResourceModel, bool>>>(), true, false))
                .Returns(resourceModel.Object)
                .Callback((Expression<Func<IResourceModel, bool>> expression, bool b) => Assert.IsTrue(expression.ToString().Contains("c => (c.ResourceName == ")))

                .Verifiable();
            // ReSharper restore MaximumChainedReferences
            environment.Setup(a => a.IsConnected).Returns(true);

            environment.Raise((a => a.ResourcesLoaded += null), new ResourcesLoadedEventArgs { Model = environment.Object });

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

            Assert.IsTrue(viewModel.LastValidationMemo.Errors.First().Message.Contains("Incorrect Version. The remote workflow has changed.Please refresh"));

        }
        void VerifyCollectionChangedBoundToCollectionViewDoesNotThrowException(Action<ObservableReadOnlyList<string>> action)
        {
            //------------Setup for test--------------------------

            var otherDone = new ManualResetEventSlim(false);

            //
            // Create list and view on the Dispatcher.CurrentDispatcher thread
            // MUST bind to CollectionView!!
            //
            var observableReadOnlyList = new ObservableReadOnlyList<string> { "item1", "item2" };
            observableReadOnlyList.TestDispatcherFrame = new DispatcherFrame();
            var collectionView = CollectionViewSource.GetDefaultView(observableReadOnlyList);

            //
            // Modify list from another thread
            //
            string exceptionMessage = null;
            var otherThread = new Thread(() =>
            {
                try
                {
                    action(observableReadOnlyList);

                    exceptionMessage = null;
                }
                catch(Exception ex)
                {
                    exceptionMessage = ex.Message;
                }
                finally
                {
                    otherDone.Set();
                }
            });

            //------------Execute Test---------------------------
            otherThread.Start();

            // Wait for thread to finish
            Dispatcher.PushFrame(observableReadOnlyList.TestDispatcherFrame);

            otherDone.Wait();

            //------------Assert Results-------------------------
            Assert.IsNull(exceptionMessage);
        }
        public void ObservableReadOnlyList_INotifyCollectionChanged_Implemented()
        {
            //------------Setup for test--------------------------
            var observableReadOnlyList = new ObservableReadOnlyList<string>(new List<string> { "Item1", "Item2", "Item3" });

            var collectionChanged = false;
            observableReadOnlyList.CollectionChanged += (sender, args) => collectionChanged = true;

            //------------Execute Test---------------------------
            observableReadOnlyList.Add("item4");

            //------------Assert Results-------------------------
            Assert.IsInstanceOfType(observableReadOnlyList, typeof(INotifyCollectionChanged));
            Assert.IsTrue(collectionChanged);
        }
        public void ServiceDesignerViewModel_WhenResourceHasSource_ShouldGetSourceName()
        {
            //------------Setup for test--------------------------
            var resourceID = Guid.NewGuid();

            var connection = new Mock<IEnvironmentConnection>();
            connection.Setup(conn => conn.ServerEvents).Returns(new EventPublisher());

            var environmentID = Guid.NewGuid();
            var environment = new Mock<IEnvironmentModel>();
            environment.Setup(e => e.Connection).Returns(connection.Object);
            environment.Setup(e => e.ID).Returns(environmentID);
            environment.Setup(e => e.IsConnected).Returns(true);
            environment.Setup(model => model.IsLocalHost).Returns(false);
            environment.Setup(e => e.IsLocalHostCheck()).Returns(false);

            var errors = new ObservableReadOnlyList<IErrorInfo>();

            var resourceModel = new Mock<IContextualResourceModel>();
            resourceModel.Setup(r => r.ResourceName).Returns("TestResource");
            resourceModel.Setup(r => r.ServerID).Returns(Guid.NewGuid());
            resourceModel.Setup(r => r.WorkflowXaml).Returns(new StringBuilder("<root/>"));
            resourceModel.Setup(m => m.Errors).Returns(errors);
            resourceModel.Setup(m => m.ID).Returns(resourceID);
            resourceModel.Setup(m => m.Environment).Returns(environment.Object);
            resourceModel.Setup(m => m.GetErrors(It.IsAny<Guid>())).Returns(errors);
            resourceModel.Setup(m => m.HasErrors).Returns(() => false);
            resourceModel.SetupProperty(m => m.IsValid);
            resourceModel.Setup(m => m.RemoveError(It.IsAny<IErrorInfo>())).Callback((IErrorInfo error) => errors.Remove(error));

            resourceModel.Setup(model => model.DataList).Returns("<DataList><n1/></DataList>");
            var dataListViewModel = new DataListViewModel();
            dataListViewModel.InitializeDataListViewModel(resourceModel.Object);
            dataListViewModel.ScalarCollection.Add(new DataListItemModel("n1"));
            DataListSingleton.SetDataList(dataListViewModel);

            var rootModel = CreateResourceModel(resourceID);

            var envRepository = new Mock<IEnvironmentRepository>();
            envRepository.Setup(r => r.FindSingle(It.IsAny<Expression<Func<IEnvironmentModel, bool>>>())).Returns(resourceModel.Object.Environment);
            envRepository.Setup(r => r.ActiveEnvironment).Returns(resourceModel.Object.Environment);


            var activity = new DsfActivity
            {
                ResourceID = new InArgument<Guid>(resourceID),
                EnvironmentID = new InArgument<Guid>(Guid.Empty),
                UniqueID = Guid.NewGuid().ToString(),
                SimulationMode = SimulationMode.OnDemand,
                InputMapping = "<Inputs><Input Name=\"n1\" Source=\"[[n1]]\" /></Inputs>",
                OutputMapping = "<Outputs><Output Name=\"n1\" MapsTo=\"[[n1]]\" Value=\"[[n1]]\" /></Outputs>"
            };

            var modelItem = CreateModelItem(activity);
            var resRepo = new Mock<IResourceRepository>();
            var srcRes = new Mock<IResourceModel>();
            srcRes.Setup(a => a.DisplayName).Returns("bob");
            resRepo.Setup(a => a.FindSingle(It.IsAny<Expression<Func<IResourceModel, bool>>>(), false, false)).Returns(srcRes.Object);
            environment.Setup(a => a.ResourceRepository).Returns(resRepo.Object);
            //------------Execute Test---------------------------
            var viewModel = new ServiceDesignerViewModel(modelItem, rootModel.Object, envRepository.Object, new Mock<IEventAggregator>().Object);
            //------------Assert Results-------------------------
            Assert.AreEqual("bob", viewModel.Properties.FirstOrDefault(a => a.Key == "Source :").Value);

        }
        public void ServiceDesignerViewModel_WhenRemoteEnvironmentLoads_ShouldNotSetVersionMemoIfCorrect()
        {
            //------------Setup for test--------------------------
            var resourceID = Guid.NewGuid();

            var connection = new Mock<IEnvironmentConnection>();
            connection.Setup(conn => conn.ServerEvents).Returns(new EventPublisher());

            var environmentID = Guid.NewGuid();


            var environment = new Mock<IEnvironmentModel>();
            environment.Setup(e => e.Connection).Returns(connection.Object);
            environment.Setup(e => e.ID).Returns(environmentID);
            environment.Setup(e => e.IsConnected).Returns(true);
            environment.Setup(model => model.IsLocalHost).Returns(false);
            environment.Setup(model => model.IsLocalHostCheck()).Returns(false);

            var errors = new ObservableReadOnlyList<IErrorInfo>();

            var resourceModel = new Mock<IContextualResourceModel>();
            resourceModel.Setup(r => r.ResourceName).Returns("TestResource");
            resourceModel.Setup(r => r.ServerID).Returns(Guid.NewGuid());
            resourceModel.Setup(r => r.WorkflowXaml).Returns(new StringBuilder("<root/>"));
            resourceModel.Setup(m => m.Errors).Returns(errors);
            resourceModel.Setup(m => m.ID).Returns(resourceID);
            resourceModel.Setup(m => m.Environment).Returns(environment.Object);
            resourceModel.Setup(m => m.GetErrors(It.IsAny<Guid>())).Returns(errors);
            resourceModel.Setup(m => m.HasErrors).Returns(() => false);
            resourceModel.SetupProperty(m => m.IsValid);
            resourceModel.Setup(m => m.RemoveError(It.IsAny<IErrorInfo>())).Callback((IErrorInfo error) => errors.Remove(error));

            resourceModel.Setup(model => model.DataList).Returns("<DataList><n1/></DataList>");

            var resources = new Mock<IResourceRepository>();
            // ReSharper disable MaximumChainedReferences
            resources.Setup(a => a.FindSingle(It.IsAny<Expression<Func<IResourceModel, bool>>>(), true, false))
                  .Callback((Expression<Func<IResourceModel, bool>> expression, bool b,bool c) => Assert.IsTrue(expression.ToString().Contains("c => (c.ID == ")))
                  .Returns(resourceModel.Object).Verifiable();
            // ReSharper restore MaximumChainedReferences
            environment.Setup(a => a.ResourceRepository).Returns(resources.Object);
            var dataListViewModel = new DataListViewModel();
            dataListViewModel.InitializeDataListViewModel(resourceModel.Object);
            dataListViewModel.ScalarCollection.Add(new DataListItemModel("n1"));
            DataListSingleton.SetDataList(dataListViewModel);

            var rootModel = CreateResourceModel(resourceID);

            var envRepository = new Mock<IEnvironmentRepository>();
            envRepository.Setup(r => r.FindSingle(It.IsAny<Expression<Func<IEnvironmentModel, bool>>>())).Returns(resourceModel.Object.Environment);
            envRepository.Setup(r => r.ActiveEnvironment).Returns(resourceModel.Object.Environment);

            var activity = new DsfActivity
            {
                ResourceID = new InArgument<Guid>(resourceID),
                EnvironmentID = new InArgument<Guid>(Guid.Empty),
                UniqueID = Guid.NewGuid().ToString(),
                SimulationMode = SimulationMode.OnDemand,
                InputMapping = "<Inputs></Inputs>",
                OutputMapping = "<Outputs></Outputs>"
            };

            var modelItem = CreateModelItem(activity);
            var worker = new Mock<IAsyncWorker>();
            // ReSharper disable MaximumChainedReferences
            worker.Setup(a => a.Start(It.IsAny<System.Action>(), It.IsAny<System.Action>())).Callback(
                // ReSharper restore MaximumChainedReferences
                (
                    System.Action a, System.Action b) =>
                {
                    a.Invoke();
                    b.Invoke();
                }
                );
            //------------Execute Test---------------------------
            // ReSharper disable UnusedVariable
            var viewModel = new ServiceDesignerViewModel(modelItem, rootModel.Object, envRepository.Object, new Mock<IEventAggregator>().Object, worker.Object);
            // ReSharper restore UnusedVariable
            environment.Setup(a => a.IsConnected).Returns(true);
            connection.Setup(a => a.Verify(It.IsAny<Action<ConnectResult>>(), true)).Verifiable();
            environment.Raise((a => a.ResourcesLoaded += null), new ResourcesLoadedEventArgs { Model = environment.Object });

            //------------Assert Results-------------------------
            Assert.IsTrue(viewModel.LastValidationMemo.Errors.Count == 0);

        }
Esempio n. 18
0
        public static Mock<IContextualResourceModel> CreateResourceModel(Guid resourceID, out Mock<IResourceRepository> resourceRepository, params IErrorInfo[] resourceErrors)
        {
            var connection = new Mock<IEnvironmentConnection>();
            connection.Setup(conn => conn.ServerEvents).Returns(new EventPublisher());

            var environmentID = Guid.NewGuid();
            var environment = new Mock<IEnvironmentModel>();
            environment.Setup(e => e.Connection).Returns(connection.Object);
            environment.Setup(e => e.ID).Returns(environmentID);
            environment.Setup(e => e.IsConnected).Returns(true);

            var errors = new ObservableReadOnlyList<IErrorInfo>();
            if (resourceErrors != null)
            {
                foreach (var resourceError in resourceErrors)
                {
                    errors.Add(resourceError);
                }
            }

            var model = new Mock<IContextualResourceModel>();
            model.Setup(r => r.ResourceName).Returns("TestResource");
            model.Setup(r => r.ServerID).Returns(Guid.NewGuid());
            model.Setup(r => r.WorkflowXaml).Returns(new StringBuilder("<root/>"));
            model.Setup(m => m.Errors).Returns(errors);
            model.Setup(m => m.ID).Returns(resourceID);
            model.Setup(m => m.Environment).Returns(environment.Object);
            model.Setup(m => m.GetErrors(It.IsAny<Guid>())).Returns(errors);
            model.Setup(m => m.RemoveError(It.IsAny<IErrorInfo>())).Callback((IErrorInfo error) => errors.Remove(error));

            resourceRepository = new Mock<IResourceRepository>();

            environment.Setup(e => e.ResourceRepository).Returns(resourceRepository.Object);
            return model;
        }
        static Mock<IContextualResourceModel> CreateResourceModel(Guid resourceID, out Mock<IResourceRepository> resourceRepository, params IErrorInfo[] resourceErrors)
        {
            var connection = new Mock<IEnvironmentConnection>();
            connection.Setup(conn => conn.ServerEvents).Returns(new EventPublisher());

            var environmentID = Guid.NewGuid();
            var environment = new Mock<IEnvironmentModel>();
            environment.Setup(e => e.Connection).Returns(connection.Object);
            environment.Setup(e => e.ID).Returns(environmentID);
            environment.Setup(e => e.IsConnected).Returns(true);
            environment.Setup(e => e.HasLoadedResources).Returns(true);
            environment.Setup(e => e.IsLocalHost).Returns(true);
            environment.Setup(e => e.IsLocalHostCheck()).Returns(true);
            var errors = new ObservableReadOnlyList<IErrorInfo>();
            if (resourceErrors != null)
            {
                foreach (var resourceError in resourceErrors)
                {
                    errors.Add(resourceError);
                }
            }

            var model = new Mock<IContextualResourceModel>();
            model.Setup(r => r.ResourceName).Returns("TestResource");
            model.Setup(r => r.ServerID).Returns(Guid.NewGuid());
            model.Setup(r => r.WorkflowXaml).Returns(new StringBuilder("<root/>"));
            model.Setup(m => m.Errors).Returns(errors);
            model.Setup(m => m.ID).Returns(resourceID);
            var environmentModel = environment.Object;
            model.Setup(m => m.Environment).Returns(environmentModel);
            model.Setup(m => m.GetErrors(It.IsAny<Guid>())).Returns(errors);
            model.Setup(m => m.HasErrors).Returns(() => model.Object.Errors.Count > 0);
            model.SetupProperty(m => m.IsValid);
            model.Setup(m => m.RemoveError(It.IsAny<IErrorInfo>())).Callback((IErrorInfo error) => errors.Remove(error));

            resourceRepository = new Mock<IResourceRepository>();
            var mockEnvironmentRepository = new Mock<IEnvironmentRepository>();
            mockEnvironmentRepository.Setup(e => e.LookupEnvironments(It.IsAny<IEnvironmentModel>(), null)).Returns(new List<IEnvironmentModel> { environmentModel });
            // ReSharper disable ObjectCreationAsStatement
            new EnvironmentRepository(mockEnvironmentRepository.Object);
            // ReSharper restore ObjectCreationAsStatement
            environment.Setup(e => e.ResourceRepository).Returns(resourceRepository.Object);
            return model;
        }
        public void ActivityDesignerViewModel_Collapse_HelpButtonGetsRemovedOnCollapse()
        {
            //------------Setup for test--------------------------
            var mockModelItem = GenerateMockModelItem();
            Mock<IContextualResourceModel> setupResourceModelMock = Dev2MockFactory.SetupResourceModelMock();
            ErrorInfo errorInfo = new ErrorInfo { InstanceID = new Guid() };

            var envRepo = new Mock<IEnvironmentRepository>();
            envRepo.Setup(e => e.ActiveEnvironment).Returns(setupResourceModelMock.Object.Environment);

            IObservableReadOnlyList<IErrorInfo> testErrors = new ObservableReadOnlyList<IErrorInfo> { errorInfo };
            setupResourceModelMock.Setup(c => c.Errors).Returns(testErrors);
            setupResourceModelMock.Setup(c => c.GetErrors(It.IsAny<Guid>())).Returns(new List<IErrorInfo> { errorInfo });
            var viewModel = new ServiceDesignerViewModel(mockModelItem.Object, setupResourceModelMock.Object, envRepo.Object, new Mock<IEventAggregator>().Object, new TestAsyncWorker());

            Assert.AreEqual(1, viewModel.TitleBarToggles.Count);

            viewModel.ShowLarge = true;

            Assert.AreEqual(2, viewModel.TitleBarToggles.Count);

            //------------Execute Test---------------------------
            viewModel.Collapse();

            //------------Assert Results-------------------------
            Assert.AreEqual(1, viewModel.TitleBarToggles.Count);
        }