public void WorkSurfaceContextViewModel_SaveCallsCheckForServerMessages()
 {
     //------------Setup for test--------------------------
     var workSurfaceKey = new WorkSurfaceKey();
     var mockWorkSurfaceViewModel = new Mock<IWorkflowDesignerViewModel>();
     var mockedConn = new Mock<IEnvironmentConnection>();
     mockedConn.Setup(conn => conn.ServerEvents).Returns(new Mock<IEventPublisher>().Object);
     var mockEnvironmentModel = new Mock<IEnvironmentModel>();
     mockEnvironmentModel.Setup(model => model.Connection).Returns(mockedConn.Object);
     mockEnvironmentModel.SetupGet(p => p.IsConnected).Returns(true);
     var mockRepository = new Mock<IResourceRepository>();
     mockRepository.Setup(c => c.FetchResourceDefinition(It.IsAny<IEnvironmentModel>(), It.IsAny<Guid>(), It.IsAny<Guid>(), It.IsAny<bool>())).Returns(new ExecuteMessage());
     mockRepository.Setup(m => m.Save(It.IsAny<IResourceModel>())).Verifiable();
     mockRepository.Setup(c => c.SaveToServer(It.IsAny<IResourceModel>())).Returns(new ExecuteMessage());
     mockEnvironmentModel.SetupGet(p => p.ResourceRepository).Returns(mockRepository.Object);
     var environmentModel = mockEnvironmentModel.Object;
     mockWorkSurfaceViewModel.Setup(model => model.EnvironmentModel).Returns(environmentModel);
     mockWorkSurfaceViewModel.Setup(m => m.BindToModel()).Verifiable();
     var workSurfaceViewModel = mockWorkSurfaceViewModel.As<IWorkSurfaceViewModel>();
     var workSurfaceContextViewModel = new WorkSurfaceContextViewModel(workSurfaceKey, workSurfaceViewModel.Object);
     var mockResourceModel = new Mock<IContextualResourceModel>();
     mockResourceModel.SetupGet(p => p.Environment).Returns(environmentModel);
     mockResourceModel.Setup(m => m.UserPermissions).Returns(Permissions.Contribute);
     //------------Execute Test---------------------------
     workSurfaceContextViewModel.Handle(new SaveResourceMessage(mockResourceModel.Object, false, false));
 }
        public void WorkSurfaceContextViewModel_SaveCallsCheckForServerMessages_NoMessagesAvailable_NothingHappen()
        {
            //------------Setup for test--------------------------
            var workSurfaceKey = new WorkSurfaceKey();
            var mockWorkSurfaceViewModel = new Mock<IWorkflowDesignerViewModel>();
            var mockedConn = new Mock<IEnvironmentConnection>();
            mockedConn.Setup(conn => conn.ServerEvents).Returns(new Mock<IEventPublisher>().Object);
            var mockEnvironmentModel = new Mock<IEnvironmentModel>();
            mockEnvironmentModel.Setup(model => model.Connection).Returns(mockedConn.Object);
            mockEnvironmentModel.SetupGet(p => p.IsConnected).Returns(true);
            var mockRepository = new Mock<IResourceRepository>();
            mockRepository.Setup(c => c.FetchResourceDefinition(It.IsAny<IEnvironmentModel>(), It.IsAny<Guid>(), It.IsAny<Guid>(), It.IsAny<bool>())).Returns(new ExecuteMessage());
            mockRepository.Setup(m => m.Save(It.IsAny<IResourceModel>())).Verifiable();
            mockRepository.Setup(c => c.SaveToServer(It.IsAny<IResourceModel>())).Returns(new ExecuteMessage());
            mockEnvironmentModel.SetupGet(p => p.ResourceRepository).Returns(mockRepository.Object);
            var environmentModel = mockEnvironmentModel.Object;
            mockWorkSurfaceViewModel.Setup(model => model.EnvironmentModel).Returns(environmentModel);
            mockWorkSurfaceViewModel.Setup(m => m.BindToModel()).Verifiable();
            var workSurfaceViewModel = mockWorkSurfaceViewModel.As<IWorkSurfaceViewModel>();

            // object to work on
            var workSurfaceContextViewModel = new WorkSurfaceContextViewModel(workSurfaceKey, workSurfaceViewModel.Object);

            var st = new Mock<IStudioCompileMessageRepoFactory>();
            var mr = new Mock<IStudioCompileMessageRepo>();
            workSurfaceContextViewModel.StudioCompileMessageRepoFactory = st.Object;
            st.Setup(x => x.Create()).Returns(mr.Object);
            mr.Setup(a => a.GetCompileMessagesFromServer(It.IsAny<IContextualResourceModel>())).Returns(new CompileMessageList());
            var resourceChangedFactory = new Mock<IResourceChangeHandlerFactory>();
            var rsHandler = new Mock<IResourceChangeHandler>();
            resourceChangedFactory.Setup(a => a.Create(new Mock<IEventAggregator>().Object)).Returns(rsHandler.Object);
            workSurfaceContextViewModel.ResourceChangeHandlerFactory = resourceChangedFactory.Object;

            var mockResourceModel = new Mock<IContextualResourceModel>();
            mockResourceModel.SetupGet(p => p.Environment).Returns(environmentModel);
            mockResourceModel.Setup(m => m.UserPermissions).Returns(Permissions.Contribute);

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

            workSurfaceContextViewModel.Handle(new SaveResourceMessage(mockResourceModel.Object, false, false));
            rsHandler.Verify(a => a.ShowResourceChanged(It.IsAny<IContextualResourceModel>(), It.IsAny<IList<string>>(), null), Times.Never());
        }
        public void WorkSurfaceContextViewModel_Handle_Save_WhenContextualResourceModelIsNotNull()
        {
            //------------Setup for test--------------------------
            var workSurfaceKey = new WorkSurfaceKey();
            var mockWorkSurfaceViewModel = new Mock<IWorkflowDesignerViewModel>();
            var mockedConn = new Mock<IEnvironmentConnection>();
            mockedConn.Setup(conn => conn.ServerEvents).Returns(new Mock<IEventPublisher>().Object);
            var mockEnvironmentModel = new Mock<IEnvironmentModel>();
            mockEnvironmentModel.Setup(model => model.Connection).Returns(mockedConn.Object);
            mockEnvironmentModel.SetupGet(p => p.IsConnected).Returns(true);
            var mockRepository = new Mock<IResourceRepository>();
            mockRepository.Setup(c => c.FetchResourceDefinition(It.IsAny<IEnvironmentModel>(), It.IsAny<Guid>(), It.IsAny<Guid>(), It.IsAny<bool>())).Returns(new ExecuteMessage());
            mockRepository.Setup(m => m.Save(It.IsAny<IResourceModel>())).Verifiable();
            mockRepository.Setup(c => c.SaveToServer(It.IsAny<IResourceModel>())).Returns(new ExecuteMessage());
            mockEnvironmentModel.SetupGet(p => p.ResourceRepository).Returns(mockRepository.Object);
            var environmentModel = mockEnvironmentModel.Object;
            mockWorkSurfaceViewModel.Setup(model => model.EnvironmentModel).Returns(environmentModel);
            mockWorkSurfaceViewModel.Setup(m => m.BindToModel()).Verifiable();
            var workSurfaceViewModel = mockWorkSurfaceViewModel.As<IWorkSurfaceViewModel>();
            var popup = new Mock<IPopupController>();
            bool called = false;
            var mockResourceModel = new Mock<IContextualResourceModel>();
            mockResourceModel.SetupGet(p => p.Environment).Returns(environmentModel);
            mockResourceModel.Setup(m => m.UserPermissions).Returns(Permissions.Contribute);
            var workSurfaceContextViewModel = new WorkSurfaceContextViewModel(new Mock<IEventAggregator>().Object, workSurfaceKey, workSurfaceViewModel.Object, popup.Object, (a, b) => { called = true; });

            mockWorkSurfaceViewModel.Setup(a => a.ResourceModel).Returns(mockResourceModel.Object);
            workSurfaceContextViewModel.WorkSurfaceViewModel = new WorkSurfaceViewModelTest();

            var dlvm = new Mock<IDataListViewModel>();
            dlvm.Setup(a => a.HasErrors).Returns(false);
            workSurfaceContextViewModel.DataListViewModel = dlvm.Object;
            mockResourceModel.Setup(a => a.IsNewWorkflow).Returns(true);
            //------------Execute Test---------------------------
            workSurfaceContextViewModel.Handle(new SaveResourceMessage(mockResourceModel.Object, false, false));
            //------------Assert---------------------------------
            Assert.IsTrue(called);
        }
 public void WorkSurfaceContextViewModel_Handle_Save_InvalidXml_CausesPopup()
 {
     //------------Setup for test--------------------------
     var workSurfaceKey = new WorkSurfaceKey();
     var mockWorkSurfaceViewModel = new Mock<IWorkflowDesignerViewModel>();
     var mockedConn = new Mock<IEnvironmentConnection>();
     mockedConn.Setup(conn => conn.ServerEvents).Returns(new Mock<IEventPublisher>().Object);
     var mockEnvironmentModel = new Mock<IEnvironmentModel>();
     mockEnvironmentModel.Setup(model => model.Connection).Returns(mockedConn.Object);
     mockEnvironmentModel.SetupGet(p => p.IsConnected).Returns(true);
     var mockRepository = new Mock<IResourceRepository>();
     mockRepository.Setup(c => c.FetchResourceDefinition(It.IsAny<IEnvironmentModel>(), It.IsAny<Guid>(), It.IsAny<Guid>(), It.IsAny<bool>())).Returns(new ExecuteMessage());
     mockRepository.Setup(m => m.Save(It.IsAny<IResourceModel>())).Verifiable();
     mockRepository.Setup(c => c.SaveToServer(It.IsAny<IResourceModel>())).Returns(new ExecuteMessage());
     mockEnvironmentModel.SetupGet(p => p.ResourceRepository).Returns(mockRepository.Object);
     var environmentModel = mockEnvironmentModel.Object;
     mockWorkSurfaceViewModel.Setup(model => model.EnvironmentModel).Returns(environmentModel);
     mockWorkSurfaceViewModel.Setup(m => m.BindToModel()).Verifiable();
     var workSurfaceViewModel = mockWorkSurfaceViewModel.As<IWorkSurfaceViewModel>();
     var popup = new Mock<IPopupController>();
     var workSurfaceContextViewModel = new WorkSurfaceContextViewModel(new Mock<IEventAggregator>().Object, workSurfaceKey, workSurfaceViewModel.Object, popup.Object, (a, b) => { });
     var mockResourceModel = new Mock<IContextualResourceModel>();
     mockResourceModel.SetupGet(p => p.Environment).Returns(environmentModel);
     mockResourceModel.Setup(m => m.UserPermissions).Returns(Permissions.Contribute);
     var dlvm = new Mock<IDataListViewModel>();
     dlvm.Setup(a => a.HasErrors).Returns(true);
     workSurfaceContextViewModel.DataListViewModel = dlvm.Object;
     //------------Execute Test---------------------------
     workSurfaceContextViewModel.Handle(new SaveResourceMessage(mockResourceModel.Object, false, false));
     //------------Assert---------------------------------
     popup.Verify(a => a.Show(It.IsAny<string>(), "Error Saving", MessageBoxButton.OK, MessageBoxImage.Error, "true"));
 }
 public void WorkSurfaceContextViewModel_Handle_ExecuteResourceMessage_CallsBindModelAndSave()
 {
     //------------Setup for test--------------------------
     CustomContainer.Register(new Mock<IWindowManager>().Object);
     var workSurfaceKey = new WorkSurfaceKey();
     var mockWorkSurfaceViewModel = new Mock<IWorkflowDesignerViewModel>();
     var mockedConn = new Mock<IEnvironmentConnection>();
     mockedConn.Setup(conn => conn.ServerEvents).Returns(new Mock<IEventPublisher>().Object);
     var mockEnvironmentModel = new Mock<IEnvironmentModel>();
     mockEnvironmentModel.Setup(model => model.Connection).Returns(mockedConn.Object);
     mockEnvironmentModel.SetupGet(p => p.IsConnected).Returns(true);
     var mockRepository = new Mock<IResourceRepository>();
     mockRepository.Setup(m => m.Save(It.IsAny<IResourceModel>())).Verifiable();
     mockEnvironmentModel.SetupGet(p => p.ResourceRepository).Returns(mockRepository.Object);
     var environmentModel = mockEnvironmentModel.Object;
     mockWorkSurfaceViewModel.Setup(model => model.EnvironmentModel).Returns(environmentModel);
     mockWorkSurfaceViewModel.Setup(m => m.BindToModel()).Verifiable();
     var workSurfaceViewModel = mockWorkSurfaceViewModel.As<IWorkSurfaceViewModel>();
     var workSurfaceContextViewModel = new WorkSurfaceContextViewModel(workSurfaceKey, workSurfaceViewModel.Object);
     var mockResourceModel = new Mock<IContextualResourceModel>();
     mockResourceModel.SetupGet(p => p.Environment).Returns(environmentModel);
     mockResourceModel.Setup(m => m.UserPermissions).Returns(Permissions.Contribute);
     //------------Execute Test---------------------------
     workSurfaceContextViewModel.Handle(new ExecuteResourceMessage(mockResourceModel.Object));
     //------------Assert---------------------------------
     mockWorkSurfaceViewModel.Verify(m => m.BindToModel(), Times.Once());
     mockRepository.Verify(m => m.Save(It.IsAny<IResourceModel>()), Times.Once());
 }
 public void WorkSurfaceContextViewModel_DebugOutputMessage_DebugStateHasNoData_RootItemsIsZero()
 {
     //------------Setup for test--------------------------
     var workSurfaceKey = new WorkSurfaceKey { WorkSurfaceContext = WorkSurfaceContext.Scheduler };
     var mockWorkSurfaceViewModel = new Mock<IWorkflowDesignerViewModel>();
     var mockedConn = new Mock<IEnvironmentConnection>();
     mockedConn.Setup(conn => conn.ServerEvents).Returns(new Mock<IEventPublisher>().Object);
     var mockEnvironmentModel = new Mock<IEnvironmentModel>();
     mockEnvironmentModel.Setup(model => model.Connection).Returns(mockedConn.Object);
     var environmentModel = mockEnvironmentModel.Object;
     mockWorkSurfaceViewModel.Setup(model => model.EnvironmentModel).Returns(environmentModel);
     var workSurfaceViewModel = mockWorkSurfaceViewModel.As<IWorkSurfaceViewModel>().Object;
     var workSurfaceContextViewModel = new WorkSurfaceContextViewModel(workSurfaceKey, workSurfaceViewModel) { DebugOutputViewModel = { DebugStatus = DebugStatus.Executing } };
     //------------Execute Test---------------------------
     workSurfaceContextViewModel.Handle(new DebugOutputMessage(new List<IDebugState>()));
     //------------Assert Results-------------------------
     Assert.AreEqual(0, workSurfaceContextViewModel.DebugOutputViewModel.RootItems.Count);
 }
        public void WorkSurfaceContextViewModel_DebugOutputMessage_DebugStateHasData_OnlyOneRootItemIsDisplayed()
        {
            //------------Setup for test--------------------------
            var workSurfaceKey = new WorkSurfaceKey { WorkSurfaceContext = WorkSurfaceContext.Scheduler };
            var mockWorkSurfaceViewModel = new Mock<IWorkflowDesignerViewModel>();
            var mockedConn = new Mock<IEnvironmentConnection>();
            mockedConn.Setup(conn => conn.ServerEvents).Returns(new Mock<IEventPublisher>().Object);
            var mockEnvironmentModel = new Mock<IEnvironmentModel>();
            mockEnvironmentModel.Setup(model => model.Connection).Returns(mockedConn.Object);
            var environmentModel = mockEnvironmentModel.Object;
            mockWorkSurfaceViewModel.Setup(model => model.EnvironmentModel).Returns(environmentModel);
            var workSurfaceViewModel = mockWorkSurfaceViewModel.As<IWorkSurfaceViewModel>().Object;
            var workSurfaceContextViewModel = new WorkSurfaceContextViewModel(workSurfaceKey, workSurfaceViewModel) { DebugOutputViewModel = { DebugStatus = DebugStatus.Executing } };
            const string msg = "[{\"$type\":\"Dev2.Diagnostics.Debug.DebugState, Dev2.Diagnostics\",\"ID\":\"cd902be2-a202-4d54-8c07-c5f56bae97fe\",\"ParentID\":\"00000000-0000-0000-0000-000000000000\",\"ServerID\":\"00000000-0000-0000-0000-000000000000\",\"EnvironmentID\":\"00000000-0000-0000-0000-000000000000\",\"ClientID\":\"00000000-0000-0000-0000-000000000000\",\"StateType\":64,\"DisplayName\":\"dave\",\"HasError\":true,\"ErrorMessage\":\"Service [ dave ] not found.\",\"Version\":\"\",\"Name\":\"DynamicServicesInvoker\",\"ActivityType\":0,\"Duration\":\"00:00:00\",\"DurationString\":\"PT0S\",\"StartTime\":\"2014-03-20T17:23:14.0224329+02:00\",\"EndTime\":\"2014-03-20T17:23:14.0224329+02:00\",\"Inputs\":[],\"Outputs\":[],\"Server\":\"\",\"WorkspaceID\":\"00000000-0000-0000-0000-000000000000\",\"OriginalInstanceID\":\"00000000-0000-0000-0000-000000000000\",\"OriginatingResourceID\":\"00000000-0000-0000-0000-000000000000\",\"IsSimulation\":false,\"Message\":null,\"NumberOfSteps\":0,\"Origin\":\"\",\"ExecutionOrigin\":0,\"ExecutionOriginDescription\":null,\"ExecutingUser\":null,\"SessionID\":\"00000000-0000-0000-0000-000000000000\"}]";

            var serializer = new Dev2JsonSerializer();
            var tmp = serializer.Deserialize<List<IDebugState>>(msg);
            //------------Execute Test---------------------------
            workSurfaceContextViewModel.Handle(new DebugOutputMessage(tmp));
            //------------Assert Results-------------------------
            Assert.AreEqual(1, workSurfaceContextViewModel.DebugOutputViewModel.RootItems.Count);
        }