public void MainViewModelOnDeactivateWithTrueExpectedSavesResourceModels() { lock (syncroot) { var wsiRepo = new Mock<IWorkspaceItemRepository>(); wsiRepo.Setup(r => r.WorkspaceItems).Returns(() => new List<IWorkspaceItem>()); wsiRepo.Setup(r => r.UpdateWorkspaceItem(It.IsAny<IContextualResourceModel>(), It.Is<bool>(b => b))).Verifiable(); SetupImportServiceForPersistenceTests(wsiRepo); var resourceID = Guid.NewGuid(); var serverID = Guid.NewGuid(); #region Setup resourceModel var resourceRepo = new Mock<IResourceRepository>(); resourceRepo.Setup(r => r.Save(It.IsAny<IResourceModel>())).Verifiable(); var envConn = new Mock<IEnvironmentConnection>(); var env = new Mock<IEnvironmentModel>(); env.Setup(e => e.ResourceRepository).Returns(resourceRepo.Object); env.Setup(e => e.Connection).Returns(envConn.Object); var resourceModel = new Mock<IContextualResourceModel>(); resourceModel.Setup(m => m.Environment).Returns(env.Object); resourceModel.Setup(m => m.ID).Returns(resourceID); #endregion var workflowHelper = new Mock<IWorkflowHelper>(); var designerViewModel = new WorkflowDesignerViewModel(resourceModel.Object, workflowHelper.Object, false); var contextViewModel = new WorkSurfaceContextViewModel( new WorkSurfaceKey { ResourceID = resourceID, ServerID = serverID, WorkSurfaceContext = designerViewModel.WorkSurfaceContext }, designerViewModel); var envRepo = new Mock<IEnvironmentRepository>(); var viewModel = new MainViewModelPersistenceMock(envRepo.Object, false); viewModel.Items.Add(contextViewModel); viewModel.TestClose(); wsiRepo.Verify(r => r.UpdateWorkspaceItem(It.IsAny<IContextualResourceModel>(), It.Is<bool>(b => b))); resourceRepo.Verify(r => r.Save(It.IsAny<IResourceModel>())); } }
public void MainViewModelOnDeactivateWithTrueExpectedSavesWorkspaceItems() { lock (syncroot) { var wsiRepo = new Mock<IWorkspaceItemRepository>(); wsiRepo.Setup(r => r.WorkspaceItems).Returns(() => new List<IWorkspaceItem>()); wsiRepo.Setup(r => r.Write()).Verifiable(); #region Setup ImportService - GRRR! var importServiceContext = new ImportServiceContext(); ImportService.CurrentContext = importServiceContext; ImportService.Initialize(new List<ComposablePartCatalog> { new FullTestAggregateCatalog() }); ImportService.AddExportedValueToContainer(wsiRepo.Object); ImportService.AddExportedValueToContainer(new Mock<IEventAggregator>().Object); #endregion var envRepo = new Mock<IEnvironmentRepository>(); var viewModel = new MainViewModelPersistenceMock(envRepo.Object, false); viewModel.TestClose(); wsiRepo.Verify(r => r.Write()); } }
public void MainViewModelConstructorWithWorkspaceItemsInRepositoryExpectedNotLoadsWorkspaceItemsWithSameEnvID() { lock (syncroot) { var workspaceID = Guid.NewGuid(); var serverID = Guid.NewGuid(); var resourceName = "TestResource_" + Guid.NewGuid(); var resourceID = Guid.NewGuid(); Guid environmentID = Guid.NewGuid(); var wsi = new WorkspaceItem(workspaceID, serverID, environmentID, resourceID) { ServiceName = resourceName, ServiceType = WorkspaceItem.ServiceServiceType }; var wsiRepo = new Mock<IWorkspaceItemRepository>(); wsiRepo.Setup(r => r.WorkspaceItems).Returns(new List<IWorkspaceItem>(new[] { wsi })); wsiRepo.Setup(r => r.AddWorkspaceItem(It.IsAny<IContextualResourceModel>())).Verifiable(); SetupImportServiceForPersistenceTests(wsiRepo); var resourceModel = new Mock<IContextualResourceModel>(); resourceModel.Setup(m => m.ResourceName).Returns(resourceName); resourceModel.Setup(m => m.ID).Returns(resourceID); resourceModel.Setup(m => m.ResourceType).Returns(ResourceType.WorkflowService); var resourceRepo = new Mock<IResourceRepository>(); resourceRepo.Setup(r => r.All()).Returns(new List<IResourceModel>(new[] { resourceModel.Object })); resourceRepo.Setup(r => r.ReloadResource(It.IsAny<string>(), It.IsAny<ResourceType>(), It.IsAny<IEqualityComparer<IResourceModel>>())).Verifiable(); var dsfChannel = new Mock<IStudioClientContext>(); dsfChannel.Setup(c => c.WorkspaceID).Returns(workspaceID); dsfChannel.Setup(c => c.ServerID).Returns(serverID); var envConn = new Mock<IEnvironmentConnection>(); var env = new Mock<IEnvironmentModel>(); env.Setup(e => e.DsfChannel).Returns(dsfChannel.Object); env.Setup(e => e.Connection).Returns(envConn.Object); env.Setup(e => e.IsConnected).Returns(true); env.Setup(e => e.ResourceRepository).Returns(resourceRepo.Object); env.Setup(e => e.ID).Returns(environmentID); resourceModel.Setup(m => m.Environment).Returns(env.Object); var envRepo = new Mock<IEnvironmentRepository>(); envRepo.Setup(r => r.All()).Returns(new List<IEnvironmentModel>(new[] { env.Object })); var viewModel = new MainViewModelPersistenceMock(envRepo.Object, false); resourceRepo.Verify(r => r.ReloadResource(It.IsAny<string>(), It.IsAny<ResourceType>(), It.IsAny<IEqualityComparer<IResourceModel>>()), Times.AtLeastOnce()); wsiRepo.Verify(r => r.AddWorkspaceItem(It.IsAny<IContextualResourceModel>()), Times.AtLeastOnce()); Assert.AreEqual(2, viewModel.Items.Count); // 1 extra for the help tab! var expected = viewModel.Items.FirstOrDefault(i => i.WorkSurfaceKey.ResourceID == resourceID); Assert.IsNotNull(expected); } }
public void MainViewModelDeactivateItemWithPreviousItemOpenExpectedActiveItemToBePreviousItem() { lock (syncroot) { var wsiRepo = new Mock<IWorkspaceItemRepository>(); wsiRepo.Setup(r => r.WorkspaceItems).Returns(() => new List<IWorkspaceItem>()); wsiRepo.Setup(r => r.Write()).Verifiable(); #region Setup ImportService - GRRR! var importServiceContext = new ImportServiceContext(); ImportService.CurrentContext = importServiceContext; ImportService.Initialize(new List<ComposablePartCatalog> { new FullTestAggregateCatalog() }); ImportService.AddExportedValueToContainer(wsiRepo.Object); ImportService.AddExportedValueToContainer(new Mock<IEventAggregator>().Object); #endregion var envRepo = new Mock<IEnvironmentRepository>(); var mockMainViewModel = new MainViewModelPersistenceMock(envRepo.Object, false); mockMainViewModel.EventAggregator = ImportService.GetExportValue<IEventAggregator>(); var resourceID = Guid.NewGuid(); var serverID = Guid.NewGuid(); #region Setup WorkSurfaceContextViewModel1 var resourceRepo = new Mock<IResourceRepository>(); resourceRepo.Setup(r => r.Save(It.IsAny<IResourceModel>())).Verifiable(); var envConn = new Mock<IEnvironmentConnection>(); var env = new Mock<IEnvironmentModel>(); env.Setup(e => e.ResourceRepository).Returns(resourceRepo.Object); env.Setup(e => e.Connection).Returns(envConn.Object); var resourceModel = new Mock<IContextualResourceModel>(); resourceModel.Setup(m => m.Environment).Returns(env.Object); resourceModel.Setup(m => m.ID).Returns(resourceID); var workflowHelper = new Mock<IWorkflowHelper>(); var designerViewModel = new WorkflowDesignerViewModel(resourceModel.Object, workflowHelper.Object, false); var contextViewModel1 = new WorkSurfaceContextViewModel( new WorkSurfaceKey { ResourceID = resourceID, ServerID = serverID, WorkSurfaceContext = designerViewModel.WorkSurfaceContext }, designerViewModel); #endregion mockMainViewModel.Items.Add(contextViewModel1); serverID = Guid.NewGuid(); resourceID = Guid.NewGuid(); mockMainViewModel.PopupProvider = Dev2MockFactory.CreateIPopup(MessageBoxResult.No).Object; mockMainViewModel.ActivateItem(mockMainViewModel.Items[0]); mockMainViewModel.ActivateItem(mockMainViewModel.Items[1]); mockMainViewModel.CallDeactivate(mockMainViewModel.Items[1]); Assert.AreEqual(mockMainViewModel.Items[0], mockMainViewModel.ActiveItem); } }
public void MainViewModelConstructorWithWorkspaceItemsInRepositoryExpectedNotLoadsWorkspaceItemsWithSameEnvID() { var workspaceID = Guid.NewGuid(); var serverID = Guid.NewGuid(); var resourceName = "TestResource_" + Guid.NewGuid(); var resourceID = Guid.NewGuid(); Guid environmentID = Guid.NewGuid(); var wsi = new WorkspaceItem(workspaceID, serverID, environmentID, resourceID) { ServiceName = resourceName, ServiceType = WorkspaceItem.ServiceServiceType }; var wsiRepo = new Mock<IWorkspaceItemRepository>(); wsiRepo.Setup(r => r.WorkspaceItems).Returns(new List<IWorkspaceItem>(new[] { wsi })); wsiRepo.Setup(r => r.AddWorkspaceItem(It.IsAny<IContextualResourceModel>())).Verifiable(); SetupImportServiceForPersistenceTests(wsiRepo); WorkspaceItemRepository.Instance.WorkspaceItems.Clear(); WorkspaceItemRepository.Instance.WorkspaceItems.Add(wsi); var resourceModel = new Mock<IContextualResourceModel>(); resourceModel.Setup(m => m.ResourceName).Returns(resourceName); resourceModel.Setup(m => m.ID).Returns(resourceID); resourceModel.Setup(m => m.ResourceType).Returns(ResourceType.WorkflowService); var resourceRepo = new Mock<IResourceRepository>(); resourceRepo.Setup(r => r.All()).Returns(new List<IResourceModel>(new[] { resourceModel.Object })); resourceRepo.Setup(r => r.ReloadResource(It.IsAny<Guid>(), It.IsAny<ResourceType>(), It.IsAny<IEqualityComparer<IResourceModel>>(), true)).Verifiable(); resourceRepo.Setup(r => r.FetchResourceDefinition(It.IsAny<IEnvironmentModel>(), It.IsAny<Guid>(), It.IsAny<Guid>(), It.IsAny<bool>())).Returns(new ExecuteMessage()); var envConn = new Mock<IEnvironmentConnection>(); envConn.Setup(conn => conn.WorkspaceID).Returns(workspaceID); envConn.Setup(conn => conn.ServerID).Returns(serverID); envConn.Setup(conn => conn.ServerEvents).Returns(new Mock<IEventPublisher>().Object); var env = new Mock<IEnvironmentModel>(); env.Setup(e => e.Connection).Returns(envConn.Object); env.Setup(e => e.IsConnected).Returns(true); env.Setup(e => e.ResourceRepository).Returns(resourceRepo.Object); env.Setup(e => e.ID).Returns(environmentID); resourceModel.Setup(m => m.Environment).Returns(env.Object); var envRepo = new Mock<IEnvironmentRepository>(); envRepo.Setup(r => r.All()).Returns(new List<IEnvironmentModel>(new[] { env.Object })); envRepo.Setup(r => r.Source).Returns(env.Object); Mock<IAsyncWorker> asyncWorker = AsyncWorkerTests.CreateSynchronousAsyncWorker(); var viewModel = new MainViewModelPersistenceMock(envRepo.Object, asyncWorker.Object, false); wsiRepo.Verify(r => r.AddWorkspaceItem(It.IsAny<IContextualResourceModel>()), Times.AtLeastOnce()); Assert.AreEqual(2, viewModel.Items.Count); // 1 extra for the help tab! var expected = viewModel.Items.FirstOrDefault(i => i.WorkSurfaceKey.ResourceID == resourceID); Assert.IsNotNull(expected); }
public void MainViewModelOnDeactivateWithTrueExpectedSavesResourceModels_WhenEnvironmentNotConnectedDoesNotCallSave() { var wsiRepo = new Mock<IWorkspaceItemRepository>(); wsiRepo.Setup(r => r.WorkspaceItems).Returns(() => new List<IWorkspaceItem>()); wsiRepo.Setup(r => r.UpdateWorkspaceItem(It.IsAny<IContextualResourceModel>(), It.Is<bool>(b => b))).Verifiable(); SetupImportServiceForPersistenceTests(wsiRepo); var resourceID = Guid.NewGuid(); var serverID = Guid.NewGuid(); #region Setup resourceModel var resourceRepo = new Mock<IResourceRepository>(); resourceRepo.Setup(r => r.Save(It.IsAny<IResourceModel>())).Verifiable(); var envConn = new Mock<IEnvironmentConnection>(); var env = new Mock<IEnvironmentModel>(); envConn.Setup(conn => conn.ServerEvents).Returns(new Mock<IEventPublisher>().Object); env.Setup(e => e.ResourceRepository).Returns(resourceRepo.Object); env.Setup(e => e.Connection).Returns(envConn.Object); env.Setup(e => e.IsConnected).Returns(false); var resourceModel = new Mock<IContextualResourceModel>(); resourceModel.Setup(m => m.Environment).Returns(env.Object); resourceModel.Setup(m => m.ID).Returns(resourceID); resourceModel.Setup(m => m.ResourceName).Returns("Some resource name 5"); #endregion Mock<IPopupController> mockPopUp = Dev2MockFactory.CreateIPopup(MessageBoxResult.No); var workflowHelper = new Mock<IWorkflowHelper>(); var designerViewModel = new WorkflowDesignerViewModel(new Mock<IEventAggregator>().Object, resourceModel.Object, workflowHelper.Object, mockPopUp.Object, new TestAsyncWorker(), false); var contextViewModel = new WorkSurfaceContextViewModel( new WorkSurfaceKey { ResourceID = resourceID, ServerID = serverID, WorkSurfaceContext = designerViewModel.WorkSurfaceContext }, designerViewModel); var envRepo = new Mock<IEnvironmentRepository>(); envRepo.Setup(r => r.All()).Returns(new[] { env.Object }); envRepo.Setup(e => e.Source).Returns(env.Object); envRepo.Setup(r => r.ReadSession()).Returns(new[] { env.Object.ID }); var viewModel = new MainViewModelPersistenceMock(envRepo.Object, false); viewModel.Items.Add(contextViewModel); viewModel.TestClose(); wsiRepo.Verify(r => r.UpdateWorkspaceItem(It.IsAny<IContextualResourceModel>(), It.Is<bool>(b => b)), Times.Never()); resourceRepo.Verify(r => r.Save(It.IsAny<IResourceModel>()), Times.Never()); }
public void MainViewModelOnDeactivateWithTrueExpectedSavesWorkspaceItems() { var wsiRepo = new Mock<IWorkspaceItemRepository>(); wsiRepo.Setup(r => r.WorkspaceItems).Returns(() => new List<IWorkspaceItem>()); wsiRepo.Setup(r => r.Write()).Verifiable(); #region Setup ImportService - GRRR! SetupImportServiceForPersistenceTests(wsiRepo); #endregion var envRepo = new Mock<IEnvironmentRepository>(); ICollection<IEnvironmentModel> envColletion = new List<IEnvironmentModel>(); var env = Dev2MockFactory.SetupEnvironmentModel(); env.Setup(mock => mock.IsConnected).Returns(true); envColletion.Add(env.Object); envRepo.Setup(mock => mock.All()).Returns(envColletion); envRepo.Setup(mock => mock.Source).Returns(env.Object); envRepo.Setup(mock => mock.ReadSession()).Returns(new[] { env.Object.ID }); Mock<IAsyncWorker> asyncWorker = AsyncWorkerTests.CreateSynchronousAsyncWorker(); var viewModel = new MainViewModelPersistenceMock(envRepo.Object, asyncWorker.Object, false); viewModel.TestClose(); wsiRepo.Verify(r => r.Write()); }
public void MainViewModel_TryRemoveContext_Removes() { var wsiRepo = new Mock<IWorkspaceItemRepository>(); wsiRepo.Setup(r => r.WorkspaceItems).Returns(() => new List<IWorkspaceItem>()); wsiRepo.Setup(r => r.Write()).Verifiable(); #region Setup ImportService - GRRR! SetupImportServiceForPersistenceTests(wsiRepo); #endregion var resourceRepo = new Mock<IResourceRepository>(); resourceRepo.Setup(r => r.Save(It.IsAny<IResourceModel>())).Verifiable(); var envRepo = new Mock<IEnvironmentRepository>(); var envConn = new Mock<IEnvironmentConnection>(); envConn.Setup(conn => conn.ServerEvents).Returns(new Mock<IEventPublisher>().Object); var env = new Mock<IEnvironmentModel>(); env.Setup(e => e.ResourceRepository).Returns(resourceRepo.Object); env.Setup(e => e.Connection).Returns(envConn.Object); envRepo.Setup(r => r.All()).Returns(new List<IEnvironmentModel>(new[] { env.Object })); envRepo.Setup(r => r.Source).Returns(env.Object); Mock<IAsyncWorker> asyncWorker = AsyncWorkerTests.CreateSynchronousAsyncWorker(); var mockMainViewModel = new MainViewModelPersistenceMock(envRepo.Object, asyncWorker.Object); var resourceID = Guid.NewGuid(); #region Setup WorkSurfaceContextViewModel1 var resourceModel = new Mock<IContextualResourceModel>(); resourceModel.Setup(m => m.Environment).Returns(env.Object); resourceModel.Setup(m => m.ID).Returns(resourceID); resourceModel.Setup(m => m.IsNewWorkflow).Returns(true); resourceModel.Setup(m => m.IsWorkflowSaved).Returns(true); resourceModel.Setup(m => m.ResourceName).Returns("Some resource name 2"); var workflowHelper = new Mock<IWorkflowHelper>(); var designerViewModel = new WorkflowDesignerViewModel(resourceModel.Object, workflowHelper.Object, false); var contextViewModel1 = new WorkSurfaceContextViewModel( new WorkSurfaceKey { ResourceID = resourceID, ServerID = Guid.Empty, WorkSurfaceContext = designerViewModel.WorkSurfaceContext }, designerViewModel); #endregion mockMainViewModel.Items.Add(contextViewModel1); Mock<IPopupController> mockPopUp = Dev2MockFactory.CreateIPopup(MessageBoxResult.No); mockPopUp.Setup(m => m.Show()).Verifiable(); mockMainViewModel.PopupProvider = mockPopUp.Object; mockMainViewModel.ActivateItem(mockMainViewModel.Items[0]); mockMainViewModel.ActivateItem(mockMainViewModel.Items[1]); mockMainViewModel.TryRemoveContext(mockMainViewModel.Items[1].ContextualResourceModel); Assert.AreEqual(mockMainViewModel.Items[0], mockMainViewModel.ActiveItem); mockPopUp.Verify(m => m.Show(), Times.Never()); }
public void MainViewModel_UnsavedWorkflowDialog_WhenXPressed_WorkflowRemainsOpen() { var wsiRepo = new Mock<IWorkspaceItemRepository>(); wsiRepo.Setup(r => r.WorkspaceItems).Returns(() => new List<IWorkspaceItem>()); wsiRepo.Setup(r => r.Write()).Verifiable(); #region Setup ImportService - GRRR! SetupImportServiceForPersistenceTests(wsiRepo); #endregion var envRepo = new Mock<IEnvironmentRepository>(); var resourceRepo = new Mock<IResourceRepository>(); resourceRepo.Setup(r => r.Save(It.IsAny<IResourceModel>())).Verifiable(); var envConn = new Mock<IEnvironmentConnection>(); var env = new Mock<IEnvironmentModel>(); envConn.Setup(conn => conn.ServerEvents).Returns(new Mock<IEventPublisher>().Object); env.Setup(e => e.ResourceRepository).Returns(resourceRepo.Object); env.Setup(e => e.Connection).Returns(envConn.Object); envRepo.Setup(r => r.All()).Returns(new[] { env.Object }); envRepo.Setup(e => e.Source).Returns(env.Object); envRepo.Setup(r => r.ReadSession()).Returns(new[] { env.Object.ID }); Mock<IAsyncWorker> asyncWorker = AsyncWorkerTests.CreateSynchronousAsyncWorker(); var mockMainViewModel = new MainViewModelPersistenceMock(envRepo.Object, asyncWorker.Object, false); var resourceID = Guid.NewGuid(); var serverID = Guid.NewGuid(); #region Setup WorkSurfaceContextViewModel1 var resourceModel = new Mock<IContextualResourceModel>(); resourceModel.Setup(m => m.Environment).Returns(env.Object); resourceModel.Setup(m => m.ID).Returns(resourceID); resourceModel.Setup(r => r.IsAuthorized(AuthorizationContext.Contribute)).Returns(true); resourceModel.Setup(m => m.ResourceName).Returns("Some resource name 3"); Mock<IPopupController> mockPopUp = Dev2MockFactory.CreateIPopup(MessageBoxResult.No); mockPopUp.Setup(m => m.Show(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<MessageBoxButton>(), It.IsAny<MessageBoxImage>(), It.IsAny<string>())).Verifiable(); var workflowHelper = new Mock<IWorkflowHelper>(); var designerViewModel = new WorkflowDesignerViewModel(new Mock<IEventAggregator>().Object, resourceModel.Object, workflowHelper.Object, mockPopUp.Object, new TestAsyncWorker(), false); var contextViewModel1 = new WorkSurfaceContextViewModel( new WorkSurfaceKey { ResourceID = resourceID, ServerID = serverID, WorkSurfaceContext = designerViewModel.WorkSurfaceContext }, designerViewModel); #endregion mockMainViewModel.Items.Add(contextViewModel1); mockMainViewModel.PopupProvider = mockPopUp.Object; mockMainViewModel.ActivateItem(mockMainViewModel.Items[0]); mockMainViewModel.ActivateItem(mockMainViewModel.Items[1]); mockMainViewModel.CallDeactivate(mockMainViewModel.Items[1]); Assert.AreEqual(mockMainViewModel.Items[1], mockMainViewModel.ActiveItem); mockPopUp.Verify(m => m.Show(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<MessageBoxButton>(), It.IsAny<MessageBoxImage>(), It.IsAny<string>()), Times.Once()); }