142 lines
5.6 KiB
C#
Raw Normal View History

2017-03-05 23:19:36 +01:00
using MediatR;
using Microsoft.AspNetCore.Mvc;
using Microsoft.eShopOnContainers.Services.Ordering.API.Application.Commands;
using Microsoft.eShopOnContainers.Services.Ordering.API.Application.Queries;
using Microsoft.eShopOnContainers.Services.Ordering.API.Controllers;
using Microsoft.eShopOnContainers.Services.Ordering.API.Infrastructure.Services;
using Moq;
using Ordering.API.Application.Commands;
2017-03-05 23:19:36 +01:00
using System;
using System.Linq;
2017-06-12 13:52:23 +02:00
using System.Threading;
2017-03-05 23:19:36 +01:00
using System.Threading.Tasks;
using Xunit;
namespace UnitTest.Ordering.Application
{
public class OrdersWebApiTest
{
private readonly Mock<IMediator> _mediatorMock;
private readonly Mock<IOrderQueries> _orderQueriesMock;
private readonly Mock<IIdentityService> _identityServiceMock;
public OrdersWebApiTest()
{
_mediatorMock = new Mock<IMediator>();
_orderQueriesMock = new Mock<IOrderQueries>();
_identityServiceMock = new Mock<IIdentityService>();
}
[Fact]
public async Task Create_order_with_requestId_success()
{
//Arrange
2017-06-12 13:52:23 +02:00
_mediatorMock.Setup(x => x.Send(It.IsAny<IdentifiedCommand<CancelOrderCommand, bool>>(), default(CancellationToken)))
.Returns(Task.FromResult(true));
2017-03-05 23:19:36 +01:00
//Act
var orderController = new OrdersController(_mediatorMock.Object, _orderQueriesMock.Object, _identityServiceMock.Object);
var actionResult = await orderController.CancelOrder(new CancelOrderCommand(1), Guid.NewGuid().ToString()) as OkResult;
2017-03-05 23:19:36 +01:00
//Assert
Assert.Equal(actionResult.StatusCode, (int)System.Net.HttpStatusCode.OK);
2017-03-05 23:19:36 +01:00
}
2017-03-05 23:19:36 +01:00
[Fact]
public async Task Cancel_order_bad_request()
{
//Arrange
2017-06-12 13:52:23 +02:00
_mediatorMock.Setup(x => x.Send(It.IsAny<IdentifiedCommand<CancelOrderCommand, bool>>(), default(CancellationToken)))
.Returns(Task.FromResult(true));
2017-03-05 23:19:36 +01:00
//Act
var orderController = new OrdersController(_mediatorMock.Object, _orderQueriesMock.Object, _identityServiceMock.Object);
var actionResult = await orderController.CancelOrder(new CancelOrderCommand(1), String.Empty) as BadRequestResult;
2017-03-05 23:19:36 +01:00
//Assert
Assert.Equal(actionResult.StatusCode, (int)System.Net.HttpStatusCode.BadRequest);
}
[Fact]
public async Task Ship_order_with_requestId_success()
2017-03-05 23:19:36 +01:00
{
//Arrange
_mediatorMock.Setup(x => x.Send(It.IsAny<IdentifiedCommand<CreateOrderCommand, bool>>(), default(System.Threading.CancellationToken)))
2017-03-05 23:19:36 +01:00
.Returns(Task.FromResult(true));
//Act
var orderController = new OrdersController(_mediatorMock.Object, _orderQueriesMock.Object, _identityServiceMock.Object);
var actionResult = await orderController.ShipOrder(new ShipOrderCommand(1), Guid.NewGuid().ToString()) as OkResult;
2017-03-05 23:19:36 +01:00
//Assert
Assert.Equal(actionResult.StatusCode, (int)System.Net.HttpStatusCode.OK);
}
[Fact]
public async Task Ship_order_bad_request()
2017-03-05 23:19:36 +01:00
{
//Arrange
_mediatorMock.Setup(x => x.Send(It.IsAny<IdentifiedCommand<CreateOrderCommand, bool>>(), default(System.Threading.CancellationToken)))
2017-03-05 23:19:36 +01:00
.Returns(Task.FromResult(true));
//Act
var orderController = new OrdersController(_mediatorMock.Object, _orderQueriesMock.Object, _identityServiceMock.Object);
var actionResult = await orderController.ShipOrder(new ShipOrderCommand(1), String.Empty) as BadRequestResult;
2017-03-05 23:19:36 +01:00
//Assert
Assert.Equal(actionResult.StatusCode, (int)System.Net.HttpStatusCode.BadRequest);
}
[Fact]
public async Task Get_orders_success()
{
//Arrange
var fakeDynamicResult = Enumerable.Empty<object>();
2017-04-17 12:28:12 +02:00
_orderQueriesMock.Setup(x => x.GetOrdersAsync())
2017-03-05 23:19:36 +01:00
.Returns(Task.FromResult(fakeDynamicResult));
//Act
var orderController = new OrdersController(_mediatorMock.Object, _orderQueriesMock.Object, _identityServiceMock.Object);
var actionResult = await orderController.GetOrders() as OkObjectResult;
//Assert
Assert.Equal(actionResult.StatusCode, (int)System.Net.HttpStatusCode.OK);
}
[Fact]
public async Task Get_order_success()
{
//Arrange
var fakeOrderId = 123;
var fakeDynamicResult = new Object();
2017-04-17 12:28:12 +02:00
_orderQueriesMock.Setup(x => x.GetOrderAsync(It.IsAny<int>()))
2017-03-05 23:19:36 +01:00
.Returns(Task.FromResult(fakeDynamicResult));
//Act
var orderController = new OrdersController(_mediatorMock.Object, _orderQueriesMock.Object, _identityServiceMock.Object);
var actionResult = await orderController.GetOrder(fakeOrderId) as OkObjectResult;
//Assert
Assert.Equal(actionResult.StatusCode, (int)System.Net.HttpStatusCode.OK);
}
[Fact]
public async Task Get_cardTypes_success()
{
//Arrange
var fakeDynamicResult = Enumerable.Empty<object>();
2017-04-17 12:28:12 +02:00
_orderQueriesMock.Setup(x => x.GetCardTypesAsync())
2017-03-05 23:19:36 +01:00
.Returns(Task.FromResult(fakeDynamicResult));
//Act
var orderController = new OrdersController(_mediatorMock.Object, _orderQueriesMock.Object, _identityServiceMock.Object);
var actionResult = await orderController.GetCardTypes() as OkObjectResult;
//Assert
Assert.Equal(actionResult.StatusCode, (int)System.Net.HttpStatusCode.OK);
}
}
}