Example #1
0
        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());
        }
Example #3
0
        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);
        }
Example #8
0
        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!");
        }
Example #11
0
        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");
        }
Example #14
0
 public async Task Handle(DeleteFolderCommand command)
 {
     await DeleteFolder(command.Id);
 }