Files
2026-03-13 12:58:13 -05:00

310 lines
12 KiB
C#

using Moq;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using System;
using System.Web.Http.Results;
using LCU.API.Internal.CoreSoapApiWrapper.Controllers;
using LCU.API.Internal.CoreSoapApiWrapper.CoreSoapUtilities;
using LCU.API.Internal.CoreSoapApiWrapper.Services;
using LCU.API.Internal.CoreSoapApiWrapper.Models.Requests;
using LCU.API.Internal.CoreSoapApiWrapper.Models.Responses;
namespace LCU.API.Internal.CoreSoapApiWrapperTest.Controllers
{
[TestClass]
public class AccountControllerTest
{
private AccountController _controller;
private Mock<IAccountService> _mockAccountService;
public AccountControllerTest()
{
_mockAccountService = new Mock<IAccountService>();
_controller = new AccountController(_mockAccountService.Object);
}
[TestMethod]
public void GetAccountByAccountNumber_OK()
{
var maintenanceResponse = new AccountDetailInquiryResponse
{
WasSuccessful = true
};
_mockAccountService.Setup(x => x.GetAccountByAccountNumber(100L)).Returns(maintenanceResponse).Verifiable();
var result = _controller.GetAccountByAccountNumber(100L);
Assert.IsNotNull(result);
var okResult = result as OkNegotiatedContentResult<AccountDetailInquiryResponse>;
Assert.IsNotNull(okResult);
Assert.IsTrue((bool)okResult.Content.WasSuccessful);
_mockAccountService.Verify();
}
[TestMethod]
public void GetAccountByAccountNumber_LongIsZero_BadRequest()
{
_mockAccountService.Verify(x => x.GetAccountByAccountNumber(It.IsAny<long>()),
Times.Never);
var result = _controller.GetAccountByAccountNumber(0);
Assert.IsNotNull(result);
var okResult = result as BadRequestErrorMessageResult;
Assert.IsNotNull(okResult);
_mockAccountService.Verify(x => x.GetAccountByAccountNumber(It.IsAny<long>()), Times.Never);
}
[TestMethod]
public void GetAccountByAccountNumber_Exception()
{
_mockAccountService.Setup(x => x.GetAccountByAccountNumber(100L)).Throws(new Exception("Error thrown in unit test.")).Verifiable();
var result = _controller.GetAccountByAccountNumber(100);
Assert.IsNotNull(result);
var okResult = result as BadRequestErrorMessageResult;
Assert.IsNotNull(okResult);
_mockAccountService.Verify();
}
[TestMethod]
public void PutAccountMaintenanceRequest_OK()
{
var maintenanceRequest = new AccountMaintenanceRequest
{
Accounts = new[]{
new MaintenanceAccount
{
AccountNumber = 123456,
DeliveryMethodCode = "PRNT"
}
}
};
var maintenanceResponse = new AccountMaintenanceResponse
{
WasSuccessful = true
};
_mockAccountService.Setup(x => x.SendAccountMaintenanceRequest(maintenanceRequest)).Returns(maintenanceResponse).Verifiable();
var result = _controller.PutAccountMaintenanceRequest(maintenanceRequest);
Assert.IsNotNull(result);
var okResult = result as OkNegotiatedContentResult<AccountMaintenanceResponse>;
Assert.IsNotNull(okResult);
Assert.IsTrue((bool)okResult.Content.WasSuccessful);
_mockAccountService.Verify();
}
[TestMethod]
public void PutAccountMaintenanceRequest_Null_BadRequest()
{
_mockAccountService.Verify(x => x.SendAccountMaintenanceRequest(It.IsAny<AccountMaintenanceRequest>()),
Times.Never);
var result = _controller.PutAccountMaintenanceRequest(null);
Assert.IsNotNull(result);
var okResult = result as BadRequestErrorMessageResult;
Assert.IsNotNull(okResult);
_mockAccountService.Verify(x => x.SendAccountMaintenanceRequest(It.IsAny<AccountMaintenanceRequest>()),
Times.Never);
}
[TestMethod]
public void PutAccountMaintenanceRequest_Exception()
{
var maintenanceRequest = new AccountMaintenanceRequest
{
Accounts = new[]{
new MaintenanceAccount
{
AccountNumber = 123456,
DeliveryMethodCode = "PRNT"
}
}
};
_mockAccountService.Setup(x => x.SendAccountMaintenanceRequest(maintenanceRequest)).Throws(new Exception("Error thrown in unit test.")).Verifiable();
var result = _controller.PutAccountMaintenanceRequest(maintenanceRequest);
Assert.IsNotNull(result);
var okResult = result as BadRequestErrorMessageResult;
Assert.IsNotNull(okResult);
_mockAccountService.Verify();
}
[TestMethod]
public void PutAccountAnalysisGroupMaintenanceRequest_OK()
{
var maintenanceRequest = new AccountAnalysisGroupMaintenanceRequest
{
AccountNumber = 11111111,
IsGenerateAnalysisStatement = true,
IsPrintAnalysisStatement = true,
IsUseForServiceCharge = true,
};
var maintenanceResponse = new AccountAnalysisMaintenanceResponse
{
WasSuccessful = true
};
_mockAccountService.Setup(x => x.SendAccountAnalysisGroupMaintenanceRequest(maintenanceRequest)).Returns(new BasicResponse(maintenanceResponse)).Verifiable();
var result = _controller.PutAccountAnalysisGroupMaintenanceRequest(maintenanceRequest);
Assert.IsNotNull(result);
var okResult = result as OkNegotiatedContentResult<BasicResponse>;
Assert.IsNotNull(okResult);
Assert.IsTrue((bool)okResult.Content.Success);
_mockAccountService.Verify();
}
[TestMethod]
public void PutAccountAnalysisGroupMaintenanceRequest_Exception()
{
var maintenanceRequest = new AccountAnalysisGroupMaintenanceRequest
{
AccountNumber = 11111111,
IsGenerateAnalysisStatement = true,
IsPrintAnalysisStatement = true,
IsUseForServiceCharge = true,
};
_mockAccountService.Setup(x => x.SendAccountAnalysisGroupMaintenanceRequest(maintenanceRequest)).Throws(new Exception("Error thrown in unit test.")).Verifiable();
var result = _controller.PutAccountAnalysisGroupMaintenanceRequest(maintenanceRequest);
Assert.IsNotNull(result);
var okResult = result as BadRequestErrorMessageResult;
Assert.IsNotNull(okResult);
_mockAccountService.Verify();
}
[TestMethod]
public void PutAccountNickNameUpdateRequest_OK()
{
var maintenanceRequest = new AccountNickNameUpdateRequest
{
AccountNumber = 11111111,
AccountDescription = "TestSuccess"
};
var maintenanceResponse = new AccountAnalysisMaintenanceResponse
{
WasSuccessful = true
};
_mockAccountService.Setup(x => x.SendAccountNickNameUpdateRequest(maintenanceRequest)).Returns(new BasicResponse(maintenanceResponse)).Verifiable();
var result = _controller.PutAccountNickNameUpdateRequest(maintenanceRequest);
Assert.IsNotNull(result);
var okResult = result as OkNegotiatedContentResult<BasicResponse>;
Assert.IsNotNull(okResult);
Assert.IsTrue((bool)okResult.Content.Success);
_mockAccountService.Verify();
}
[TestMethod]
public void PutAccountNickNameUpdateRequest_Exception()
{
var maintenanceRequest = new AccountNickNameUpdateRequest
{
AccountNumber = 11111111,
AccountDescription = "TestException"
};
_mockAccountService.Setup(x => x.SendAccountNickNameUpdateRequest(maintenanceRequest)).Throws(new Exception("Error thrown in unit test.")).Verifiable();
var result = _controller.PutAccountNickNameUpdateRequest(maintenanceRequest);
Assert.IsNotNull(result);
var okResult = result as BadRequestErrorMessageResult;
Assert.IsNotNull(okResult);
_mockAccountService.Verify();
}
[TestMethod]
public void PutAccountCreditReportTypeUpdateRequest_OK()
{
var maintenanceRequest = new AccountCreditReportTypeUpdateRequest
{
AccountNumber = 11111111,
CreditReportType = "EXCL"
};
var maintenanceResponse = new AccountAnalysisMaintenanceResponse
{
WasSuccessful = true
};
_mockAccountService.Setup(x => x.SendAccountCreditReportTypeUpdateRequest(maintenanceRequest)).Returns(new BasicResponse(maintenanceResponse)).Verifiable();
var result = _controller.PutAccountCreditReportTypeUpdateRequest(maintenanceRequest);
Assert.IsNotNull(result);
var okResult = result as OkNegotiatedContentResult<BasicResponse>;
Assert.IsNotNull(okResult);
Assert.IsTrue((bool)okResult.Content.Success);
_mockAccountService.Verify();
}
[TestMethod]
public void PutAccountCreditReportTypeUpdateRequest_Exception()
{
var maintenanceRequest = new AccountCreditReportTypeUpdateRequest
{
AccountNumber = 11111111,
CreditReportType = "EXCL"
};
_mockAccountService.Setup(x => x.SendAccountCreditReportTypeUpdateRequest(maintenanceRequest)).Throws(new Exception("Error thrown in unit test.")).Verifiable();
var result = _controller.PutAccountCreditReportTypeUpdateRequest(maintenanceRequest);
Assert.IsNotNull(result);
var okResult = result as BadRequestErrorMessageResult;
Assert.IsNotNull(okResult);
_mockAccountService.Verify();
}
[TestMethod]
public void PutAccountContractDateUpdateRequest_OK()
{
var maintenanceRequest = new AccountContractDateUpdateRequest
{
AccountNumber = 11111111,
ContractDate = DateTime.Now,
};
var maintenanceResponse = new AccountAnalysisMaintenanceResponse
{
WasSuccessful = true
};
_mockAccountService.Setup(x => x.SendAccountContractDateUpdateRequest(maintenanceRequest)).Returns(new BasicResponse(maintenanceResponse)).Verifiable();
var result = _controller.PutAccountContractDateUpdateRequest(maintenanceRequest);
Assert.IsNotNull(result);
var okResult = result as OkNegotiatedContentResult<BasicResponse>;
Assert.IsNotNull(okResult);
Assert.IsTrue((bool)okResult.Content.Success);
_mockAccountService.Verify();
}
[TestMethod]
public void PutAccountContractDateUpdateRequest_Exception()
{
var maintenanceRequest = new AccountContractDateUpdateRequest
{
AccountNumber = 11111111,
ContractDate = DateTime.Now,
};
_mockAccountService.Setup(x => x.SendAccountContractDateUpdateRequest(maintenanceRequest)).Throws(new Exception("Error thrown in unit test.")).Verifiable();
var result = _controller.PutAccountContractDateUpdateRequest(maintenanceRequest);
Assert.IsNotNull(result);
var okResult = result as BadRequestErrorMessageResult;
Assert.IsNotNull(okResult);
_mockAccountService.Verify();
}
}
}