public async Task Handle_Invalid_Throws() { // arrange var id = new Guid("a87887ec-df44-4607-9e6f-28f361670f9b"); var request = new DeleteFolderCommand(id); var repositoryMock = new Mock <IFolderRepository>(); repositoryMock.Setup(x => x.Delete(It.IsAny <string>(), CancellationToken.None)).ThrowsAsync(new Exception()); var mediatorMock = new Mock <IMediator>(); var mediatorSetup = mediatorMock.Setup(x => x.Send(It.IsAny <GetFolderQuery>(), CancellationToken.None)); mediatorSetup.ReturnsAsync(new FolderDto() { }); var handler = new DeleteFolderCommandHandler(repositoryMock.Object, mediatorMock.Object); // act await Assert.ThrowsAsync <DeleteException>(() => handler.Handle(request, CancellationToken.None)); // assert repositoryMock.Verify(x => x.Delete(It.IsAny <string>(), CancellationToken.None), Times.Once); repositoryMock.VerifyNoOtherCalls(); }
public void Execute_FolderContainsSubFoldersWithFiles_SubFolderFilesDeleted() { var folder1 = MockRepository.GenerateMock <IFolder>(); folder1.Stub(f => f.GetSubFolderList()).Return(new List <IFolder>()); var file = MockRepository.GenerateMock <IFile>(); folder1.Stub(f => f.GetFileList()).Return(new List <IFile>() { file }); FakeFolder folder = new FakeFolder(@"fakeFolder"); folder.FolderExistsReturnValue = true; folder.SubFolderList = new List <IFolder>() { folder1, }; ICommand deleteComand = new DeleteFolderCommand(folder); deleteComand.Execute(); file.AssertWasCalled(f => f.Delete()); }
public async Task Handle_Valid_Deletes() { // arrange var id = new Guid("a87887ec-df44-4607-9e6f-28f361670f9b"); var request = new DeleteFolderCommand(id); var inputHierarchyToInsert = string.Empty; var repositoryMock = new Mock <IFolderRepository>(); var insertSetup = repositoryMock.Setup(x => x.Delete(It.IsAny <string>(), CancellationToken.None)); insertSetup.Callback((string hierarchy, CancellationToken token) => inputHierarchyToInsert = hierarchy); var mediatorMock = new Mock <IMediator>(); var mediatorSetup = mediatorMock.SetupSequence(x => x.Send(It.IsAny <GetFolderQuery>(), CancellationToken.None)); mediatorSetup.ReturnsAsync( new FolderDto() { HierarchyId = "/Test/" } ); var handler = new DeleteFolderCommandHandler(repositoryMock.Object, mediatorMock.Object); // act await handler.Handle(request, CancellationToken.None); // assert repositoryMock.Verify(x => x.Delete("/Test/", CancellationToken.None), Times.Exactly(1)); repositoryMock.VerifyNoOtherCalls(); Assert.Equal("/Test/", inputHierarchyToInsert); }
public void UserFeedback_returns_a_status_containing_the_folder_name() { string folderPath = @"fakeFolder"; FakeFolder folder = new FakeFolder(folderPath); folder.FolderExistsReturnValue = true; ICommand deleteCommand = new DeleteFolderCommand(folder); StringAssert.Contains(folderPath, deleteCommand.UserFeedback); }
public void Execute_folder_does_not_exist_delete_not_called() { FakeFolder folder = new FakeFolder(@"c:\fakeFolder\"); folder.FolderExistsReturnValue = false; ICommand deleteCommand = new DeleteFolderCommand(folder); deleteCommand.Execute(); Assert.IsFalse(folder.DeleteFolderCalled); }
public void Undo_Execute_not_called_folder_is_not_created() { FakeFolder folder = new FakeFolder(@"c:\fakeFolder\"); folder.FolderExistsReturnValue = true; ICommand deleteCommand = new DeleteFolderCommand(folder); deleteCommand.Undo(); Assert.IsFalse(folder.CreateFolderCalled); }
public void Execute_Folder_deleted() { FakeFolder folder = new FakeFolder(@"c:\fakeFolder\"); folder.FolderExistsReturnValue = true; ICommand deleteCommand = new DeleteFolderCommand(folder); deleteCommand.Execute(); Assert.IsTrue(folder.DeleteFolderCalled); }
public async Task <DeleteFolderResult> DeleteFoldersAsync(IEnumerable <EwsFolderIdentifier> identifiers) { var parameter = new DeleteFolderParameter(); parameter.Identifiers.AddRange(identifiers); var command = new DeleteFolderCommand(parameter, this.settings); var result = await command.Execute(); return(result.Data); }
public void Undo_Creates_folder_when_undo_is_called_after_execute() { FakeFolder folder = new FakeFolder(@"c:\fakeFolder\"); folder.FolderExistsReturnValue = true; ICommand deleteCommand = new DeleteFolderCommand(folder); deleteCommand.Execute(); deleteCommand.Undo(); Assert.IsTrue(folder.CreateFolderCalled); }
public void Execute_Folder_contains_files_files_delete_first() { FakeFolder folder = new FakeFolder(@"fakeFolder"); folder.FolderExistsReturnValue = true; folder.FileList = new List <IFile>() { new FakeFile("file1"), new FakeFile("file2"), }; ICommand deleteComand = new DeleteFolderCommand(folder); deleteComand.Execute(); Assert.IsTrue(folder.FileList.TrueForAll(f => ((FakeFile)f).DeleteCalled), "Not all the files were deleted before trying to delete the folder!"); }
public void DeletesFolder() { _engine = new AutomationEngineInstance(null); _deleteFolder = new DeleteFolderCommand(); string projectDirectory = Directory.GetParent(Environment.CurrentDirectory).Parent.FullName; string inputPath = Path.Combine(projectDirectory, @"Resources\toDelete"); VariableMethods.CreateTestVariable(inputPath, _engine, "inputPath", typeof(string)); Directory.CreateDirectory(inputPath); _deleteFolder.v_SourceFolderPath = "{inputPath}"; _deleteFolder.RunCommand(_engine); Assert.False(Directory.Exists(inputPath)); OBIO.Directory.CreateDirectory(inputPath); OBIO.File.Create(Path.Combine(inputPath + @"\toDelete.txt")).Close(); }
public void Execute_folder_contains_readonly_files_readonly_attribute_cleared() { FakeFolder folder = new FakeFolder(@"fakeFolder"); folder.FolderExistsReturnValue = true; folder.FileList = new List <IFile>() { new FakeFile("file1") { Attributes = System.IO.FileAttributes.ReadOnly }, new FakeFile("file2") { Attributes = System.IO.FileAttributes.ReadOnly }, }; ICommand command = new DeleteFolderCommand(folder); command.Execute(); Assert.IsTrue(folder.FileList.TrueForAll(f => ((FakeFile)f).Attributes == System.IO.FileAttributes.Normal)); }
public void Execute_withADeleteFolderCommand_shouldRemoteTheDeletedItemFromTheMegaNzItemCollection() { // Scenario // Local file structure // root // | // +--> folder1 // // Remote file structure // root // | // +--> folder1 // | // +--> folder2 // Arrange var deleteFolderCommand = new DeleteFolderCommand { PathToDelete = "\\folder1\\folder2" }; var commandList = new[] { deleteFolderCommand }; // Remote items // Root in the remote file structure var mockMegaNzNodeForRemoteRoot = new Mock <INode>(MockBehavior.Strict); mockMegaNzNodeForRemoteRoot.SetupGet(m => m.Id).Returns("0"); mockMegaNzNodeForRemoteRoot.SetupGet(m => m.Type).Returns(NodeType.Root); mockMegaNzNodeForRemoteRoot.SetupGet(m => m.Name).Returns("\\"); var megaNzItemRemoteRoot = new MegaNzItem(mockMegaNzNodeForRemoteRoot.Object, "\\", ItemType.Folder, "\\", 0); // Folder1 in the remote file structure var mockMegaNzNodeForRemoteFolder1 = new Mock <INode>(MockBehavior.Strict); mockMegaNzNodeForRemoteFolder1.SetupGet(m => m.Id).Returns("1"); mockMegaNzNodeForRemoteFolder1.SetupGet(m => m.ParentId).Returns("0"); mockMegaNzNodeForRemoteFolder1.SetupGet(m => m.Type).Returns(NodeType.Directory); mockMegaNzNodeForRemoteFolder1.SetupGet(m => m.Name).Returns("folder1"); var megaNzItemForRemoteFolder1 = new MegaNzItem(mockMegaNzNodeForRemoteFolder1.Object, "\\folder1", ItemType.Folder, "\\folder1", 0); // Folder2 in the remote file structure var mockMegaNzNodeForRemoteFolder2 = new Mock <INode>(MockBehavior.Strict); mockMegaNzNodeForRemoteFolder2.SetupGet(m => m.Id).Returns("2"); mockMegaNzNodeForRemoteFolder2.SetupGet(m => m.ParentId).Returns("1"); mockMegaNzNodeForRemoteFolder2.SetupGet(m => m.Type).Returns(NodeType.Directory); mockMegaNzNodeForRemoteFolder2.SetupGet(m => m.Name).Returns("folder2"); var megaNzItemForRemoteFolder2 = new MegaNzItem(mockMegaNzNodeForRemoteFolder2.Object, "folder2", ItemType.Folder, "\\folder1\\folder2", 0); var remoteItems = new[] { megaNzItemRemoteRoot, megaNzItemForRemoteFolder1, megaNzItemForRemoteFolder2 }; var megaNzItemCollection = new MegaNzItemCollection(remoteItems); var mockMegaApiClient = new Mock <IMegaApiClient>(MockBehavior.Strict); mockMegaApiClient .Setup(m => m.Delete(mockMegaNzNodeForRemoteFolder2.Object, true)) .Verifiable(); var mockFileManager = new Mock <IFileManager>(MockBehavior.Strict); var mockProgressNotifier = new Mock <IProgress <double> >(MockBehavior.Strict); // Act var commandExecutor = new CommandExecutor(mockMegaApiClient.Object, _mockLogger.Object); commandExecutor.Execute(commandList, megaNzItemCollection, mockFileManager.Object, mockProgressNotifier.Object); // Assert megaNzItemCollection.GetList().Should().NotContain(item => item.MegaNzNode.Id == "2"); }
public async Task Handle(DeleteFolderCommand command) { await DeleteFolder(command.Id); }