Beispiel #1
0
        public void ShippingProcessorProcessTest()
        {
            DateTime?date;
            string   packageSize;
            string   shippingProviderCode;

            List <(string packageSize, string shippingProviderCode, DateTime date, int shipmentNumber)> shipmentNumbers =
                new List <(string packageSize, string shippingProviderCode, DateTime date, int shipmentNumber)>();

            List <(ShippingItem shippingItem, bool correctLine, string line)> items =
                new List <(ShippingItem shippingItem, bool correctLine, string line)>();

            int      shipmentNumber = 0;
            DateTime?previousDate   = null;
            bool     correctLine;

            var shippingProcessor = new ShippingProcessor();

            SetShippingProvider(shippingProcessor);

            SetRules(shippingProcessor);

            items = SetItems(shippingProcessor);

            string s1 = "";

            shippingProcessor.Process(items)
            .ForEach(s =>
            {
                if (!s.correctLine)
                {
                    s1 += $"{s.line} Ignored\r\n";
                    return;
                }

                string discount = s.ruleProcessingResult.discount == 0
                        ? "-"
                        : s.ruleProcessingResult.discount.ToString("F");

                s1 += $"{s.line} {s.ruleProcessingResult.price:0.00} {discount}\r\n";
            });

            Assert.AreEqual(s1,
                            @"2015-02-01 S MR 3.00 -
2015-02-02 S MR 3.00 -
2015-02-03 L LP 2.50 5.40
2015-02-05 S LP 2.50 -
2015-02-06 S MR 3.00 -
2015-02-06 L LP 3.30 4.60
2015-02-07 L MR 5.00 -
2015-02-08 M MR 4.00 -
2015-02-09 L LP 7.90 -
2015-02-10 L LP 7.90 -
2015-02-10 S MR 3.00 -
2015-02-10 S MR 3.00 -
2015-02-11 L LP 7.90 -
2015-02-12 M MR 4.00 -
2015-02-13 M LP 5.90 -
2015-02-15 S MR 3.00 -
2015-02-17 L LP 7.90 -
2015-02-17 S MR 3.00 -
2015-02-24 L LP 7.90 -
2015-02-29 CUSPS Ignored
2015-03-01 S MR 3.00 -
");
        }
Beispiel #2
0
        private void SetShippingProvider(ShippingProcessor shippingProcessor)
        {
            var shippingProvider = new List <ShippingProvider>();

            shippingProvider.AddRange(
                new[]
Beispiel #3
0
        public decimal CalculateShipping()
        {
            ShippingProcessor shippingProcessor = new ShippingProcessor();

            return(shippingProcessor.CalculateShippingAmount(State.Alaska));
        }