Exemple #1
0
        public async Task AddToBasket_ReturnsLaptopConfigurationList()
        {
            // Arrange
            var mockService = new Mock <ILaptopService>();

            mockService.Setup(s => s.AddToBasket(It.IsAny <BasketItem>()))
            .ReturnsAsync(MockDataProvider.GetBasket());
            var controller = new LaptopShopController(mockService.Object);

            // Act
            var result = await controller.AddToBasket(It.IsAny <BasketItem>());

            // Assert
            var okResult    = Assert.IsType <OkObjectResult>(result);
            var returnValue = Assert.IsType <BasketViewModel>(okResult.Value);

            Assert.NotNull(returnValue);
            var basketItems = Assert.IsType <List <BasketItems> >(returnValue.BasketItems);
            var basketItem  = basketItems.FirstOrDefault();

            Assert.NotNull(basketItem);
            Assert.NotNull(basketItem.Laptop);
            Assert.Equal("Dell", basketItem.Laptop.Name);

            var configurations = Assert.IsType <List <LaptopConfiguration> >(basketItem.LaptopConfigurations);
            var configuration  = configurations.FirstOrDefault();

            Assert.NotNull(configuration);
            Assert.Equal("8GB", configuration.Value);
        }