Files
2026-04-20 14:47:24 -05:00

81 lines
3.0 KiB
C#

using System;
using System.Collections.Generic;
using LCU.API.Collections.RepoApi.Controllers;
using LCU.API.Collections.RepoApi.Services;
using LCU.Shared.Collections.RepoApiLib.Models;
using LCU.Shared.Collections.RepoApiLib.Models.Producer;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Xunit;
using Moq;
namespace LCU.API.Collections.RepoApiTests.Controllers
{
public class ProcessingReceiptControllerTest
{
List<ProcessingReceipt> list = new List<ProcessingReceipt>()
{
new ProcessingReceipt("123456-888")
{
Message = "x",
Outcome = RepoProcessingResult.Error,
Processed = DateTime.Now,
AccountId = "321",
CaseId = "",
QueuedBy = "Testing"
},
new ProcessingReceipt("123456-888")
{
Message = "y",
Outcome = RepoProcessingResult.Created,
Processed = DateTime.Now,
AccountId = "",
CaseId = "",
QueuedBy = "Testing"
}
};
private readonly Mock<IProcessingReceiptService> _mockReceiptService;
private readonly ProcessingReceiptController _controller;
public ProcessingReceiptControllerTest()
{
_mockReceiptService = new Mock<IProcessingReceiptService>();
var mockHttpContextAccessor = new Mock<HttpContextAccessor>();
_controller = new ProcessingReceiptController(_mockReceiptService.Object, mockHttpContextAccessor.Object);
}
[Fact]
public async void GetByAccountNo_OK()
{
_mockReceiptService.Setup(service => service.GetReceiptsByAccountNoAsync(It.IsAny<string>()))
.ReturnsAsync(list);
var results = await _controller.GetByAccountNo("123456-888");
var okresults = results as OkObjectResult;
Assert.NotNull(okresults);
Assert.Equal(200, okresults.StatusCode);
}
[Fact]
public async void GetByAccountNo_NotFound()
{
_mockReceiptService.Setup(service => service.GetReceiptsByAccountNoAsync(It.IsAny<string>()))
.ReturnsAsync(new List<ProcessingReceipt>{});
var results = await _controller.GetByAccountNo("123456-888");
var objectResult = results as ObjectResult;
Assert.NotNull(objectResult);
Assert.IsType<NotFoundObjectResult>(objectResult);
}
[Fact]
public async void GetByAccountNo_ServerException()
{
_mockReceiptService.Setup(service => service.GetReceiptsByAccountNoAsync(It.IsAny<string>())).ThrowsAsync(new Exception("oops"));
var results = await _controller.GetByAccountNo("123456-888");
var objectResult = results as StatusCodeResult;
Assert.NotNull(objectResult);
Assert.Equal(500, objectResult.StatusCode);
}
}
}