public async Task ValidateAsync_AlbumExists_DoesNothing() { // Arrange var albumContainer = new Mock <IAlbumContainer>(); var album = new Album(); var albumDataAccess = new Mock <IAlbumDataAccess>(); albumDataAccess.Setup(x => x.GetByAsync(albumContainer.Object)).ReturnsAsync(album); var albumGetService = new AlbumGetService(albumDataAccess.Object); // Act var action = new Func <Task>(() => albumGetService.ValidateAsync(albumContainer.Object)); // Assert await action.Should().NotThrowAsync <Exception>(); }
public async Task ValidateAsync_AlbumNotExists_ThrowsError() { // Arrange var fixture = new Fixture(); var id = fixture.Create <int>(); var albumContainer = new Mock <IAlbumContainer>(); albumContainer.Setup(x => x.AlbumId).Returns(id); var album = new Album(); var albumDataAccess = new Mock <IAlbumDataAccess>(); albumDataAccess.Setup(x => x.GetByAsync(albumContainer.Object)).ReturnsAsync((Album)null); var albumGetService = new AlbumGetService(albumDataAccess.Object); // Act var action = new Func <Task>(() => albumGetService.ValidateAsync(albumContainer.Object)); // Assert await action.Should().ThrowAsync <InvalidOperationException>($"Album not found by id {id}"); }