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.

140 lines
5.5 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 Ordering.API.Application.Commands;
  9. using System;
  10. using System.Linq;
  11. using System.Threading.Tasks;
  12. using Xunit;
  13. namespace UnitTest.Ordering.Application
  14. {
  15. public class OrdersWebApiTest
  16. {
  17. private readonly Mock<IMediator> _mediatorMock;
  18. private readonly Mock<IOrderQueries> _orderQueriesMock;
  19. private readonly Mock<IIdentityService> _identityServiceMock;
  20. public OrdersWebApiTest()
  21. {
  22. _mediatorMock = new Mock<IMediator>();
  23. _orderQueriesMock = new Mock<IOrderQueries>();
  24. _identityServiceMock = new Mock<IIdentityService>();
  25. }
  26. [Fact]
  27. public async Task Create_order_with_requestId_success()
  28. {
  29. //Arrange
  30. _mediatorMock.Setup(x => x.SendAsync(It.IsAny<IdentifiedCommand<CancelOrderCommand, bool>>()))
  31. .Returns(Task.FromResult(true));
  32. //Act
  33. var orderController = new OrdersController(_mediatorMock.Object, _orderQueriesMock.Object, _identityServiceMock.Object);
  34. var actionResult = await orderController.CancelOrder(new CancelOrderCommand(1), Guid.NewGuid().ToString()) as OkResult;
  35. //Assert
  36. Assert.Equal(actionResult.StatusCode, (int)System.Net.HttpStatusCode.OK);
  37. }
  38. [Fact]
  39. public async Task Cancel_order_bad_request()
  40. {
  41. //Arrange
  42. _mediatorMock.Setup(x => x.SendAsync(It.IsAny<IdentifiedCommand<CancelOrderCommand, bool>>()))
  43. .Returns(Task.FromResult(true));
  44. //Act
  45. var orderController = new OrdersController(_mediatorMock.Object, _orderQueriesMock.Object, _identityServiceMock.Object);
  46. var actionResult = await orderController.CancelOrder(new CancelOrderCommand(1), String.Empty) as BadRequestResult;
  47. //Assert
  48. Assert.Equal(actionResult.StatusCode, (int)System.Net.HttpStatusCode.BadRequest);
  49. }
  50. [Fact]
  51. public async Task Ship_order_with_requestId_success()
  52. {
  53. //Arrange
  54. _mediatorMock.Setup(x => x.SendAsync(It.IsAny<IdentifiedCommand<ShipOrderCommand, bool>>()))
  55. .Returns(Task.FromResult(true));
  56. //Act
  57. var orderController = new OrdersController(_mediatorMock.Object, _orderQueriesMock.Object, _identityServiceMock.Object);
  58. var actionResult = await orderController.ShipOrder(new ShipOrderCommand(1), Guid.NewGuid().ToString()) as OkResult;
  59. //Assert
  60. Assert.Equal(actionResult.StatusCode, (int)System.Net.HttpStatusCode.OK);
  61. }
  62. [Fact]
  63. public async Task Ship_order_bad_request()
  64. {
  65. //Arrange
  66. _mediatorMock.Setup(x => x.SendAsync(It.IsAny<IdentifiedCommand<ShipOrderCommand, bool>>()))
  67. .Returns(Task.FromResult(true));
  68. //Act
  69. var orderController = new OrdersController(_mediatorMock.Object, _orderQueriesMock.Object, _identityServiceMock.Object);
  70. var actionResult = await orderController.ShipOrder(new ShipOrderCommand(1), String.Empty) as BadRequestResult;
  71. //Assert
  72. Assert.Equal(actionResult.StatusCode, (int)System.Net.HttpStatusCode.BadRequest);
  73. }
  74. [Fact]
  75. public async Task Get_orders_success()
  76. {
  77. //Arrange
  78. var fakeDynamicResult = Enumerable.Empty<object>();
  79. _orderQueriesMock.Setup(x => x.GetOrdersAsync())
  80. .Returns(Task.FromResult(fakeDynamicResult));
  81. //Act
  82. var orderController = new OrdersController(_mediatorMock.Object, _orderQueriesMock.Object, _identityServiceMock.Object);
  83. var actionResult = await orderController.GetOrders() as OkObjectResult;
  84. //Assert
  85. Assert.Equal(actionResult.StatusCode, (int)System.Net.HttpStatusCode.OK);
  86. }
  87. [Fact]
  88. public async Task Get_order_success()
  89. {
  90. //Arrange
  91. var fakeOrderId = 123;
  92. var fakeDynamicResult = new Object();
  93. _orderQueriesMock.Setup(x => x.GetOrderAsync(It.IsAny<int>()))
  94. .Returns(Task.FromResult(fakeDynamicResult));
  95. //Act
  96. var orderController = new OrdersController(_mediatorMock.Object, _orderQueriesMock.Object, _identityServiceMock.Object);
  97. var actionResult = await orderController.GetOrder(fakeOrderId) as OkObjectResult;
  98. //Assert
  99. Assert.Equal(actionResult.StatusCode, (int)System.Net.HttpStatusCode.OK);
  100. }
  101. [Fact]
  102. public async Task Get_cardTypes_success()
  103. {
  104. //Arrange
  105. var fakeDynamicResult = Enumerable.Empty<object>();
  106. _orderQueriesMock.Setup(x => x.GetCardTypesAsync())
  107. .Returns(Task.FromResult(fakeDynamicResult));
  108. //Act
  109. var orderController = new OrdersController(_mediatorMock.Object, _orderQueriesMock.Object, _identityServiceMock.Object);
  110. var actionResult = await orderController.GetCardTypes() as OkObjectResult;
  111. //Assert
  112. Assert.Equal(actionResult.StatusCode, (int)System.Net.HttpStatusCode.OK);
  113. }
  114. }
  115. }