133 lines
4.3 KiB
C#
133 lines
4.3 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using Moq;
|
|
using Xunit;
|
|
using LCU.API.Collections.CollectionsApi.Services;
|
|
using LCU.API.Collections.CollectionsApi.Exceptions;
|
|
using System.Threading.Tasks;
|
|
using LCU.API.Collections.CollectionsApi.Dao;
|
|
using LCU.API.Collections.CollectionsApiLib.Models;
|
|
|
|
namespace LCU.API.Collections.CollectionsApiTests.ServiceTests
|
|
{
|
|
public class CaseServiceTest
|
|
{
|
|
private Mock<ITemenosCaseDao> _mockTemenosCaseDao;
|
|
private CaseService _caseService;
|
|
|
|
public CaseServiceTest()
|
|
{
|
|
_mockTemenosCaseDao = new Mock<ITemenosCaseDao>();
|
|
_caseService = new CaseService( _mockTemenosCaseDao.Object);
|
|
}
|
|
|
|
[Fact]
|
|
public async void GetCaseByID_OK()
|
|
{
|
|
//setup
|
|
_mockTemenosCaseDao.Setup(dao => dao.FindByIdAsync(It.IsAny<int>())).ReturnsAsync(
|
|
new CollectionsApiLib.Models.TemenosCase()
|
|
{
|
|
CaseId = 1234,
|
|
CaseTitle = "Case"
|
|
}
|
|
);
|
|
|
|
var result = await _caseService.GetCaseByIdAsync(1234);
|
|
|
|
Assert.NotNull(result);
|
|
Assert.Equal(1234, result.CaseId);
|
|
}
|
|
|
|
[Fact]
|
|
public async void GetCaseByID_Server_Exception()
|
|
{
|
|
//setup
|
|
_mockTemenosCaseDao.Setup(dao => dao.FindByIdAsync(It.IsAny<int>())).ThrowsAsync(new Exception("Oops"));
|
|
|
|
var result = await Assert.ThrowsAsync<ServerErrorException>(() => _caseService.GetCaseByIdAsync(1234));
|
|
|
|
Assert.NotNull(result);
|
|
}
|
|
|
|
[Fact]
|
|
public async void GetCaseByID_NotFound()
|
|
{
|
|
//setup
|
|
_mockTemenosCaseDao.Setup(dao => dao.FindByIdAsync(It.IsAny<int>())).Returns(Task.FromResult<CollectionsApiLib.Models.TemenosCase>(null));
|
|
|
|
var result = await Assert.ThrowsAsync<NotFoundException>(() => _caseService.GetCaseByIdAsync(123));
|
|
|
|
Assert.NotNull(result);
|
|
Assert.Equal("Case with id 123 not found.", result.Message);
|
|
}
|
|
|
|
[Fact]
|
|
public async void GetCaseByNO_OK()
|
|
{
|
|
//setup
|
|
_mockTemenosCaseDao.Setup(dao => dao.FindByCaseNoAsync(It.IsAny<string>())).ReturnsAsync(
|
|
new CollectionsApiLib.Models.TemenosCase()
|
|
{
|
|
CaseId = 1234,
|
|
CaseNumber = "12345",
|
|
CaseTitle = "Case"
|
|
}
|
|
);
|
|
|
|
var result = await _caseService.GetCaseByCaseNoAsync("1234");
|
|
|
|
Assert.NotNull(result);
|
|
Assert.Equal(1234, result.CaseId);
|
|
}
|
|
|
|
[Fact]
|
|
public async void GetCaseByNo_Server_Exception()
|
|
{
|
|
//setup
|
|
_mockTemenosCaseDao.Setup(dao => dao.FindByCaseNoAsync(It.IsAny<string>())).ThrowsAsync(new Exception("Oops"));
|
|
|
|
var result = await Assert.ThrowsAsync<ServerErrorException>(() => _caseService.GetCaseByCaseNoAsync("12345"));
|
|
|
|
Assert.NotNull(result);
|
|
}
|
|
|
|
[Fact]
|
|
public async void GetCaseByNO_NotFound()
|
|
{
|
|
//setup
|
|
_mockTemenosCaseDao.Setup(dao => dao.FindByCaseNoAsync(It.IsAny<string>())).Returns(Task.FromResult<CollectionsApiLib.Models.TemenosCase>(null));
|
|
|
|
var result = await Assert.ThrowsAsync<NotFoundException>(() => _caseService.GetCaseByCaseNoAsync("1234"));
|
|
|
|
Assert.NotNull(result);
|
|
Assert.Equal("Case with case no 1234 not found.", result.Message);
|
|
}
|
|
|
|
[Fact]
|
|
public async void GetHistory_OK()
|
|
{
|
|
const int caseId = 111;
|
|
//setup
|
|
_mockTemenosCaseDao.Setup(dao => dao.FindCommentsAsync(caseId)).ReturnsAsync(
|
|
new List<TemenosHistory>()
|
|
{
|
|
new TemenosHistory()
|
|
{
|
|
Created = DateTime.Now,
|
|
Message = "Comment",
|
|
|
|
Type = HistoryType.Comment,
|
|
UserId = 10
|
|
}
|
|
}
|
|
);
|
|
|
|
var result = await _caseService.GetHistoryByAccountIdAsync(caseId);
|
|
|
|
Assert.NotNull(result);
|
|
Assert.Equal(1, result.Count);
|
|
}
|
|
}
|
|
}
|