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

124 lines
5.0 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.LcuModels.Members;
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels.Mixed;
namespace LCU.Api.Internal.CoreApiWrapperTest.Controllers
{
public class MemberControllerTest
{
private MemberController _memberController;
private Mock<IMemberService> _mockMemberService;
private Mock<ILoanService> _mockLoanService;
[SetUp]
public void SetUp()
{
_mockMemberService = new Mock<IMemberService>();
_mockLoanService = new Mock<ILoanService>();
_memberController = new MemberController(_mockMemberService.Object, _mockLoanService.Object);
}
[Test]
public async Task GetMemberByAccountNumber_OK()
{
_mockMemberService.Setup(x => x.GetMemberByAccountNumber(123334234324)).ReturnsAsync(new Member(){ MemberId = 1}).Verifiable();
var results = await _memberController.GetMemberByAccountNumber(123334234324);
Assert.NotNull(results);
var okResult = results as OkObjectResult;
Assert.NotNull(okResult);
Assert.AreEqual(200, okResult.StatusCode);
var result = okResult.Value as Member;
Assert.NotNull(result);
Assert.AreEqual(1, result.MemberId);
_mockLoanService.Verify();
}
[Test]
public async Task GetMemberByAccountNumber_Exception()
{
_mockMemberService.Setup(x => x.GetMemberByAccountNumber(It.IsAny<long>())).Throws(new Exception("Oops"));
var results = await _memberController.GetMemberByAccountNumber(1234555);
Assert.NotNull(results);
var badRes = results as StatusCodeResult;
Assert.NotNull(badRes);
Assert.AreEqual(500, badRes.StatusCode);
}
[Test]
public async Task GetPersonOrOrganizationNumberByMemberNumber_PersonFound()
{
long personMemberNumber = 123;
string personName = "John E Jacob Jr";
var personOrOrganization = new PersonOrganization()
{
PersonNumber = personMemberNumber.ToString(),
EntityName = personName
};
_mockMemberService.Setup(x => x.GetPersonOrOrganizationNumberByMemberId(It.IsAny<long>())).ReturnsAsync(personOrOrganization).Verifiable();
var result = await _memberController.GetPersonOrOrganizationNumberByMemberId(personMemberNumber);
var okResult = result as OkObjectResult;
var personOrOrganizationResult = okResult.Value as PersonOrganization;
Assert.NotNull(result);
Assert.AreEqual(personMemberNumber.ToString(), personOrOrganizationResult.PersonNumber);
Assert.AreEqual(personName, personOrOrganizationResult.EntityName);
Assert.IsNull(personOrOrganizationResult.OrganizationNumber);
Assert.AreEqual(200, okResult.StatusCode);
}
[Test]
public async Task GetPersonOrOrganizationNumberByMemberNumber_OrganizationFound()
{
long organizationMemberNumber = 123;
string organizationName = "John E Consulting LLC";
var personOrOrganization = new PersonOrganization()
{
OrganizationNumber = organizationMemberNumber.ToString(),
EntityName = organizationName
};
_mockMemberService.Setup(x => x.GetPersonOrOrganizationNumberByMemberId(It.IsAny<long>())).ReturnsAsync(personOrOrganization).Verifiable();
var result = await _memberController.GetPersonOrOrganizationNumberByMemberId(organizationMemberNumber);
var okResult = result as OkObjectResult;
var personOrOrganizationResult = okResult.Value as PersonOrganization;
Assert.NotNull(result);
Assert.AreEqual(organizationMemberNumber.ToString(), personOrOrganizationResult.OrganizationNumber);
Assert.AreEqual(organizationName, personOrOrganizationResult.EntityName);
Assert.IsNull(personOrOrganizationResult.PersonNumber);
Assert.AreEqual(200, okResult.StatusCode);
}
[Test]
public async Task GetPersonOrOrganizationNumberByMemberNumber_NeitherFound_Exception()
{
long organizationMemberNumber = 123;
_mockMemberService.Setup(x => x.GetPersonOrOrganizationNumberByMemberId(It.IsAny<long>())).Throws(new ArgumentNullException()).Verifiable();
var result = await _memberController.GetPersonOrOrganizationNumberByMemberId(organizationMemberNumber);
var notFoundResult = result as StatusCodeResult;
Assert.NotNull(result);
Assert.NotNull(notFoundResult);
Assert.AreEqual(404, notFoundResult.StatusCode);
}
}
}