Exemplo n.º 1
0
 public void Setup()
 {
     _builder       = new Mock <IProductDtoBuilder>();
     _lawnmowerRepo = new Mock <IReadOnlyRepository <Lawnmower> >();
     _phoneCaseRepo = new Mock <IReadOnlyRepository <PhoneCase> >();
     _tshirtRepo    = new Mock <IReadOnlyRepository <TShirt> >();
     _aggregator    = new ProductAggregator(_builder.Object, _lawnmowerRepo.Object, _phoneCaseRepo.Object,
                                            _tshirtRepo.Object);
 }
        public async Task GenerateDistinctCodesTestTwo()
        {
            var productsList = new List <Product>()
            {
                new Product()
                {
                    ProductId = 18886, ProductName = "FISH OIL"
                }
            };

            var retailerProductList = new List <RetailerProduct>()
            {
                new RetailerProduct()
                {
                    ProductId = 18886, RetailerName = "DDS", RetailerProductCode = "93482745", RetailerProductCodeType = "BarCode", DateReceived = new DateTime(2011, 06, 16)
                },
                new RetailerProduct()
                {
                    ProductId = 18886, RetailerName = "WOOLWORTHS", RetailerProductCode = "F8CE71964FAC90E59164FDB6AA19B10A", RetailerProductCodeType = "Woolworths Ref", DateReceived = new DateTime(2018, 09, 05)
                },
                new RetailerProduct()
                {
                    ProductId = 18886, RetailerName = "WOOLWORTHS", RetailerProductCode = "017E9562042C3E9F0E1D200A8C915052", RetailerProductCodeType = "Woolworths Ref", DateReceived = new DateTime(2021, 03, 10)
                },
                new RetailerProduct()
                {
                    ProductId = 18886, RetailerName = "Coles", RetailerProductCode = "93481745", RetailerProductCodeType = "BarCode", DateReceived = new DateTime(2006, 04, 23)
                }
            };

            var expectedResult = new List <ProductCodeView>()
            {
                new ProductCodeView()
                {
                    ProductId = 18886, ProductName = "FISH OIL", RetailerProductCode = "017E9562042C3E9F0E1D200A8C915052", RetailerProductCodeType = "Woolworths Ref"
                },
                new ProductCodeView()
                {
                    ProductId = 18886, ProductName = "FISH OIL", RetailerProductCode = "93482745", RetailerProductCodeType = "BarCode"
                }
            };

            var productParser         = new Mock <IProductParser>();
            var retailerProductParser = new Mock <IRetailerProductParser>();

            productParser.Setup(x => x.GetData(It.IsAny <string>())).ReturnsAsync(productsList);
            retailerProductParser.Setup(x => x.GetData(It.IsAny <string>())).ReturnsAsync(retailerProductList);

            var sut    = new ProductAggregator(productParser.Object, retailerProductParser.Object);
            var result = await sut.GetDistinctCodeTypes("productFilePath", "retailerProductFilePath");

            Assert.Equal(expectedResult.OrderBy(x => x.RetailerProductCodeType), result.OrderBy(x => x.RetailerProductCodeType), new ProductCodeViewEqualityComparer());
        }
        public async Task GenerateDistinctCodesTest()
        {
            var productsList = new List <Product>()
            {
                new Product()
                {
                    ProductId = 123, ProductName = "Pizza"
                },
                new Product()
                {
                    ProductId = 111, ProductName = "Chicken"
                },
            };

            var retailerProductList = new List <RetailerProduct>()
            {
                new RetailerProduct()
                {
                    ProductId = 123, RetailerName = "WOOLWORTHS", RetailerProductCode = "111", RetailerProductCodeType = "Woolworths Reference Number", DateReceived = new DateTime(2011, 10, 10)
                },
                new RetailerProduct()
                {
                    ProductId = 123, RetailerName = "WOOLWORTHS", RetailerProductCode = "222", RetailerProductCodeType = "Woolworths Reference Number", DateReceived = new DateTime(2018, 10, 10)
                },
                new RetailerProduct()
                {
                    ProductId = 123, RetailerName = "WOOLWORTHS", RetailerProductCode = "333", RetailerProductCodeType = "BarCode", DateReceived = new DateTime(2021, 12, 12)
                },
                new RetailerProduct()
                {
                    ProductId = 123, RetailerName = "WOOLWORTHS", RetailerProductCode = "444", RetailerProductCodeType = "BarCode", DateReceived = new DateTime(2018, 10, 10)
                },
                new RetailerProduct()
                {
                    ProductId = 111, RetailerName = "Coles", RetailerProductCode = "555", RetailerProductCodeType = "Coles Ref Number", DateReceived = new DateTime(2010, 10, 10)
                },
                new RetailerProduct()
                {
                    ProductId = 111, RetailerName = "Coles", RetailerProductCode = "666", RetailerProductCodeType = "Coles Ref Number", DateReceived = new DateTime(2020, 10, 10)
                }
            };

            var expectedResult = new List <ProductCodeView>()
            {
                new ProductCodeView()
                {
                    ProductId = 123, ProductName = "Pizza", RetailerProductCode = "222", RetailerProductCodeType = "Woolworths Reference Number"
                },
                new ProductCodeView()
                {
                    ProductId = 123, ProductName = "Pizza", RetailerProductCode = "333", RetailerProductCodeType = "BarCode"
                },
                new ProductCodeView()
                {
                    ProductId = 111, ProductName = "Chicken", RetailerProductCode = "666", RetailerProductCodeType = "Coles Ref Number"
                },
            };
            var productParser         = new Mock <IProductParser>();
            var retailerProductParser = new Mock <IRetailerProductParser>();

            productParser.Setup(x => x.GetData(It.IsAny <string>())).ReturnsAsync(productsList);
            retailerProductParser.Setup(x => x.GetData(It.IsAny <string>())).ReturnsAsync(retailerProductList);

            var sut    = new ProductAggregator(productParser.Object, retailerProductParser.Object);
            var result = await sut.GetDistinctCodeTypes("productFilePath", "retailerProductFilePath");

            Assert.Equal(expectedResult.OrderBy(x => x.RetailerProductCodeType), result.OrderBy(x => x.RetailerProductCodeType), new ProductCodeViewEqualityComparer());
        }