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.

50 lines
1.3 KiB

  1. using System;
  2. using Microsoft.VisualStudio.TestTools.UnitTesting;
  3. using Xunit;
  4. using System.Threading.Tasks;
  5. using Moq;
  6. using MediatR;
  7. namespace UnitTests
  8. {
  9. public class OrderControllerTest
  10. {
  11. private readonly Mock<IMediator> _mock;
  12. public OrderControllerTest()
  13. {
  14. //config mock;
  15. _mock = new Mock<IMediator>();
  16. }
  17. [Fact]
  18. public async Task AddOrder_ReturnsBadRequestResult_WhenPersitenceOperationFails()
  19. {
  20. //Add order:
  21. var orderRequest = new object() as IAsyncRequest<bool>;
  22. _mock.Setup(mediator => mediator.SendAsync(orderRequest))
  23. .Returns(Task.FromResult(false));
  24. // Arrange
  25. var controller = new OrdersController(mockRepo.Object);
  26. controller.ModelState.AddModelError("SessionName", "Required");
  27. var newSession = new HomeController.NewSessionModel();
  28. // Act
  29. var result = await controller.Index(newSession);
  30. // Assert
  31. var badRequestResult = Assert.IsType<BadRequestObjectResult>(result);
  32. Assert.IsType<SerializableError>(badRequestResult.Value);
  33. }
  34. // Implement Fake method for mock.
  35. private MediatorMockForAddOrder()
  36. {
  37. }
  38. }
  39. }