public void SchedulerViewModel_DeActivateSave_AttemptsSave() { //------------Setup for test-------------------------- var resources = new ObservableCollection<IScheduledResource>(); var scheduledResourceForTest = new ScheduledResourceForTest { Trigger = new ScheduleTrigger(TaskState.Ready, new Dev2DailyTrigger(new TaskServiceConvertorFactory(), new DailyTrigger()), new Dev2TaskService(new TaskServiceConvertorFactory()), new TaskServiceConvertorFactory()), IsDirty = true }; resources.Add(scheduledResourceForTest); Dev2JsonSerializer serializer = new Dev2JsonSerializer(); var serializeObject = serializer.SerializeToBuilder(resources); var mockEnvironmentModel = new Mock<IEnvironmentModel>(); var mockConnection = new Mock<IEnvironmentConnection>(); mockConnection.Setup(connection => connection.IsConnected).Returns(true); mockConnection.Setup(connection => connection.ExecuteCommand(It.IsAny<StringBuilder>(), It.IsAny<Guid>())).Returns(serializeObject); mockConnection.Setup(connection => connection.WorkspaceID).Returns(Guid.NewGuid()); mockEnvironmentModel.Setup(model => model.Connection).Returns(mockConnection.Object); mockEnvironmentModel.Setup(model => model.IsConnected).Returns(true); ResourceRepository resourceRepo = new ResourceRepository(mockEnvironmentModel.Object); var setupResourceModelMock = Dev2MockFactory.SetupResourceModelMock(ResourceType.WorkflowService, "TestFlow2"); resourceRepo.Add(Dev2MockFactory.SetupResourceModelMock(ResourceType.WorkflowService, "TestFlow1").Object); resourceRepo.Add(setupResourceModelMock.Object); resourceRepo.Add(Dev2MockFactory.SetupResourceModelMock(ResourceType.WorkflowService, "TestFlow3").Object); mockEnvironmentModel.Setup(c => c.ResourceRepository).Returns(resourceRepo); var popup = new Mock<IPopupController>(); popup.Setup(a => a.ShowSchedulerCloseConfirmation()).Returns(MessageBoxResult.Yes); var schedulerViewModel = new SchedulerViewModel(new Mock<IEventAggregator>().Object, new Mock<DirectoryObjectPickerDialog>().Object, popup.Object, new TestAsyncWorker(), new Mock<IConnectControlViewModel>().Object) { SelectedTask = scheduledResourceForTest }; var auth = new Mock<IAuthorizationService>(); mockEnvironmentModel.Setup(a => a.AuthorizationService).Returns(auth.Object); auth.Setup(a => a.IsAuthorized(AuthorizationContext.Administrator, null)).Returns(false).Verifiable(); schedulerViewModel.CurrentEnvironment = mockEnvironmentModel.Object; //------------Execute Test--------------------------- schedulerViewModel.DoDeactivate(); //------------Assert Results------------------------- auth.Verify(a => a.IsAuthorized(AuthorizationContext.Administrator, null)); Assert.AreEqual(@"Error while saving: You don't have permission to schedule on this server. You need Administrator permission.", schedulerViewModel.Error); }
public void SchedulerViewModel_DeActivateCancel_ReturnsFalse() { //------------Setup for test-------------------------- var resources = new ObservableCollection<IScheduledResource>(); var scheduledResourceForTest = new ScheduledResourceForTest { Trigger = new ScheduleTrigger(TaskState.Ready, new Dev2DailyTrigger(new TaskServiceConvertorFactory(), new DailyTrigger()), new Dev2TaskService(new TaskServiceConvertorFactory()), new TaskServiceConvertorFactory()), IsDirty = true }; resources.Add(scheduledResourceForTest); Dev2JsonSerializer serializer = new Dev2JsonSerializer(); var serializeObject = serializer.SerializeToBuilder(resources); var mockEnvironmentModel = new Mock<IEnvironmentModel>(); var mockConnection = new Mock<IEnvironmentConnection>(); mockConnection.Setup(connection => connection.IsConnected).Returns(true); mockConnection.Setup(connection => connection.ExecuteCommand(It.IsAny<StringBuilder>(), It.IsAny<Guid>())).Returns(serializeObject); mockConnection.Setup(connection => connection.WorkspaceID).Returns(Guid.NewGuid()); mockEnvironmentModel.Setup(model => model.Connection).Returns(mockConnection.Object); mockEnvironmentModel.Setup(model => model.IsConnected).Returns(true); ResourceRepository resourceRepo = new ResourceRepository(mockEnvironmentModel.Object); var setupResourceModelMock = Dev2MockFactory.SetupResourceModelMock(ResourceType.WorkflowService, "TestFlow2"); resourceRepo.Add(Dev2MockFactory.SetupResourceModelMock(ResourceType.WorkflowService, "TestFlow1").Object); resourceRepo.Add(setupResourceModelMock.Object); resourceRepo.Add(Dev2MockFactory.SetupResourceModelMock(ResourceType.WorkflowService, "TestFlow3").Object); mockEnvironmentModel.Setup(c => c.ResourceRepository).Returns(resourceRepo); var popup = new Mock<IPopupController>(); popup.Setup(a => a.ShowSchedulerCloseConfirmation()).Returns(MessageBoxResult.Cancel); var schedulerViewModel = new SchedulerViewModel(new Mock<IEventAggregator>().Object, new Mock<DirectoryObjectPickerDialog>().Object, popup.Object, new TestAsyncWorker(), new Mock<IConnectControlViewModel>().Object) { SelectedTask = scheduledResourceForTest, CurrentEnvironment = null }; //------------Execute Test--------------------------- Assert.IsFalse(schedulerViewModel.DoDeactivate()); //------------Assert Results------------------------- }