Example #1
0
        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);
        }
Example #2
0
        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);
        }