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.

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