mirror of
https://github.com/aaronpo97/the-biergarten-app.git
synced 2026-07-16 17:47:22 +00:00
49 lines
1.4 KiB
C#
49 lines
1.4 KiB
C#
using Domain.Entities;
|
|
using Features.Breweries.Dtos;
|
|
using Features.Breweries.Queries.GetBreweryById;
|
|
using Features.Breweries.Repository;
|
|
using FluentAssertions;
|
|
using Moq;
|
|
|
|
namespace Features.Breweries.Tests.Queries;
|
|
|
|
public class GetBreweryByIdHandlerTests
|
|
{
|
|
private readonly GetBreweryByIdHandler _handler;
|
|
private readonly Mock<IBreweryRepository> _repoMock = new();
|
|
|
|
public GetBreweryByIdHandlerTests()
|
|
{
|
|
_handler = new GetBreweryByIdHandler(_repoMock.Object);
|
|
}
|
|
|
|
[Fact]
|
|
public async Task Handle_ReturnsBrewery_WhenFound()
|
|
{
|
|
BreweryPost brewery = new() { BreweryPostId = Guid.NewGuid(), BreweryName = "Test" };
|
|
_repoMock.Setup(r => r.GetByIdAsync(brewery.BreweryPostId)).ReturnsAsync(brewery);
|
|
|
|
BreweryDto? result = await _handler.Handle(
|
|
new GetBreweryByIdQuery(brewery.BreweryPostId),
|
|
CancellationToken.None
|
|
);
|
|
|
|
result.Should().NotBeNull();
|
|
result!.BreweryPostId.Should().Be(brewery.BreweryPostId);
|
|
}
|
|
|
|
[Fact]
|
|
public async Task Handle_ReturnsNull_WhenNotFound()
|
|
{
|
|
Guid id = Guid.NewGuid();
|
|
_repoMock.Setup(r => r.GetByIdAsync(id)).ReturnsAsync((BreweryPost?)null);
|
|
|
|
BreweryDto? result = await _handler.Handle(
|
|
new GetBreweryByIdQuery(id),
|
|
CancellationToken.None
|
|
);
|
|
|
|
result.Should().BeNull();
|
|
}
|
|
}
|