- WHY: establish Stage 3 task-001 execution baseline per repo intent - WHAT: add minimal solution/project skeleton and boundary docs - RULE: apply stage3 execution runtime and repository workflow directives
28 lines
923 B
C#
28 lines
923 B
C#
using Furniture.Bff.Application.Adapters;
|
|
using Furniture.Bff.Application.Handlers;
|
|
using Furniture.Bff.Contracts.Api;
|
|
|
|
namespace Furniture.Bff.Application.UnitTests;
|
|
|
|
public class GetFurnitureAvailabilityHandlerTests
|
|
{
|
|
[Fact]
|
|
public async Task HandleAsync_WhenCalled_DelegatesToServiceClient()
|
|
{
|
|
var handler = new GetFurnitureAvailabilityHandler(new FakeFurnitureServiceClient());
|
|
|
|
var response = await handler.HandleAsync(new GetFurnitureAvailabilityApiRequest("FUR-001"));
|
|
|
|
Assert.Equal("FUR-001", response.FurnitureId);
|
|
Assert.Equal(3, response.QuantityAvailable);
|
|
}
|
|
|
|
private sealed class FakeFurnitureServiceClient : IFurnitureServiceClient
|
|
{
|
|
public Task<GetFurnitureAvailabilityApiResponse> GetAvailabilityAsync(string furnitureId)
|
|
{
|
|
return Task.FromResult(new GetFurnitureAvailabilityApiResponse(furnitureId, 3));
|
|
}
|
|
}
|
|
}
|