Adding
This commit is contained in:
+96
@@ -0,0 +1,96 @@
|
||||
using System;
|
||||
using System.Security.Claims;
|
||||
using LCU.API.Collections.RepoApi.Controllers;
|
||||
using LCU.API.Collections.RepoApi.HostedServices;
|
||||
using LCU.API.Collections.RepoApi.Models.Requests;
|
||||
using LCU.Shared.Collections.RepoApiLib.Models.Producer;
|
||||
using Microsoft.AspNetCore.Http;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Moq;
|
||||
using Xunit;
|
||||
|
||||
namespace LCU.API.Collections.RepoApiTests.Controllers
|
||||
{
|
||||
public class QueueControllerTest
|
||||
{
|
||||
private readonly Mock<IRepoQueueProducerService> _mockService;
|
||||
private readonly Mock<IHttpContextAccessor> _mockHttpContextAccessor;
|
||||
|
||||
public QueueControllerTest()
|
||||
{
|
||||
_mockService = new Mock<IRepoQueueProducerService>();
|
||||
_mockHttpContextAccessor = new Mock<IHttpContextAccessor>();
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void PutSingleAccountOnQueue_OK()
|
||||
{
|
||||
//setup
|
||||
_mockService.Setup(x => x.SendRequestToQueue(It.IsAny<ProcessingItem>()));
|
||||
QueueController controller = new QueueController(_mockService.Object, _mockHttpContextAccessor.Object);
|
||||
|
||||
var context = new DefaultHttpContext();
|
||||
context.User = new ClaimsPrincipal();
|
||||
_mockHttpContextAccessor.Setup(_ => _.HttpContext).Returns(context);
|
||||
|
||||
var request = new AccountQueueRequest()
|
||||
{
|
||||
AccountNo = "12345-123"
|
||||
};
|
||||
|
||||
//act
|
||||
var res = controller.PutSingleAccountOnQueue(request);
|
||||
|
||||
Assert.IsType<OkResult>(res);
|
||||
_mockService.Verify(x => x.SendRequestToQueue(It.IsAny<ProcessingItem>()), Times.Once);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void PutSingleAccountOnQueue_Exception()
|
||||
{
|
||||
//setup
|
||||
_mockService.Setup(x => x.SendRequestToQueue(It.IsAny<ProcessingItem>())).Throws(new Exception("oops"));
|
||||
QueueController controller = new QueueController(_mockService.Object, _mockHttpContextAccessor.Object);
|
||||
var context = new DefaultHttpContext();
|
||||
context.User = new ClaimsPrincipal();
|
||||
_mockHttpContextAccessor.Setup(_ => _.HttpContext).Returns(context);
|
||||
|
||||
var request = new AccountQueueRequest()
|
||||
{
|
||||
AccountNo = "12345-123"
|
||||
};
|
||||
|
||||
//act
|
||||
var res = controller.PutSingleAccountOnQueue(request);
|
||||
var badres = res as ObjectResult;
|
||||
|
||||
//asert
|
||||
Assert.Equal(500, badres.StatusCode);
|
||||
_mockService.Verify(x => x.SendRequestToQueue(It.IsAny<ProcessingItem>()), Times.Once);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void PutSingleAccountOnQueue_BadFormat1()
|
||||
{
|
||||
//setup
|
||||
_mockService.Setup(x => x.SendRequestToQueue(It.IsAny<ProcessingItem>()));
|
||||
QueueController controller = new QueueController(_mockService.Object, _mockHttpContextAccessor.Object);
|
||||
var context = new DefaultHttpContext();
|
||||
context.User = new ClaimsPrincipal();
|
||||
_mockHttpContextAccessor.Setup(_ => _.HttpContext).Returns(context);
|
||||
controller.ModelState.AddModelError("Message", "Some field is required.");
|
||||
var request = new AccountQueueRequest()
|
||||
{
|
||||
AccountNo = "12345"
|
||||
};
|
||||
|
||||
//act
|
||||
var res = controller.PutSingleAccountOnQueue(request);
|
||||
var badres = res as ObjectResult;
|
||||
|
||||
//asert
|
||||
Assert.Equal(400, badres.StatusCode);
|
||||
_mockService.Verify(x => x.SendRequestToQueue(It.IsAny<ProcessingItem>()), Times.Never);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user