You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

108 lines
4.2 KiB

  1. using MediatR;
  2. using Microsoft.AspNetCore.Mvc;
  3. using Microsoft.eShopOnContainers.Services.Ordering.API.Application.Commands;
  4. using Microsoft.eShopOnContainers.Services.Ordering.API.Application.Queries;
  5. using Microsoft.eShopOnContainers.Services.Ordering.API.Controllers;
  6. using Microsoft.eShopOnContainers.Services.Ordering.API.Infrastructure.Services;
  7. using Moq;
  8. using System;
  9. using System.Linq;
  10. using System.Threading.Tasks;
  11. using Xunit;
  12. namespace UnitTest.Ordering.Application
  13. {
  14. public class OrdersWebApiTest
  15. {
  16. private readonly Mock<IMediator> _mediatorMock;
  17. private readonly Mock<IOrderQueries> _orderQueriesMock;
  18. private readonly Mock<IIdentityService> _identityServiceMock;
  19. public OrdersWebApiTest()
  20. {
  21. _mediatorMock = new Mock<IMediator>();
  22. _orderQueriesMock = new Mock<IOrderQueries>();
  23. _identityServiceMock = new Mock<IIdentityService>();
  24. }
  25. [Fact]
  26. public async Task Create_order_with_requestId_success()
  27. {
  28. //Arrange
  29. _mediatorMock.Setup(x => x.Send(It.IsAny<IdentifiedCommand<CreateOrderCommand, bool>>(), default(System.Threading.CancellationToken)))
  30. .Returns(Task.FromResult(true));
  31. //Act
  32. var orderController = new OrdersController(_mediatorMock.Object, _orderQueriesMock.Object, _identityServiceMock.Object);
  33. var actionResult = await orderController.CreateOrder(new CreateOrderCommand(), Guid.NewGuid().ToString()) as OkResult;
  34. //Assert
  35. Assert.Equal(actionResult.StatusCode, (int)System.Net.HttpStatusCode.OK);
  36. }
  37. [Fact]
  38. public async Task Create_order_bad_request()
  39. {
  40. //Arrange
  41. _mediatorMock.Setup(x => x.Send(It.IsAny<IdentifiedCommand<CreateOrderCommand, bool>>(), default(System.Threading.CancellationToken)))
  42. .Returns(Task.FromResult(true));
  43. //Act
  44. var orderController = new OrdersController(_mediatorMock.Object, _orderQueriesMock.Object, _identityServiceMock.Object);
  45. var actionResult = await orderController.CreateOrder(new CreateOrderCommand(), String.Empty) as BadRequestResult;
  46. //Assert
  47. Assert.Equal(actionResult.StatusCode, (int)System.Net.HttpStatusCode.BadRequest);
  48. }
  49. [Fact]
  50. public async Task Get_orders_success()
  51. {
  52. //Arrange
  53. var fakeDynamicResult = Enumerable.Empty<object>();
  54. _orderQueriesMock.Setup(x => x.GetOrdersAsync())
  55. .Returns(Task.FromResult(fakeDynamicResult));
  56. //Act
  57. var orderController = new OrdersController(_mediatorMock.Object, _orderQueriesMock.Object, _identityServiceMock.Object);
  58. var actionResult = await orderController.GetOrders() as OkObjectResult;
  59. //Assert
  60. Assert.Equal(actionResult.StatusCode, (int)System.Net.HttpStatusCode.OK);
  61. }
  62. [Fact]
  63. public async Task Get_order_success()
  64. {
  65. //Arrange
  66. var fakeOrderId = 123;
  67. var fakeDynamicResult = new Object();
  68. _orderQueriesMock.Setup(x => x.GetOrderAsync(It.IsAny<int>()))
  69. .Returns(Task.FromResult(fakeDynamicResult));
  70. //Act
  71. var orderController = new OrdersController(_mediatorMock.Object, _orderQueriesMock.Object, _identityServiceMock.Object);
  72. var actionResult = await orderController.GetOrder(fakeOrderId) as OkObjectResult;
  73. //Assert
  74. Assert.Equal(actionResult.StatusCode, (int)System.Net.HttpStatusCode.OK);
  75. }
  76. [Fact]
  77. public async Task Get_cardTypes_success()
  78. {
  79. //Arrange
  80. var fakeDynamicResult = Enumerable.Empty<object>();
  81. _orderQueriesMock.Setup(x => x.GetCardTypesAsync())
  82. .Returns(Task.FromResult(fakeDynamicResult));
  83. //Act
  84. var orderController = new OrdersController(_mediatorMock.Object, _orderQueriesMock.Object, _identityServiceMock.Object);
  85. var actionResult = await orderController.GetCardTypes() as OkObjectResult;
  86. //Assert
  87. Assert.Equal(actionResult.StatusCode, (int)System.Net.HttpStatusCode.OK);
  88. }
  89. }
  90. }