using System; using Microsoft.VisualStudio.TestTools.UnitTesting; using Xunit; using System.Threading.Tasks; using Moq; using MediatR; namespace UnitTests { public class OrderControllerTest { private readonly Mock _mock; public OrderControllerTest() { //config mock; _mock = new Mock(); } [Fact] public async Task AddOrder_ReturnsBadRequestResult_WhenPersitenceOperationFails() { //Add order: var orderRequest = new object() as IAsyncRequest; _mock.Setup(mediator => mediator.SendAsync(orderRequest)) .Returns(Task.FromResult(false)); // Arrange var controller = new OrdersController(mockRepo.Object); controller.ModelState.AddModelError("SessionName", "Required"); var newSession = new HomeController.NewSessionModel(); // Act var result = await controller.Index(newSession); // Assert var badRequestResult = Assert.IsType(result); Assert.IsType(badRequestResult.Value); } // Implement Fake method for mock. private MediatorMockForAddOrder() { } } }