Esempio n. 1
0
        public void Should_Query_Correctly_When_No_Match()
        {
            var stubbedMarketOverheadProvider = new StubbedMarketOverheadProvider();

            stubbedMarketOverheadProvider.Add(("MX", "mango", 32.0, 1.24));
            stubbedMarketOverheadProvider.Add(("CU", "banana", 15.0, 2.00));
            stubbedMarketOverheadProvider.Add(("BR", "mango", 20.0, 1.42));

            var fruitTrader = new FruitTrader(stubbedMarketOverheadProvider);

            var matches = fruitTrader.QueryFullCostAcrossCountries("apple", 53, 405).ToArray();

            Assert.That(matches, Has.Exactly(0).Items);
        }
Esempio n. 2
0
        public void Should_Report_Correctly()
        {
            var stubbedMarketOverheadProvider = new StubbedMarketOverheadProvider();

            stubbedMarketOverheadProvider.Add(("MX", "mango", 32.0, 1.24));
            stubbedMarketOverheadProvider.Add(("CU", "banana", 15.0, 2.00));
            stubbedMarketOverheadProvider.Add(("BR", "mango", 20.0, 1.42));
            var reportLineList = new List <string>();
            var fruitTrading   = new FruitTrading(stubbedMarketOverheadProvider, (line) => reportLineList.Add(line));

            fruitTrading.ReportFullCostAcrossCountries("mango", 53, 405);

            CollectionAssert.AreEqual(new [] {
                "BR 22060.10 | (54.42*405)+20",
                "MX 21999.20 | (54.24*405)+32",
            }, reportLineList);
        }
Esempio n. 3
0
        public void Should_Query_Correctly()
        {
            var stubbedMarketOverheadProvider = new StubbedMarketOverheadProvider();

            stubbedMarketOverheadProvider.Add(("MX", "mango", 32.0, 1.24));
            stubbedMarketOverheadProvider.Add(("CU", "banana", 15.0, 2.00));
            stubbedMarketOverheadProvider.Add(("BR", "mango", 20.0, 1.42));

            var fruitTrader = new FruitTrader(stubbedMarketOverheadProvider);

            var matches = fruitTrader.QueryFullCostAcrossCountries("mango", 53, 405).ToArray();

            Assert.That(matches, Has.Exactly(2).Items);

            Assert.AreEqual(54.42, matches[0].poundCost);
            Assert.AreEqual(22060.10, matches[0].totalCost);
            Utils.AssertMarketOverheadDataAreEqual(stubbedMarketOverheadProvider.GetStub(2), matches[0].marketOverheadData);

            Assert.AreEqual(54.24, matches[1].poundCost);
            Assert.AreEqual(21999.20, matches[1].totalCost);
            Utils.AssertMarketOverheadDataAreEqual(stubbedMarketOverheadProvider.GetStub(0), matches[1].marketOverheadData);
        }
Esempio n. 4
0
        public void Should_Load_Correctly()
        {
            var tempJsonFilePath = Path.Combine(Path.GetTempPath(), $"{Guid.NewGuid()}.json");

            try {
                var json = "[{\"COUNTRY\":\"MX\",\"COMMODITY\":\"banana\",\"FIXED_OVERHEAD\":\"32.00\",\"VARIABLE_OVERHEAD\":\"1.24\"}, {\"COUNTRY\":\"BR\",\"COMMODITY\":\"mango\",\"FIXED_OVERHEAD\":\"20.00\",\"VARIABLE_OVERHEAD\":\"1.42\"}]";
                File.WriteAllText(tempJsonFilePath, json);

                var prov = new JsonMarketOverheadProvider(tempJsonFilePath);
                var data = prov.LoadData().ToArray();

                var stubbedProv = new StubbedMarketOverheadProvider();
                stubbedProv.Add(("MX", "banana", 32.0, 1.24));
                stubbedProv.Add(("BR", "mango", 20.0, 1.42));

                Utils.AssertMarketOverheadDataAreEqual(stubbedProv.GetStub(0), data[0]);
                Utils.AssertMarketOverheadDataAreEqual(stubbedProv.GetStub(1), data[1]);
            } catch {}
            if (File.Exists(tempJsonFilePath))
            {
                File.Delete(tempJsonFilePath);
            }
        }