コード例 #1
0
        public async Task AddToBasket_ReturnsLaptopConfigurationList()
        {
            // Arrange
            var mockRepo = new Mock <ILaptopRepository>();

            mockRepo.Setup(s => s.GetLaptopList())
            .ReturnsAsync(MockDataProvider.GetMockLaptopList());
            mockRepo.Setup(s => s.GetConfigurationList())
            .ReturnsAsync(MockDataProvider.GetMockLaptopConfigurationList());
            mockRepo.Setup(s => s.AddToBasket(It.IsAny <BasketItem>()))
            .ReturnsAsync(MockDataProvider.GetBasketItems());
            var service = new LaptopService(mockRepo.Object);

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

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

            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((decimal)45.67, configuration.Price);
        }
コード例 #2
0
        public async Task GetConfigurationList_ReturnsLaptopList()
        {
            // Arrange
            await using var context = new LaptopShopContext(_options);
            await context.LaptopConfigurations.AddRangeAsync(MockDataProvider.GetMockLaptopConfigurationList());

            await context.SaveChangesAsync();

            // Act
            var result = await new LaptopRepository(context).GetConfigurationList();

            // Assert
            var returnValue   = Assert.IsType <LaptopConfiguration[]>(result);
            var configuration = returnValue.FirstOrDefault();

            Assert.NotNull(configuration);
            Assert.Equal("Ram", configuration.Name);
            Assert.Equal("8GB", configuration.Value);
        }
コード例 #3
0
        public async Task GetConfigurationList_ReturnsLaptopConfigurationList()
        {
            var mockRepo = new Mock <ILaptopRepository>();

            mockRepo.Setup(s => s.GetConfigurationList())
            .ReturnsAsync(MockDataProvider.GetMockLaptopConfigurationList());
            var service = new LaptopService(mockRepo.Object);

            // Act
            var result = await service.GetConfigurationList();

            // Assert
            var returnValue   = Assert.IsType <LaptopConfiguration[]>(result);
            var configuration = returnValue.FirstOrDefault();

            Assert.NotNull(configuration);
            Assert.Equal("Ram", configuration.Name);
            Assert.Equal("8GB", configuration.Value);
        }
コード例 #4
0
        public async Task ConfigurationList_ReturnsLaptopConfigurationList()
        {
            // Arrange
            var mockService = new Mock <ILaptopService>();

            mockService.Setup(s => s.GetConfigurationList())
            .ReturnsAsync(MockDataProvider.GetMockLaptopConfigurationList());
            var controller = new LaptopShopController(mockService.Object);

            // Act
            var result = await controller.ConfigurationList();

            // Assert
            var okResult      = Assert.IsType <OkObjectResult>(result);
            var returnValue   = Assert.IsType <LaptopConfiguration[]>(okResult.Value);
            var configuration = returnValue.FirstOrDefault();

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