public void A_ProductService_Should_Retrieve_From_The_Cache_The_Second_Time_The_Method_Is_Called_With_The_Same_Argumengts()
        {
            MockCacheStorage      mockCacheStorage      = new MockCacheStorage();
            StubProductRepository stubProductRepository = new StubProductRepository();
            int            categoryId     = 1;
            ProductService productService = new ProductService(stubProductRepository, mockCacheStorage);

            productService.GetAllProductsIn(categoryId);
            Assert.AreEqual(0, mockCacheStorage.RetrievedFromCacheCount());

            productService.GetAllProductsIn(categoryId);
            Assert.AreEqual(1, mockCacheStorage.RetrievedFromCacheCount());
        }
        private IProductRepository GetProductRepository()
        {
            IProductRepository productRepository = new StubProductRepository();
            string             PRODUCT_DESC      = "IPad";
            string             PRODUCT_FACTORY   = "Apple";
            double             PRODUCT_PRICE     = 23.50;
            string             PRODUCT_NAME      = "Tablet";
            Product            product           = new Product(PRODUCT_ID, PRODUCT_NAME, PRODUCT_DESC, PRODUCT_PRICE, PRODUCT_FACTORY);

            product.AvailableStock = 100;
            productRepository.AddEntity(product);
            return(productRepository);
        }
 public CategoryServiceTest()
 {
     string PRODUCT_DESC = "IPad";
     double PRODUCT_PRICE = 23.50;
     string PRODUCT_FACTORY = "Apple";
     string PRODUCT_NAME = "Tablet";
     ICategoryRepository categoryRepository = new StubCategoryRepository();
     IProductRepository productRepository = new StubProductRepository();
     Product product = new Product(PRODUCT_ID, PRODUCT_NAME, PRODUCT_DESC, PRODUCT_PRICE, PRODUCT_FACTORY);
     productRepository.AddEntity(product);
     request = new CategoryRequest();
     request.CategoryId = "vest.";
     request.Description = "Vestimenta";
     request.ProductId = PRODUCT_ID;
     ICategoryManager categoryManager = new CategoryManager(categoryRepository, productRepository);
     categoryService = new CategoryServiceImpl(categoryManager, new CategoryBuilderDTO(new FullProductDTOBuilder(new FieldDTOBuilder(),new ImageDTOBuilder())));
 }
示例#4
0
        public CartServiceTest()
        {
            ICartRepository    cartRepository    = new StubCartRepository();
            IProductRepository productRepository = new StubProductRepository();
            IUserRepository    userRepository    = new StubUserRepository();

            request           = new CartRequest();
            request.UserId    = USER_ID;
            request.ProductId = PRODUCT_ID;
            request.Quantity  = 1;
            AddUserOnRepository(userRepository);
            AddProductOnRepository(productRepository);
            IPointSystemConfigurationRepository configurationRepository = new StubPointSystemConfigurationRepository();

            configurationRepository.AddEntity(new PointSystemConfiguration()
            {
                PropertyName = ESportUtils.LOYALTY_PROPERTY_NAME, PropertyValue = 100
            });
            ICartManager cartManager = new CartManager(cartRepository, new StubCartItemRepository(), productRepository, userRepository, configurationRepository);

            cartService = new CartServiceImpl(cartManager, new SimpleCartDTOBuilder(), new PendingReviewDTOBuilder());
        }
示例#5
0
        public void GetFeaturedProductsWillReturnCorrectProductsForNonPreferredUser()
        {
            var user = new StubUserContext();

            var expectedProducts = new[]
            {
                new { Name = "Olives", UnitPrice = 24.5m },
                new { Name = "Mushrooms", UnitPrice = 14.2m },
            };

            var featuredProducts = new[]
            {
                new Product {
                    Name = "Olives", UnitPrice = 24.5m
                },
                new Product {
                    Name = "Mushrooms", UnitPrice = 14.2m
                }
            };

            // Arrange
            var repository = new StubProductRepository {
                FeaturedProducts = featuredProducts
            };

            var sut = new ProductService(repository, user);

            // Act
            var actualProducts =
                from p in sut.GetFeaturedProducts()
                select new { p.Name, p.UnitPrice };

            // Assert
            Assert.True(
                condition: expectedProducts.SequenceEqual(actualProducts),
                userMessage: string.Join(", ", actualProducts.Select(p => p.ToString())));
        }
示例#6
0
        public void GetFeaturedProductsWillReturnCorrectProduct()
        {
            // Arrange
            var expected = new { Name = "Olives", UnitPrice = 24.5m };

            var repository = new StubProductRepository
            {
                FeaturedProducts = new[]
                {
                    new Product {
                        Name = expected.Name, UnitPrice = expected.UnitPrice
                    }
                }
            };

            var sut = new ProductService(repository, new StubUserContext());

            // Act
            var products = sut.GetFeaturedProducts();
            var result   = products.Single();

            // Assert
            Assert.Equal(expected, actual: new { result.Name, result.UnitPrice });
        }