public void File_remove_removes_file_and_publishes_event() { // Arrange FakeFileStorage fileStorage = new FakeFileStorage(); FakeFileRepository fileRepository = new FakeFileRepository(); FakeEventPublisher eventPublisher = new FakeEventPublisher(); FakeCurrentUser currentUser = new FakeCurrentUser(); File file = new ExampleFileFactory().CreateFile(); fileRepository.Save(file); fileStorage.SaveFile(file, Stream.Null); currentUser.Id = file.Owner.Id; var commandHandler = new DeleteFileCommandHandler(fileStorage, currentUser, fileRepository, eventPublisher); var command = new DeleteFileCommand("fileId"); // Act commandHandler.Handle(command); // Assert Assert.IsNull(fileRepository.GetById("fileId")); Assert.False(fileStorage.Exists(file)); File publishedEvent = eventPublisher.VerifyPublishedOnce <File>(); Assert.AreEqual(file, publishedEvent); }
public void File_add_throws_when_owner_now_found() { // Arrange FakeFileStorage fileStorage = new FakeFileStorage(); FakeFileRepository fileRepository = new FakeFileRepository(); FakeEventPublisher eventPublisher = new FakeEventPublisher(); FakeCurrentUserSource currentUserSource = new FakeCurrentUserSource(); FakePostCommitRegistrar postCommitRegistrar = new FakePostCommitRegistrar(); currentUserSource.CurrentUser = null; var commandHandler = new AddFileCommandHandler( fileRepository, fileStorage, eventPublisher, postCommitRegistrar, currentUserSource); var contentBuffer = Encoding.UTF8.GetBytes("testContent"); using (Stream fileContent = new MemoryStream(contentBuffer)) { var command = new AddFileCommand("filename", "desc", "text/plain", fileContent); // Assert & Act Assert.Throws <NotFoundException>(() => { commandHandler.Handle(command); postCommitRegistrar.ExecuteActions(); }); } }
public BooksDataBuilder(IProvideConnection connectionProvider, IFileStorage fileStorage, AuthorsDataBuilder authorBuilder, SeriesDataBuilder seriesDataBuilder, CategoriesDataBuilder categoriesBuilder) { _connection = connectionProvider.GetConnection(); _fileStorage = fileStorage as FakeFileStorage; _authorBuilder = authorBuilder; _seriesBuilder = seriesDataBuilder; _categoriesBuilder = categoriesBuilder; }
public void File_add_adds_file_and_publishes_event() { // Arrange FakeFileStorage fileStorage = new FakeFileStorage(); FakeFileRepository fileRepository = new FakeFileRepository(); FakeEventPublisher eventPublisher = new FakeEventPublisher(); FakeCurrentUserSource currentUserSource = new FakeCurrentUserSource(); FakePostCommitRegistrar postCommitRegistrar = new FakePostCommitRegistrar(); currentUserSource.CurrentUser = new User("userId", "username"); var commandHandler = new AddFileCommandHandler( fileRepository, fileStorage, eventPublisher, postCommitRegistrar, currentUserSource); var contentBuffer = Encoding.UTF8.GetBytes("testContent"); using (Stream fileContent = new MemoryStream(contentBuffer)) { var command = new AddFileCommand("filename", "desc", "text/plain", fileContent); // Act commandHandler.Handle(command); postCommitRegistrar.ExecuteActions(); // Assert File addedFile = fileRepository.GetByName("filename"); Assert.IsNotNull(addedFile); Assert.AreEqual("filename", addedFile.FileName); Assert.AreEqual("desc", addedFile.Description); Assert.AreEqual("userId", addedFile.Owner.Id); Stream fileStream = fileStorage.ReadFile(addedFile).Result; Assert.IsNotNull(fileStream); using (var reader = new StreamReader(fileStream)) Assert.AreEqual("testContent", reader.ReadToEnd()); File publishedEvent = eventPublisher.VerifyPublishedOnce <File>(); Assert.AreEqual(addedFile, publishedEvent); } }
public void File_can_be_removed_only_by_owner() { // Arrange FakeFileStorage fileStorage = new FakeFileStorage(); FakeFileRepository fileRepository = new FakeFileRepository(); FakeEventPublisher eventPublisher = new FakeEventPublisher(); FakeCurrentUser currentUser = new FakeCurrentUser(); File file = new ExampleFileFactory().CreateFile(); fileRepository.Save(file); fileStorage.SaveFile(file, Stream.Null); currentUser.Id = "otherUserId"; var commandHandler = new DeleteFileCommandHandler(fileStorage, currentUser, fileRepository, eventPublisher); var command = new DeleteFileCommand("fileId"); // Assert & Act Assert.Throws <PermissionException>(() => commandHandler.Handle(command)); }
internal static void ShouldHaveNoBookPageImage(int bookId, int pageNumber, int imageId, IDbConnection databaseConnection, FakeFileStorage fileStore) { var page = databaseConnection.GetBookPageByNumber(bookId, pageNumber); page.ImageId.Should().BeNull(); var image = databaseConnection.GetFileById(imageId); image.Should().BeNull(); }
internal static void ShouldHaveNoBookPage(int bookId, long pageId, int?imageId, IDbConnection databaseConnection, FakeFileStorage fileStore) { var page = databaseConnection.GetBookPageById(bookId, pageId); page.Should().BeNull(); if (imageId != null) { var image = databaseConnection.GetFileById(imageId.Value); image.Should().BeNull(); } }
internal static void ShouldHaveAddedBookPageImage(int bookId, int pageNumber, IDbConnection databaseConnection, FakeFileStorage fileStore) { var page = databaseConnection.GetBookPageByNumber(bookId, pageNumber); page.ImageId.Should().BeGreaterThan(0); var image = databaseConnection.GetFileById(page.ImageId.Value); image.Should().NotBeNull(); }
internal static void ShouldHaveUpdatedBookPageImage(int bookId, int pageNumber, byte[] newImage, IDbConnection databaseConnection, FakeFileStorage fileStore) { var page = databaseConnection.GetBookPageByNumber(bookId, pageNumber); page.ImageId.Should().BeGreaterThan(0); var image = databaseConnection.GetFileById(page.ImageId.Value); image.Should().NotBeNull(); var content = fileStore.GetFile(image.FilePath, CancellationToken.None).Result; content.Should().BeEquivalentTo(newImage); }
public SeriesDataBuilder(IProvideConnection connectionProvider, IFileStorage fileStorage) { _connection = connectionProvider.GetConnection(); _fileStorage = fileStorage as FakeFileStorage; }