Files
monorepo/LCU.Api.Internal.CoreApiWrapper/LCU.Api.Internal.CoreApiWrapperTest/Controllers/AssociateControllerTest.cs
T
2026-03-31 14:32:23 -05:00

92 lines
3.3 KiB
C#

using System;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Moq;
using NUnit.Framework;
using LCU.Api.Internal.CoreApiWrapper.Controllers;
using LCU.Api.Internal.CoreApiWrapper.Services;
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels.Associate;
namespace LCU.Api.Internal.CoreApiWrapperTest.Controllers
{
public class AssociateControllerTest
{
private AssociateController _associateController;
private Mock<IAssociateService> _mockAssociateService;
[SetUp]
public void SetUp()
{
_mockAssociateService = new Mock<IAssociateService>();
_associateController = new AssociateController(_mockAssociateService.Object);
}
[Test]
public async Task GetAssociateDetailsBySsn_OK()
{
var taxId = Guid.NewGuid().ToString();
var associateDetails = new AssociateDetails()
{
PersonNumber = DateTime.Now.Millisecond
};
_mockAssociateService.Setup(x => x.GetAssociateDetailsBySsn(taxId))
.ReturnsAsync(associateDetails).Verifiable();
var result = await _associateController.GetAssociateDetailsBySsn(taxId);
Assert.NotNull(result);
var status = result as OkObjectResult;
Assert.NotNull(status);
Assert.AreEqual(200, status.StatusCode);
var associateDetailsResult = status.Value as AssociateDetails;
Assert.NotNull(associateDetails);
Assert.AreEqual(associateDetails.PersonNumber, associateDetailsResult?.PersonNumber);
_mockAssociateService.Verify();
}
[Test]
public async Task GetAssociateDetailsBySsn_NoContent()
{
var taxId = Guid.NewGuid().ToString();
AssociateDetails associateDetails = null;
_mockAssociateService.Setup(x => x.GetAssociateDetailsBySsn(taxId))
.ReturnsAsync(associateDetails).Verifiable();
var result = await _associateController.GetAssociateDetailsBySsn(taxId);
Assert.NotNull(result);
var status = result as NoContentResult;
Assert.NotNull(status);
Assert.AreEqual(204, status.StatusCode);
_mockAssociateService.Verify();
}
[Test]
public async Task GetAssociateDetailsBySsn_BadRequest()
{
string taxId = null;
var result = await _associateController.GetAssociateDetailsBySsn(taxId);
Assert.NotNull(result);
var status = result as BadRequestObjectResult;
Assert.NotNull(status);
Assert.AreEqual(400, status.StatusCode);
}
[Test]
public async Task GetAssociateDetailsBySsn_InternalServerError()
{
var taxId = Guid.NewGuid().ToString();
_mockAssociateService.Setup(x => x.GetAssociateDetailsBySsn(taxId))
.Throws(new Exception("Test")).Verifiable();
var result = await _associateController.GetAssociateDetailsBySsn(taxId);
Assert.NotNull(result);
var status = result as StatusCodeResult;
Assert.NotNull(status);
Assert.AreEqual(500, status.StatusCode);
_mockAssociateService.Verify();
}
}
}