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.Accounts; namespace LCU.Api.Internal.CoreApiWrapperTest.Controllers { public class AccountUserFieldControllerTest { private AccountUserFieldController _accountUserFieldController; private Mock _mockAccountUserFieldService; [SetUp] public void SetUp() { _mockAccountUserFieldService = new Mock(); _accountUserFieldController = new AccountUserFieldController(_mockAccountUserFieldService.Object); } [Test] public async Task PutAccountUserFields_OK() { var accountUserField1 = new AccountUserField() { Id = "TEST1", AccountNumber = 100001, UserFieldCode = "TEST1", Value = "N" }; var accountUserField2 = new AccountUserField() { Id = "TEST2", AccountNumber = 100002, UserFieldCode = "TEST2", Value = "Y" }; _mockAccountUserFieldService.Setup(x => x.UpdateAccountUserFieldsAsync(It.IsAny>())).ReturnsAsync( new List() { accountUserField1, accountUserField2 }); var accountUserFieldUpdateRequest = new List() { new AccountUserFieldRequest() { AccountNumber = 100001, UserFieldCode = "TEST1", Value = "Y" }, new AccountUserFieldRequest() { AccountNumber = 100002, UserFieldCode = "TEST2", Value = "N" } }; var results = await _accountUserFieldController.Put(accountUserFieldUpdateRequest); Assert.NotNull(results); var okResult = results as OkObjectResult; Assert.NotNull(okResult); Assert.AreEqual(200, okResult.StatusCode); } [Test] public async Task PutAccountUserFields_Exception() { _mockAccountUserFieldService.Setup(x => x.UpdateAccountUserFieldsAsync(It.IsAny>())).Throws(new Exception("Oops")); var accountUserFieldUpdateRequest = new List() { new AccountUserFieldRequest() { AccountNumber = 100001, UserFieldCode = "TEST1", Value = "Y" }, new AccountUserFieldRequest() { AccountNumber = 100002, UserFieldCode = "TEST2", Value = "N" } }; var results = await _accountUserFieldController.Put(accountUserFieldUpdateRequest); Assert.NotNull(results); var badRes = results as BadRequestObjectResult; Assert.NotNull(badRes); Assert.AreEqual(400, badRes.StatusCode); } [Test] public async Task PostAccountUserFields_OK() { var accountUserField1 = new AccountUserField() { Id = "TEST1", AccountNumber = 100001, UserFieldCode = "TEST1", Value = "N" }; var accountUserField2 = new AccountUserField() { Id = "TEST2", AccountNumber = 100002, UserFieldCode = "TEST2", Value = "Y" }; _mockAccountUserFieldService.Setup(x => x.InsertAccountUserFieldsAsync(It.IsAny>())).ReturnsAsync( new List() { accountUserField1, accountUserField2 }); var accountUserFieldUpdateRequest = new List() { new AccountUserFieldRequest() { AccountNumber = 100001, UserFieldCode = "TEST1", Value = "Y" }, new AccountUserFieldRequest() { AccountNumber = 100002, UserFieldCode = "TEST2", Value = "N" } }; var results = await _accountUserFieldController.Post(accountUserFieldUpdateRequest); Assert.NotNull(results); var okResult = results as OkObjectResult; Assert.NotNull(okResult); Assert.AreEqual(200, okResult.StatusCode); } [Test] public async Task PostAccountUserFields_Exception() { _mockAccountUserFieldService.Setup(x => x.InsertAccountUserFieldsAsync(It.IsAny>())).Throws(new Exception("Oops")); var accountUserFieldUpdateRequest = new List() { new AccountUserFieldRequest() { AccountNumber = 100001, UserFieldCode = "TEST1", Value = "Y" }, new AccountUserFieldRequest() { AccountNumber = 100002, UserFieldCode = "TEST2", Value = "N" } }; var results = await _accountUserFieldController.Post(accountUserFieldUpdateRequest); Assert.NotNull(results); var badRes = results as BadRequestObjectResult; Assert.NotNull(badRes); Assert.AreEqual(400, badRes.StatusCode); } } }