public async Task ShouldDeleteFile() { //Arrange await using var context = GetDbContext(true); var mockResolver = new Mock <IUserResolver>(); var mockFileStorage = new Mock <IFileStorage>(); var authManager = new AuthorizationManager(context, Mapper, mockResolver.Object); var fileManager = new Implementations.FileManager(context, Mapper, mockFileStorage.Object); var directoryMnager = new DirectoryManager(context, Mapper, fileManager); var repoManager = new RepositoryManager(context, Mapper, directoryMnager, authManager); var filePath = Guid.NewGuid().ToString(); mockFileStorage.Setup(x => x.UploadAsync(It.IsAny <string>())).Returns(Task.FromResult(filePath)); mockFileStorage.Setup(x => x.DeleteAsync(It.IsAny <string>())).Returns(Task.CompletedTask); var user = await SeedUserAsync(context); mockResolver.Setup(x => x.GetUserAsync()).Returns(Task.FromResult(Mapper.Map <UserDTO>(user))); var repoRoot = await repoManager.CreateRepositoryAsync(user.Id, "Test Repo"); var fileName = "FileName.har"; var file = await fileManager.UploadFileAsync(repoRoot.Id, fileName, "{}"); //Act await fileManager.DeleteFileAsync(file.Id); var fileFromDB = await context.Set <File>() .FindAsync(file.Id); //Assert Assert.Null(fileFromDB); }
public async Task ShouldUnshareFileAsync() { //Arrange await using var context = GetDbContext(true); var mockResolver = new Mock <IUserResolver>(); var mockFileStorage = new Mock <IFileStorage>(); var authManager = new AuthorizationManager(context, Mapper, mockResolver.Object); var fileManager = new Implementations.FileManager(context, Mapper, mockFileStorage.Object); var directoryMnager = new DirectoryManager(context, Mapper, fileManager); var repoManager = new RepositoryManager(context, Mapper, directoryMnager, authManager); var filePath = Guid.NewGuid().ToString(); mockFileStorage.Setup(x => x.UploadAsync(It.IsAny <string>())).Returns(Task.FromResult(filePath)); mockFileStorage.Setup(x => x.DeleteAsync(It.IsAny <string>())).Returns(Task.CompletedTask); var owner = await SeedUserAsync(context); var user = await SeedUserAsync(context); mockResolver.Setup(x => x.GetUserAsync()).Returns(Task.FromResult(Mapper.Map <UserDTO>(owner))); var repoRoot = await repoManager.CreateRepositoryAsync(owner.Id, "Test Repo"); var fileName = "FileName.har"; var file = await fileManager.UploadFileAsync(repoRoot.Id, fileName, "{}"); var comment = "Some comment"; await fileManager.ShareFileAsync(file.Id, owner.Id, user.Id, comment); //Act var sharedFileFromDB = await context.Set <SharedFile>() .FirstOrDefaultAsync(x => x.FileId == file.Id); await fileManager.UnshareFileAsync(sharedFileFromDB.Id); sharedFileFromDB = await context.Set <SharedFile>() .FirstOrDefaultAsync(x => x.FileId == file.Id); var sharedFilesWithUser = await context.Set <SharedFile>() .Where(x => x.SharedWithId == user.Id) .ToListAsync(); var sharedFilesByUser = await context.Set <SharedFile>() .Where(x => x.OwnerId == owner.Id) .ToListAsync(); //Assert Assert.Null(sharedFileFromDB); Assert.Empty(sharedFilesWithUser); Assert.Empty(sharedFilesByUser); }