public void DeleteFolder_SubFoldersCollectionIsNotEmpty_WhenRecursive_WhenUserHasNotDeletePermission() { //Arrange var folderInfo = new FolderInfoBuilder() .WithFolderId(1) .WithPhysicalPath(Constants.FOLDER_ValidFolderPath) .Build(); var subfolder1 = new FolderInfoBuilder() .WithFolderId(2) .WithPhysicalPath(Constants.FOLDER_ValidFolderPath + "\\subfolder1") .Build(); var subfolder2 = new FolderInfoBuilder() .WithFolderId(3) .WithPhysicalPath(Constants.FOLDER_ValidFolderPath + "\\subfolder2") .Build(); var subfolders = new List<IFolderInfo> { subfolder1, subfolder2 }; var folderMapping = new FolderMappingInfo { FolderProviderType = Constants.FOLDER_ValidFolderProviderType }; _folderMappingController.Setup(fmc => fmc.GetFolderMapping(Constants.CONTENT_ValidPortalId, Constants.FOLDER_ValidFolderMappingID)).Returns(folderMapping); _mockFolder.Setup(mf => mf.DeleteFolder(subfolder1)); _mockFolderManager.Setup(mfm => mfm.DeleteFolder(Constants.CONTENT_ValidPortalId, Constants.FOLDER_ValidFolderRelativePath)); _mockFolderManager.Setup(mfm => mfm.GetFolders(folderInfo)).Returns(subfolders); _mockFolderManager.Setup(mfm => mfm.GetFolders(It.IsNotIn(folderInfo))).Returns(new List<IFolderInfo>()); _mockFolderManager.Setup(mfm => mfm.GetFiles(It.IsAny<IFolderInfo>(), It.IsAny<bool>(), It.IsAny<bool>())).Returns(new List<IFileInfo>()); _mockUserSecurityController.Setup(musc => musc.HasFolderPermission(subfolder2, "DELETE")).Returns(false); _mockUserSecurityController.Setup(musc => musc.HasFolderPermission(It.IsNotIn(subfolder2), "DELETE")).Returns(true); //Act var subfoldersNotDeleted = new List<IFolderInfo>(); _mockFolderManager.Object.DeleteFolder(folderInfo, subfoldersNotDeleted); //Assert Assert.AreEqual(2, subfoldersNotDeleted.Count); //folderInfo and subfolder2 are not deleted }
public void DeleteFolder_Throws_OnFileDeletionControllerThrows_WhenRecursive_WhenFileIsLocked() { //Arrange var folderInfo = new FolderInfoBuilder() .WithFolderId(1) .WithPhysicalPath(Constants.FOLDER_ValidFolderPath) .Build(); var fileInfo1 = new FileInfoBuilder() .WithFileId(1) .Build(); var fileInfo2 = new FileInfoBuilder() .WithFileId(2) .Build(); var files = new List<IFileInfo> { fileInfo1, fileInfo2 }; var folderMapping = new FolderMappingInfo { FolderProviderType = Constants.FOLDER_ValidFolderProviderType }; _folderMappingController.Setup(fmc => fmc.GetFolderMapping(Constants.CONTENT_ValidPortalId, Constants.FOLDER_ValidFolderMappingID)).Returns(folderMapping); //_mockFolder.Setup(mf => mf.DeleteFolder(folderInfo)); _mockFolderManager.Setup(mfm => mfm.DeleteFolder(Constants.CONTENT_ValidPortalId, Constants.FOLDER_ValidFolderRelativePath)); _mockFolderManager.Setup(mfm => mfm.GetFolders(folderInfo)).Returns(new List<IFolderInfo>()); _mockFolderManager.Setup(mfm => mfm.GetFiles(folderInfo, It.IsAny<bool>(), It.IsAny<bool>())).Returns(files); _mockUserSecurityController.Setup(musc => musc.HasFolderPermission(It.IsAny<IFolderInfo>(), "DELETE")).Returns(true); _mockFileDeletionController.Setup(mfdc => mfdc.DeleteFile(fileInfo1)); _mockFileDeletionController.Setup(mfdc => mfdc.DeleteFile(fileInfo2)).Throws<FileLockedException>(); //Act _mockFolderManager.Object.DeleteFolder(folderInfo, new List<IFolderInfo>()); }
public void DeleteFolder_CallsFolderProviderDeleteFolder_WhenRecursive() { //Arrange var folderInfo = new FolderInfoBuilder() .WithPhysicalPath(Constants.FOLDER_ValidFolderPath) .Build(); var folderMapping = new FolderMappingInfo { FolderProviderType = Constants.FOLDER_ValidFolderProviderType }; _folderMappingController.Setup(fmc => fmc.GetFolderMapping(Constants.CONTENT_ValidPortalId, Constants.FOLDER_ValidFolderMappingID)).Returns(folderMapping); _mockFolder.Setup(mf => mf.DeleteFolder(folderInfo)).Verifiable(); _mockFolderManager.Setup(mfm => mfm.DeleteFolder(Constants.CONTENT_ValidPortalId, Constants.FOLDER_ValidFolderRelativePath)); _mockFolderManager.Setup(mfm => mfm.GetFolders(folderInfo)).Returns(new List<IFolderInfo>()); _mockFolderManager.Setup(mfm => mfm.GetFiles(folderInfo, It.IsAny<bool>(), It.IsAny<bool>())).Returns(new List<IFileInfo>()); _mockUserSecurityController.Setup(musc => musc.HasFolderPermission(folderInfo, "DELETE")).Returns(true); //Act var subfoldersNotDeleted = new List<IFolderInfo>(); _mockFolderManager.Object.DeleteFolder(folderInfo, subfoldersNotDeleted); //Assert _mockFolder.Verify(); Assert.AreEqual(0, subfoldersNotDeleted.Count); }