Пример #1
0
        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);
        }
Пример #2
0
 /// <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;
 }
Пример #3
0
        /// <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));
        }
Пример #4
0
        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);
        }
Пример #5
0
        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);
        }