public void CanCalculateHousePolicyPrice()
        {
            var subject = new Dictionary <string, object>
            {
                ["TYP"]          = "APT",
                ["AREA"]         = 95M,
                ["NUM_OF_CLAIM"] = 1M,
                ["FLOOD"]        = "NO"
            };

            var calculation = new Calculation(
                "HSI",
                DateTimeOffset.Now.AddDays(5),
                DateTimeOffset.Now.AddDays(5).AddYears(1),
                new List <string> {
                "C1", "C2", "C3"
            },
                subject
                );

            var tariff = TariffFactory.House();

            var price = tariff.CalculatePrice(calculation);

            Equal(172.50M, price.TotalPremium);
            Equal(118.75M, price.Covers["C1"].Price);
            Equal(23.75M, price.Covers["C2"].Price);
            Equal(30M, price.Covers["C3"].Price);
        }
        public void CanCalculateTravelPolicyPrice()
        {
            var subject = new Dictionary <string, object>
            {
                ["NUM_OF_ADULTS"]   = 1M,
                ["NUM_OF_CHILDREN"] = 1M,
                ["DESTINATION"]     = "EUR"
            };

            var calculation = new Calculation(
                "TRI",
                DateTimeOffset.Now.AddDays(5),
                DateTimeOffset.Now.AddDays(10),
                new List <string> {
                "C1", "C2", "C3"
            },
                subject
                );

            var tariff = TariffFactory.Travel();

            var price = tariff.CalculatePrice(calculation);

            Equal(98M, price.TotalPremium);
            Equal(26M, price.Covers["C1"].Price);
            Equal(52M, price.Covers["C2"].Price);
            Equal(20M, price.Covers["C3"].Price);
        }
        public void CanCalculateCarPolicyPrice()
        {
            var subject = new Dictionary <string, object>
            {
                ["NUM_OF_CLAIM"] = 1M
            };

            var calculation = new Calculation(
                "CAR",
                DateTimeOffset.Now.AddDays(5),
                DateTimeOffset.Now.AddDays(5).AddYears(1),
                new List <string> {
                "C1"
            },
                subject
                );

            var tariff = TariffFactory.Car();

            var price = tariff.CalculatePrice(calculation);

            Equal(100M, price.TotalPremium);
            Equal(100M, price.Covers["C1"].Price);
        }