Files
2026-03-31 14:32:23 -05:00

289 lines
10 KiB
C#

using System;
using System.Collections.Generic;
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.CoreRequests;
using LCU.Library.Internal.CoreApiWrapperModel.CoreModels.Persons;
namespace LCU.Api.Internal.CoreApiWrapperTest.Controllers
{
public class PersonUserFieldControllerTest
{
private PersonUserFieldController _personUserFieldController;
private Mock<IPersonUserFieldService> _mockPersonUserFieldService;
[SetUp]
public void SetUp()
{
_mockPersonUserFieldService = new Mock<IPersonUserFieldService>();
_personUserFieldController = new PersonUserFieldController(_mockPersonUserFieldService.Object);
}
[Test]
public async Task PutPersonUserFieldsAtmCheckHolds_OK()
{
var personUserField1 = new PersonUserField()
{
Id = "TEST1",
PersonNumber = 100001,
UserFieldCode = "TEST1",
Value = "N"
};
_mockPersonUserFieldService.Setup(x => x.UpdatePersonUserFieldAsync(It.IsAny<PersonUserFieldRequest>())).ReturnsAsync(personUserField1);
var personUserFieldUpdateRequest = new PersonUserFieldRequest()
{
PersonNumber = 100001,
UserFieldCode = "TEST1",
Value = "Y"
};
var results = await _personUserFieldController.PutPersonUserFieldForAtmCheckHolds(personUserFieldUpdateRequest);
Assert.NotNull(results);
var okResult = results as OkObjectResult;
Assert.NotNull(okResult);
Assert.AreEqual(200, okResult.StatusCode);
}
[Test]
public async Task PutPersonUserFieldsAtmCheckholds_Exception()
{
_mockPersonUserFieldService.Setup(x => x.UpdatePersonUserFieldAsync(It.IsAny<PersonUserFieldRequest>())).Throws(new NullReferenceException("Oops"));
var personUserFieldUpdateRequest = new PersonUserFieldRequest()
{
PersonNumber = 100001,
UserFieldCode = "TEST1",
Value = "Y"
};
var results = await _personUserFieldController.PutPersonUserFieldForAtmCheckHolds(personUserFieldUpdateRequest);
_mockPersonUserFieldService.Verify();
var badRes = results as ObjectResult;
Assert.NotNull(badRes);
Assert.AreEqual(500, badRes.StatusCode);
}
[Test]
public async Task PostPersonUserFieldsAtmCheckhold_OK()
{
var personUserField1 = new PersonUserField()
{
Id = "TEST1",
PersonNumber = 100001,
UserFieldCode = "TEST1",
Value = "N"
};
_mockPersonUserFieldService.Setup(x => x.InsertPersonUserFieldAsync(It.IsAny<PersonUserFieldRequest>())).ReturnsAsync(personUserField1);
var personUserFieldUpdateRequest = new PersonUserFieldRequest()
{
PersonNumber = 100001,
UserFieldCode = "TEST1",
Value = "Y"
};
var results = await _personUserFieldController.PostPersonUserFieldForAtmCheckHolds(personUserFieldUpdateRequest);
Assert.NotNull(results);
var okResult = results as OkObjectResult;
Assert.NotNull(okResult);
Assert.AreEqual(200, okResult.StatusCode);
}
[Test]
public async Task PostPersonUserFieldsAtmCHeckhold_Exception()
{
_mockPersonUserFieldService.Setup(x => x.InsertPersonUserFieldAsync(It.IsAny<PersonUserFieldRequest>())).Throws(new NullReferenceException("Nope!"));
var personUserFieldUpdateRequest = new PersonUserFieldRequest()
{
PersonNumber = 100001,
UserFieldCode = "TEST1",
Value = "Y"
};
var results = await _personUserFieldController.PostPersonUserFieldForAtmCheckHolds(personUserFieldUpdateRequest);
_mockPersonUserFieldService.Verify();
var badRes = results as ObjectResult;
Assert.NotNull(badRes);
Assert.AreEqual(500, badRes.StatusCode);
}
[Test]
public async Task GetPersonUserFieldsForAtmCheckHolds_OK()
{
var personUserField1 = new PersonCheckHoldsUserField()
{
PersonNumber = 100001,
OldestActiveEffectiveDate = DateTime.UtcNow,
RecentClosedEffectiveDate = DateTime.UtcNow,
UserFieldExists = true,
};
var personUserField2 = new PersonCheckHoldsUserField()
{
PersonNumber = 200001,
OldestActiveEffectiveDate = DateTime.UtcNow,
RecentClosedEffectiveDate = DateTime.UtcNow,
UserFieldExists = false,
};
_mockPersonUserFieldService.Setup(x => x.GetPersonsForAtmCheckHolds(It.IsAny<DateTime>(), It.IsAny<DateTime>())).ReturnsAsync(
new List<PersonCheckHoldsUserField>()
{
personUserField1,
personUserField2
});
var results = await _personUserFieldController.GetPersonsForAtmCheckHolds(DateTime.Now, DateTime.Now, 0);
Assert.NotNull(results);
var okResult = results as OkObjectResult;
Assert.NotNull(okResult);
Assert.AreEqual(200, okResult.StatusCode);
}
[Test]
public async Task GetPersonUserFieldsForAtmCheckHoldsLimit_OK()
{
var personUserField1 = new PersonCheckHoldsUserField()
{
PersonNumber = 100001,
OldestActiveEffectiveDate = DateTime.UtcNow,
RecentClosedEffectiveDate = DateTime.UtcNow,
UserFieldExists = true,
};
var personUserField2 = new PersonCheckHoldsUserField()
{
PersonNumber = 200001,
OldestActiveEffectiveDate = DateTime.UtcNow,
RecentClosedEffectiveDate = DateTime.UtcNow,
UserFieldExists = false,
};
_mockPersonUserFieldService.Setup(x => x.GetPersonsForAtmCheckHolds(It.IsAny<DateTime>(), It.IsAny<DateTime>())).ReturnsAsync(
new List<PersonCheckHoldsUserField>()
{
personUserField1
});
var results = await _personUserFieldController.GetPersonsForAtmCheckHolds(DateTime.Now, DateTime.Now, 1);
Assert.NotNull(results);
var okResult = results as OkObjectResult;
Assert.NotNull(okResult);
Assert.AreEqual(200, okResult.StatusCode);
}
[Test]
public async Task PutPersonUserFieldsGeneric_OK()
{
var personUserField1 = new PersonUserField()
{
Id = "TEST1",
PersonNumber = 100001,
UserFieldCode = "TEST1",
Value = "N"
};
_mockPersonUserFieldService.Setup(x => x.UpdatePersonUserFieldAsync(It.IsAny<PersonUserFieldRequest>())).ReturnsAsync(personUserField1);
var personUserFieldUpdateRequest = new PersonUserFieldRequest()
{
PersonNumber = 100001,
UserFieldCode = "TEST1",
Value = "Y"
};
var results = await _personUserFieldController.PutPersonUserField(personUserFieldUpdateRequest);
Assert.NotNull(results);
var okResult = results as OkObjectResult;
Assert.NotNull(okResult);
Assert.AreEqual(200, okResult.StatusCode);
}
[Test]
public async Task PutPersonUserFieldsGeneric_Exception()
{
_mockPersonUserFieldService.Setup(x => x.UpdatePersonUserFieldAsync(It.IsAny<PersonUserFieldRequest>())).Throws(new NullReferenceException("Oops"));
var personUserFieldUpdateRequest = new PersonUserFieldRequest()
{
PersonNumber = 100001,
UserFieldCode = "TEST1",
Value = "Y"
};
var results = await _personUserFieldController.PutPersonUserField(personUserFieldUpdateRequest);
_mockPersonUserFieldService.Verify();
var badRes = results as ObjectResult;
Assert.NotNull(badRes);
Assert.AreEqual(500, badRes.StatusCode);
}
[Test]
public async Task PostPersonUserFieldsGeneric_OK()
{
var personUserField1 = new PersonUserField()
{
Id = "TEST1",
PersonNumber = 100001,
UserFieldCode = "TEST1",
Value = "N"
};
_mockPersonUserFieldService.Setup(x => x.InsertPersonUserFieldAsync(It.IsAny<PersonUserFieldRequest>())).ReturnsAsync(personUserField1);
var personUserFieldUpdateRequest = new PersonUserFieldRequest()
{
PersonNumber = 100001,
UserFieldCode = "TEST1",
Value = "Y"
};
var results = await _personUserFieldController.PostPersonUserField(personUserFieldUpdateRequest);
Assert.NotNull(results);
var okResult = results as OkObjectResult;
Assert.NotNull(okResult);
Assert.AreEqual(200, okResult.StatusCode);
}
[Test]
public async Task PostPersonUserFieldsGeneric_Exception()
{
_mockPersonUserFieldService.Setup(x => x.InsertPersonUserFieldAsync(It.IsAny<PersonUserFieldRequest>())).Throws(new NullReferenceException("Nope!"));
var personUserFieldUpdateRequest = new PersonUserFieldRequest()
{
PersonNumber = 100001,
UserFieldCode = "TEST1",
Value = "Y"
};
var results = await _personUserFieldController.PostPersonUserField(personUserFieldUpdateRequest);
_mockPersonUserFieldService.Verify();
var badRes = results as ObjectResult;
Assert.NotNull(badRes);
Assert.AreEqual(500, badRes.StatusCode);
}
}
}