53 lines
1.6 KiB
C#
53 lines
1.6 KiB
C#
using LiteCharms.Features.MidrandBooks.AuthorBooks;
|
|
using LiteCharms.Features.Tests.Common;
|
|
|
|
namespace LiteCharms.Features.MidrandBooks.Tests;
|
|
|
|
public class BooksServiceFeatureTests(Fixture fixture) : IClassFixture<Fixture>
|
|
{
|
|
private readonly BooksService bookService = fixture.Services.GetRequiredService<BooksService>();
|
|
|
|
[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);
|
|
}
|
|
}
|