using LiteCharms.Features.MidrandBooks.AuthorBooks; using LiteCharms.Features.MidrandBooks.Tests.Common; namespace LiteCharms.Features.MidrandBooks.Tests; public class BooksServiceFeatureTests(Fixture fixture) : IClassFixture { private readonly BooksService bookService = fixture.Services.GetRequiredService(); [IntegrationFact] public async Task CreateBookAsync_ShouldReturn_ResultWithBookId() { var result = await bookService.CreateBookAsync(1, 2, fixture.CancellationToken); Assert.True(result.IsSuccess); } [IntegrationFact] public async Task GetBookAsync_ShouldReturn_ResultWithBook() { var result = await bookService.GetBookAsync(1, fixture.CancellationToken); Assert.True(result.IsSuccess); Assert.NotNull(result.Value); } [IntegrationFact] public async Task GetBooksByAuthorAsync_ShouldReturn_ResultWithAuthorBooks() { var result = await bookService.GetBooksByAuthorAsync(1, fixture.CancellationToken); Assert.True(result.IsSuccess); Assert.NotEmpty(result.Value); } [IntegrationFact] public async Task GetPublishedBooksAsync_ShouldReturn_ResultWithBublishedBooks() { var result = await bookService.GetPublishedBooksAsync(0, 1000, fixture.CancellationToken); Assert.True(result.IsSuccess); Assert.NotEmpty(result.Value); } [IntegrationFact] public async Task UpdateBookStatusAsync_ShouldReturn_ResultWithSuccess() { var result = await bookService.UpdateBookStatusAsync(1, true, fixture.CancellationToken); Assert.True(result.IsSuccess); } }