public JsonResult GetAllProducts(Currency?currency)
        {
            ProductDataConsolidator productDataConsolidator = new ProductDataConsolidator();
            var products = productDataConsolidator.GetAll(currency);

            return(Json(new { Success = true, products = JsonConvert.SerializeObject(products) }, JsonRequestBehavior.AllowGet));
        }
Пример #2
0
 public void TestMethod1()
 {
     ProductDataConsolidator instance = new ProductDataConsolidator();
     var plist  = instance.Get(State.NZ);
     var plist2 = instance.Get(State.US);
     var plist3 = instance.Get(State.EURO);
 }
Пример #3
0
 public static void Main(string[] args)
 {
     Console.WriteLine("NZD ===============================================");
     foreach (var product in ProductDataConsolidator.Get())
     {
         Console.WriteLine(product.Name);
         Console.WriteLine(product.Type);
         Console.WriteLine(product.Price);
     }
     Console.WriteLine("===============================================");
     Console.WriteLine("USD ===============================================");
     foreach (var product in ProductDataConsolidator.GetInUSDollars())
     {
         Console.WriteLine(product.Name);
         Console.WriteLine(product.Type);
         Console.WriteLine(product.Price);
     }
     Console.WriteLine("===============================================");
     Console.WriteLine("EUR ===============================================");
     foreach (var product in ProductDataConsolidator.GetInEuros())
     {
         Console.WriteLine(product.Name);
         Console.WriteLine(product.Type);
         Console.WriteLine(product.Price);
     }
     Console.WriteLine("===============================================");
 }
Пример #4
0
        public void GetProducts_Search_null()
        {
            SearchCriteria searchCriteria = null;

            var productConsolidator = new ProductDataConsolidator();

            Assert.ThrowsException <ArgumentNullException>(() => productConsolidator.Get(searchCriteria));
        }
Пример #5
0
        public void GetProducts_Search_LawnMower_and_name()
        {
            SearchCriteria searchCriteria = new SearchCriteria {
                productType = ProductType.Lawnmover,
                name        = "Fisher"
            };

            var productConsolidator = new ProductDataConsolidator();
            var result = productConsolidator.Get(searchCriteria);

            Assert.IsNotNull(result);
        }
Пример #6
0
        public void GetProducts_Search_name_and_producttype_null()
        {
            SearchCriteria searchCriteria = new SearchCriteria
            {
                productType = null,
                name        = "Fisher"
            };

            var productConsolidator = new ProductDataConsolidator();
            var result = productConsolidator.Get(searchCriteria);

            Assert.IsNotNull(result);
        }
Пример #7
0
        public void GetAllProducts(Currency?currency)
        {
            string expected1 = ProductType.Lawnmover.ToString();
            string expected2 = ProductType.PhoneCase.ToString();
            string expected3 = ProductType.TShirt.ToString();

            var productConsolidator = new ProductDataConsolidator();
            var result = productConsolidator.GetAll(currency);

            Assert.IsNotNull(result);
            Assert.IsNotNull(result.Where(x => x.Type.Equals(expected1)).Select(x => x.Type).FirstOrDefault());
            Assert.IsNotNull(result.Where(x => x.Type.Equals(expected2)).Select(x => x.Type).FirstOrDefault());
            Assert.IsNotNull(result.Where(x => x.Type.Equals(expected3)).Select(x => x.Type).FirstOrDefault());
        }
Пример #8
0
        public void GetProductsAndConvertCurrencyTest()
        {
            List <Product> expectedProducts = new List <Product>();
            Mock <IReadOnlyRepository <Lawnmower> > mockLawnmowerRepo = new Mock <IReadOnlyRepository <Lawnmower> >();
            Mock <IReadOnlyRepository <TShirt> >    mockTShirtRepo    = new Mock <IReadOnlyRepository <TShirt> >();
            Mock <IReadOnlyRepository <PhoneCase> > mockPhoneCaseRepo = new Mock <IReadOnlyRepository <PhoneCase> >();

            mockLawnmowerRepo.Setup(ur => ur.GetAll()).Returns(lawnmowerMockedGetAll());

            ProductDataConsolidator consolidator   = new ProductDataConsolidator(mockLawnmowerRepo.Object, mockTShirtRepo.Object, mockPhoneCaseRepo.Object);
            List <Product>          actualProducts = consolidator.GetProductsUsingForeignCurrency(CurrencyCode.EUR);

            Assert.AreEqual(_lawnmowerPrice * 0.67, actualProducts.First().Price);
        }
        public void GetAllProductsInEuros()
        {
            var productDataBuilderMock = new Mock<IProductDataBuilder>();
            var data = PopulateData();
            productDataBuilderMock.Setup(x => x.GetProductList())
                .Returns(data);

            var consolidator = new ProductDataConsolidator(productDataBuilderMock.Object);

            var allProducts = consolidator.GetInEuros();
            Assert.AreEqual(3, allProducts.Count);
            productDataBuilderMock.Verify(x => x.GetProductList(), Times.Once);
            CheckAsserts(allProducts, data, .67);
        }
Пример #10
0
        public void GetAllProductsInEuros()
        {
            var productDataBuilderMock = new Mock <IProductDataBuilder>();
            var data = PopulateData();

            productDataBuilderMock.Setup(x => x.GetProductList())
            .Returns(data);

            var consolidator = new ProductDataConsolidator(productDataBuilderMock.Object);

            var allProducts = consolidator.GetInEuros();

            Assert.AreEqual(3, allProducts.Count);
            productDataBuilderMock.Verify(x => x.GetProductList(), Times.Once);
            CheckAsserts(allProducts, data, .67);
        }
Пример #11
0
        public void GetProductsTest()
        {
            List <Product> expectedProducts = new List <Product>();
            Mock <IReadOnlyRepository <Lawnmower> > mockLawnmowerRepo = new Mock <IReadOnlyRepository <Lawnmower> >();
            Mock <IReadOnlyRepository <TShirt> >    mockTShirtRepo    = new Mock <IReadOnlyRepository <TShirt> >();
            Mock <IReadOnlyRepository <PhoneCase> > mockPhoneCaseRepo = new Mock <IReadOnlyRepository <PhoneCase> >();

            mockLawnmowerRepo.Setup(ur => ur.GetAll()).Returns(lawnmowerMockedGetAll());
            mockTShirtRepo.Setup(ur => ur.GetAll()).Returns(tShirtMockedGetAll());
            mockPhoneCaseRepo.Setup(ur => ur.GetAll()).Returns(phoneCaseMockedGetAll());
            ProductDataConsolidator consolidator   = new ProductDataConsolidator(mockLawnmowerRepo.Object, mockTShirtRepo.Object, mockPhoneCaseRepo.Object);
            List <Product>          actualProducts = consolidator.GetProducts();

            Assert.IsTrue(actualProducts.Any(x => x.Id == _lawnmowerGuid && x.Name == _lawnmowerName && x.Price == _lawnmowerPrice && x.Type == "Lawnmower"));
            Assert.IsTrue(actualProducts.Any(x => x.Id == _tShirtGuid && x.Name == _tShirtName && x.Price == _tShirtPrice && x.Type == "T-Shirt"));
            Assert.IsTrue(actualProducts.Any(x => x.Id == _phoneCaseGuid && x.Name == _phoneCaseName && x.Price == _phoneCasePrice && x.Type == "Phone Case"));
            Assert.AreEqual(actualProducts.Count, 3);
        }
Пример #12
0
        public void TestRate()
        {
            var consolidator = new ProductDataConsolidator();

            var l = new LawnmowerRepository();
            var p = new PhoneCaseRepository();
            var t = new TShirtRepository();

            var lawnmowers = l.GetAll();
            var phoneCases = p.GetAll();
            var tshirts    = t.GetAll();

            consolidator.Consolidate(lawnmowers);
            consolidator.Consolidate(phoneCases);
            consolidator.Consolidate(tshirts);

            var products = consolidator.GetAll();

            var rate = 0.67;

            consolidator.Rate = 0.67;

            var i = 0;

            foreach (var lawnmower in lawnmowers)
            {
                AssertEqual(products[i++], lawnmower, rate);
            }


            foreach (var phoneCase in phoneCases)
            {
                AssertEqual(products[i++], phoneCase, rate);
            }


            foreach (var tshirt in tshirts)
            {
                AssertEqual(products[i++], tshirt, rate);
            }
        }
Пример #13
0
        public void GetAll()
        {
            var lawnmowerRepoMock = GetRepositoryMock(
                new[]
            {
                new Lawnmower
                {
                    Id             = Guid.NewGuid(),
                    Name           = "RideOn Lawnmower1",
                    Price          = 1.0,
                    FuelEfficiency = "efficient",
                    IsVehicle      = true
                }
            }
                );
            var phoneCaseRepoMock = GetRepositoryMock(
                new[]
            {
                new PhoneCase
                {
                    Id          = Guid.NewGuid(),
                    Name        = "Fancy",
                    Price       = 20.0,
                    Colour      = "red gofaster stripes",
                    Material    = "diamond",
                    TargetPhone = "All your phone are belong to us!"
                },
                new PhoneCase
                {
                    Id          = Guid.NewGuid(),
                    Name        = "Boring",
                    Price       = 0.11,
                    Colour      = "brown",
                    Material    = "wood",
                    TargetPhone = "flip fones"
                }
            }
                );
            var teeShirtRepoMock = GetRepositoryMock(
                new[]
            {
                new TShirt
                {
                    Id        = Guid.NewGuid(),
                    Name      = "Minecraft",
                    Colour    = "Green",
                    Price     = 81.24,
                    ShirtText = "CreeperFace"
                }
            }
                );


            var consolidator = new ProductDataConsolidator(
                lawnmowerRepoMock.Object,
                phoneCaseRepoMock.Object,
                teeShirtRepoMock.Object
                );


            var products = consolidator.GetAll()
                           .ToList();


            Assert.AreEqual(4, products.Count, "Count mismatch!");
            CollectionAssert.AllItemsAreNotNull(products, "Contains null!");
            CollectionAssert.AllItemsAreInstancesOfType(products, typeof(Product), "Bad type contents!");
            CollectionAssert.AllItemsAreUnique(products, "Doubleup!");
            Assert.AreEqual(1, products.Count(p => p.Type == "Lawnmower"), "lawn count!");
            Assert.AreEqual(2, products.Count(p => p.Type == "Phone Case"), "case count!");
            Assert.AreEqual(1, products.Count(p => p.Type == "T-Shirt"), "shirt count!");
        }