92 lines
3.3 KiB
C#
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();
|
|
}
|
|
}
|
|
} |