public async Task CreateWineAsync_WhenCalled_CreatesAWineDtoToReturnToClient() { // Arrange IWineRepository wineService = GetWineServiceStub(); IWinePurchaseRepository winePurchaseService = GetWinePurchaseServiceStub(); var response = Substitute.For <HttpResponse>(); var httpContext = Substitute.For <HttpContext>(); httpContext.Items.Add("response", response); var factory = new LoggerFactory(); var logger = factory.CreateLogger <WineController>(); _controller = new WineController(logger, wineService, winePurchaseService, _mapper); _controller.ControllerContext.HttpContext = httpContext; _controller.Url = Substitute.For <IUrlHelper>(); // Act var wineForCreationDto = new WineForCreationDto() { Name = "Red Wine", Vineyard = "My Vineyard" }; var actionResult = await _controller.CreateWineAsync(wineForCreationDto).ConfigureAwait(false); // Assert var result = Assert.IsType <CreatedAtRouteResult>(actionResult.Result); var wineDtoReturnedToClient = Assert.IsType <WineDto>(result.Value); Assert.Equal("Red Wine", wineDtoReturnedToClient.Name); }
/// <summary> /// The main WinePurchaseController constructor with parameters necessary for dependency injection /// </summary> /// <param name="logger">The ILogger type of WinePurchaseController for dependency injection</param> /// <param name="service">The IWinePurchaseService for dependency injection</param> /// <param name="wineService">The IWineService for dependency injection</param> /// <param name="mapper">Depenpency injection for AutoMapper</param> public WinePurchaseController(ILogger <WinePurchaseController> logger, IWinePurchaseRepository service, IWineRepository wineService, IMapper mapper) { _logger = logger; _service = service; _wineService = wineService; _mapper = mapper; }
/// <summary> /// The main WineController constructor with parameters necessary for dependency injection /// </summary> /// <param name="logger">The ILogger type of VendorController for dependency injection</param> /// <param name="service">The IWineRepository for dependency injection</param> /// <param name="winePurchaseService">The IWinePurchaseRepository for dependency injection</param> /// <param name="mapper">Dependency injection for AutoMapper</param> public WineController(ILogger <WineController> logger, IWineRepository service, IWinePurchaseRepository winePurchaseService, IMapper mapper) { _logger = logger ?? throw new ArgumentNullException(nameof(logger)); _service = service ?? throw new ArgumentNullException(nameof(service)); _winePurchaseService = winePurchaseService ?? throw new ArgumentNullException(nameof(winePurchaseService)); _mapper = mapper ?? throw new ArgumentNullException(nameof(mapper)); }
public async Task GetWines_WhenCalled_ReturnsAllItems() { // Arrange var wineList = new List <Wine>() { new Wine() { Id = "5da3ab6639977d41082450c2", Name = "Mind Blowing Merlot", Notes = "Just goes great with everything.", Year = 2008 }, new Wine() { Id = "5da3ad0ef351f857309400ff", Name = "Marvelous Malbec", Notes = "A wine for a quiet evening.", Year = 2011 }, new Wine() { Id = "5da3b1d4f351f85730940101", Name = "Shining Shiraz", Notes = "This will get the party going.", Year = 2017 } }; IWineRepository wineService = GetWineServiceStub(wineList); IWinePurchaseRepository winePurchaseService = GetWinePurchaseServiceStub(); var response = Substitute.For <HttpResponse>(); var httpContext = Substitute.For <HttpContext>(); httpContext.Items.Add("response", response); var factory = new LoggerFactory(); var logger = factory.CreateLogger <WineController>(); _controller = new WineController(logger, wineService, winePurchaseService, _mapper); _controller.ControllerContext.HttpContext = httpContext; _controller.Url = Substitute.For <IUrlHelper>(); // Act var actionResult = await _controller.GetWinesAsync();; // Assert var result = Assert.IsType <OkObjectResult>(actionResult.Result); var wines = Assert.IsType <List <WineDto> >(result.Value); Assert.Equal(3, wines.Count); }
public async Task GetWines_WhenCalled_ReturnsOkResult() { // Arrange IWineRepository wineService = GetWineServiceStub(); IWinePurchaseRepository winePurchaseService = GetWinePurchaseServiceStub(); var response = Substitute.For <HttpResponse>(); var httpContext = Substitute.For <HttpContext>(); httpContext.Items.Add("response", response); var factory = new LoggerFactory(); var logger = factory.CreateLogger <WineController>(); _controller = new WineController(logger, wineService, winePurchaseService, _mapper); _controller.ControllerContext.HttpContext = httpContext; _controller.Url = Substitute.For <IUrlHelper>(); // Act var actionResult = await _controller.GetWinesAsync(); // Assert Assert.IsType <OkObjectResult>(actionResult.Result); }