144 lines
5.6 KiB
C#
144 lines
5.6 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using Microsoft.AspNetCore.Mvc;
|
|
using Moq;
|
|
using NUnit.Framework;
|
|
using LCU.Api.Internal.CoreApiWrapper.Controllers;
|
|
using LCU.Api.Internal.CoreApiWrapper.Services;
|
|
using System.Threading.Tasks;
|
|
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels.Tax;
|
|
|
|
namespace LCU.Api.Internal.CoreApiWrapperTest.Controllers
|
|
{
|
|
public class TaxControllerTest
|
|
{
|
|
private TaxController _taxController;
|
|
private Mock<ITaxService> _mockTaxService;
|
|
|
|
[SetUp]
|
|
public void SetUp()
|
|
{
|
|
_mockTaxService = new Mock<ITaxService>();
|
|
_taxController = new TaxController(_mockTaxService.Object);
|
|
}
|
|
|
|
[Test]
|
|
public async Task GetPersonsTaxIdData_OK()
|
|
{
|
|
var personTaxIdDataResponse = new List<PersonTaxIdDataResponse>
|
|
{
|
|
new() {
|
|
FirstName = "Greg",
|
|
MiddleInitial = "H",
|
|
LastName = "Stevens",
|
|
Suffix = "Jr.",
|
|
NameFull = "Greg H. Stevens Jr.",
|
|
PersonNumber = 123
|
|
}
|
|
};
|
|
|
|
_mockTaxService.Setup(service => service.GetPersonsTaxIdData("123")).ReturnsAsync(personTaxIdDataResponse).Verifiable();
|
|
var results = await _taxController.GetPersonsTaxIdData("123");
|
|
|
|
Assert.NotNull(results);
|
|
var okResult = results as OkObjectResult;
|
|
Assert.NotNull(okResult);
|
|
Assert.AreEqual(200, okResult.StatusCode);
|
|
|
|
var dataResponse = okResult.Value as IEnumerable<PersonTaxIdDataResponse>;
|
|
Assert.NotNull(dataResponse);
|
|
Assert.AreEqual(1, dataResponse.Count());
|
|
var firstResponse = dataResponse.First();
|
|
Assert.AreEqual("Greg",firstResponse.FirstName);
|
|
Assert.AreEqual("H", firstResponse.MiddleInitial);
|
|
Assert.AreEqual("Stevens", firstResponse.LastName);
|
|
Assert.AreEqual("Jr.", firstResponse.Suffix);
|
|
Assert.AreEqual("Greg H. Stevens Jr.", firstResponse.NameFull);
|
|
Assert.AreEqual(123, firstResponse.PersonNumber);
|
|
_mockTaxService.Verify();
|
|
}
|
|
|
|
[Test]
|
|
public async Task GetPersonsTaxIdData_EmptyString_BadRequest()
|
|
{
|
|
|
|
var results = await _taxController.GetPersonsTaxIdData("");
|
|
|
|
Assert.NotNull(results);
|
|
var okResult = results as BadRequestObjectResult;
|
|
Assert.NotNull(okResult);
|
|
Assert.AreEqual(400, okResult.StatusCode);
|
|
|
|
_mockTaxService.Verify(service => service.GetPersonsTaxIdData(It.IsAny<string>()), Times.Never);
|
|
}
|
|
|
|
[Test]
|
|
public async Task GetPersonsTaxIdData_ErrorThrown_ServerError()
|
|
{
|
|
_mockTaxService.Setup(service => service.GetPersonsTaxIdData("123")).ThrowsAsync(new Exception("Thrown from unit test."));
|
|
var results = await _taxController.GetPersonsTaxIdData("123");
|
|
|
|
Assert.NotNull(results);
|
|
var okResult = results as StatusCodeResult;
|
|
Assert.NotNull(okResult);
|
|
Assert.AreEqual(500, okResult.StatusCode);
|
|
_mockTaxService.Verify();
|
|
}
|
|
|
|
[Test]
|
|
public async Task GetOrganizationsTaxIdData_OK()
|
|
{
|
|
var organizationsTaxIdDataResponse = new List<OrganizationTaxIdDataResponse>
|
|
{
|
|
new() {
|
|
Name = "Electric Company",
|
|
OrganizationNumber = 123
|
|
}
|
|
};
|
|
|
|
_mockTaxService.Setup(service => service.GetOrganizationsTaxIdData("123")).ReturnsAsync(organizationsTaxIdDataResponse).Verifiable();
|
|
var results = await _taxController.GetOrganizationsTaxIdData("123");
|
|
|
|
Assert.NotNull(results);
|
|
var okResult = results as OkObjectResult;
|
|
Assert.NotNull(okResult);
|
|
Assert.AreEqual(200, okResult.StatusCode);
|
|
|
|
var dataResponse = okResult.Value as IEnumerable<OrganizationTaxIdDataResponse>;
|
|
Assert.NotNull(dataResponse);
|
|
Assert.AreEqual(1, dataResponse.Count());
|
|
var firstResponse = dataResponse.First();
|
|
Assert.AreEqual("Electric Company",firstResponse.Name);
|
|
Assert.AreEqual(123, firstResponse.OrganizationNumber);
|
|
_mockTaxService.Verify();
|
|
}
|
|
|
|
[Test]
|
|
public async Task GetOrganizationsTaxIdData_EmptyString_BadRequest()
|
|
{
|
|
|
|
var results = await _taxController.GetOrganizationsTaxIdData("");
|
|
|
|
Assert.NotNull(results);
|
|
var okResult = results as BadRequestObjectResult;
|
|
Assert.NotNull(okResult);
|
|
Assert.AreEqual(400, okResult.StatusCode);
|
|
|
|
_mockTaxService.Verify(service => service.GetOrganizationsTaxIdData(It.IsAny<string>()), Times.Never);
|
|
}
|
|
|
|
[Test]
|
|
public async Task GetOrganizationsTaxIdData_ErrorThrown_ServerError()
|
|
{
|
|
_mockTaxService.Setup(service => service.GetOrganizationsTaxIdData("123")).ThrowsAsync(new Exception("Thrown from unit test."));
|
|
var results = await _taxController.GetOrganizationsTaxIdData("123");
|
|
|
|
Assert.NotNull(results);
|
|
var okResult = results as StatusCodeResult;
|
|
Assert.NotNull(okResult);
|
|
Assert.AreEqual(500, okResult.StatusCode);
|
|
_mockTaxService.Verify();
|
|
}
|
|
}
|
|
} |