This commit is contained in:
Zeeshaun
2026-04-20 14:47:24 -05:00
parent 89057eceea
commit 8b3ea92501
485 changed files with 71042 additions and 0 deletions
@@ -0,0 +1,96 @@
using System;
using System.Security.Claims;
using LCU.API.Collections.RepoApi.Controllers;
using LCU.API.Collections.RepoApi.HostedServices;
using LCU.API.Collections.RepoApi.Models.Requests;
using LCU.Shared.Collections.RepoApiLib.Models.Producer;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Moq;
using Xunit;
namespace LCU.API.Collections.RepoApiTests.Controllers
{
public class QueueControllerTest
{
private readonly Mock<IRepoQueueProducerService> _mockService;
private readonly Mock<IHttpContextAccessor> _mockHttpContextAccessor;
public QueueControllerTest()
{
_mockService = new Mock<IRepoQueueProducerService>();
_mockHttpContextAccessor = new Mock<IHttpContextAccessor>();
}
[Fact]
public void PutSingleAccountOnQueue_OK()
{
//setup
_mockService.Setup(x => x.SendRequestToQueue(It.IsAny<ProcessingItem>()));
QueueController controller = new QueueController(_mockService.Object, _mockHttpContextAccessor.Object);
var context = new DefaultHttpContext();
context.User = new ClaimsPrincipal();
_mockHttpContextAccessor.Setup(_ => _.HttpContext).Returns(context);
var request = new AccountQueueRequest()
{
AccountNo = "12345-123"
};
//act
var res = controller.PutSingleAccountOnQueue(request);
Assert.IsType<OkResult>(res);
_mockService.Verify(x => x.SendRequestToQueue(It.IsAny<ProcessingItem>()), Times.Once);
}
[Fact]
public void PutSingleAccountOnQueue_Exception()
{
//setup
_mockService.Setup(x => x.SendRequestToQueue(It.IsAny<ProcessingItem>())).Throws(new Exception("oops"));
QueueController controller = new QueueController(_mockService.Object, _mockHttpContextAccessor.Object);
var context = new DefaultHttpContext();
context.User = new ClaimsPrincipal();
_mockHttpContextAccessor.Setup(_ => _.HttpContext).Returns(context);
var request = new AccountQueueRequest()
{
AccountNo = "12345-123"
};
//act
var res = controller.PutSingleAccountOnQueue(request);
var badres = res as ObjectResult;
//asert
Assert.Equal(500, badres.StatusCode);
_mockService.Verify(x => x.SendRequestToQueue(It.IsAny<ProcessingItem>()), Times.Once);
}
[Fact]
public void PutSingleAccountOnQueue_BadFormat1()
{
//setup
_mockService.Setup(x => x.SendRequestToQueue(It.IsAny<ProcessingItem>()));
QueueController controller = new QueueController(_mockService.Object, _mockHttpContextAccessor.Object);
var context = new DefaultHttpContext();
context.User = new ClaimsPrincipal();
_mockHttpContextAccessor.Setup(_ => _.HttpContext).Returns(context);
controller.ModelState.AddModelError("Message", "Some field is required.");
var request = new AccountQueueRequest()
{
AccountNo = "12345"
};
//act
var res = controller.PutSingleAccountOnQueue(request);
var badres = res as ObjectResult;
//asert
Assert.Equal(400, badres.StatusCode);
_mockService.Verify(x => x.SendRequestToQueue(It.IsAny<ProcessingItem>()), Times.Never);
}
}
}