135 lines
4.5 KiB
C#
135 lines
4.5 KiB
C#
using System;
|
|
using LCU.API.Collections.CollectionsApi.Controllers;
|
|
using LCU.API.Collections.CollectionsApi.Exceptions;
|
|
using LCU.API.Collections.CollectionsApi.Services;
|
|
using Microsoft.AspNetCore.Mvc;
|
|
using Moq;
|
|
using System.Collections.Generic;
|
|
using LCU.API.Collections.CollectionsApiLib.Models;
|
|
using Xunit;
|
|
|
|
namespace LCU.API.Collections.CollectionsApiTests.ControllerTests
|
|
{
|
|
public class AccountControllerTest
|
|
{
|
|
private Mock<IAccountService> _mockService;
|
|
private AccountController _controller;
|
|
|
|
public AccountControllerTest()
|
|
{
|
|
_mockService = new Mock<IAccountService>();
|
|
_controller = new AccountController(_mockService.Object);
|
|
}
|
|
|
|
[Fact]
|
|
public async void Get_Accounts_By_Id_OK()
|
|
{
|
|
_mockService.Setup(service => service.FindByIdAsync(It.IsAny<int>())).ReturnsAsync(new CollectionsApiLib.Models.TemenosAccount()
|
|
{
|
|
AccountId = 12345,
|
|
AccountIdentifier = "Identifier"
|
|
});
|
|
|
|
//arrange
|
|
|
|
//act
|
|
var result = await _controller.GetAccountByAccountId(12345);
|
|
Assert.NotNull(result);
|
|
var okResult = result as OkObjectResult;
|
|
|
|
// assert
|
|
Assert.NotNull(okResult);
|
|
Assert.Equal(200, okResult.StatusCode);
|
|
var resultAccount = okResult.Value as CollectionsApiLib.Models.TemenosAccount;
|
|
Assert.NotNull(resultAccount);
|
|
}
|
|
|
|
[Fact]
|
|
public async void Get_Accounts_By_AccountNo_OK()
|
|
{
|
|
//arrange
|
|
_mockService.Setup(service => service.ListByAccountNoAsync(It.IsAny<string>())).ReturnsAsync(
|
|
new List<CollectionsApiLib.Models.TemenosAccount>(){
|
|
new CollectionsApiLib.Models.TemenosAccount()
|
|
{
|
|
AccountNumber = "54444143",
|
|
AccountId = 12345,
|
|
AccountIdentifier = "Identifier"
|
|
}
|
|
});
|
|
|
|
//act
|
|
var result = await _controller.GetAccountByAccountNo("54444143");
|
|
Assert.NotNull(result);
|
|
var okResult = result as OkObjectResult;
|
|
|
|
// assert
|
|
Assert.NotNull(okResult);
|
|
Assert.Equal(200, okResult.StatusCode);
|
|
var resultAccount = okResult.Value as List<CollectionsApiLib.Models.TemenosAccount>;
|
|
Assert.NotNull(resultAccount);
|
|
}
|
|
|
|
|
|
[Fact]
|
|
public async void Get_Accounts_By_Id_400()
|
|
{
|
|
//arrange
|
|
_mockService.Setup(service => service.FindByIdAsync(It.IsAny<int>())).Throws(new NotFoundException("Oops"));
|
|
|
|
//act
|
|
var result = await _controller.GetAccountByAccountId(12345);
|
|
Assert.NotNull(result);
|
|
var NFResult = result as NotFoundObjectResult;
|
|
|
|
// assert
|
|
Assert.NotNull(NFResult);
|
|
Assert.Equal(404, NFResult.StatusCode);
|
|
}
|
|
|
|
[Fact]
|
|
public async void Get_Accounts_By_Id_500()
|
|
{
|
|
//arrange
|
|
_mockService.Setup(service => service.FindByIdAsync(It.IsAny<int>())).Throws(new System.Exception("Oops"));
|
|
|
|
//act
|
|
var result = await _controller.GetAccountByAccountId(12345);
|
|
Assert.NotNull(result);
|
|
var result500 = result as StatusCodeResult;
|
|
|
|
// assert
|
|
Assert.NotNull(result500);
|
|
Assert.Equal(500, result500.StatusCode);
|
|
}
|
|
|
|
[Fact]
|
|
public async void Get_History_By_Id_OK()
|
|
{
|
|
//arrange
|
|
const int accountId = 12345;
|
|
_mockService.Setup(service => service.GetHistoryByAccountIdAsync(accountId)).ReturnsAsync(new List<TemenosHistory>()
|
|
{
|
|
new TemenosHistory()
|
|
{
|
|
Created = DateTime.Now,
|
|
Message = "controllertest",
|
|
Type = HistoryType.Workflow,
|
|
UserId = 10
|
|
}
|
|
});
|
|
|
|
//act
|
|
var result = await _controller.GetHistoryByAccountId(accountId);
|
|
Assert.NotNull(result);
|
|
var okResult = result as OkObjectResult;
|
|
|
|
// assert
|
|
Assert.NotNull(okResult);
|
|
Assert.Equal(200, okResult.StatusCode);
|
|
var resultAccount = okResult.Value as IReadOnlyCollection<TemenosHistory>;
|
|
Assert.NotNull(resultAccount);
|
|
}
|
|
}
|
|
}
|