public void InvalidOperationExceptionShouldBeThrown(decimal monthlyTariffCost, decimal consumptionCost)
        {
            var tariff = new BasicElectricityTariff
            {
                Name = string.Empty,
                MonthlyTariffCost = monthlyTariffCost,
                ConsumptionCost   = consumptionCost,
            };

            Assert.Throws <InvalidOperationException>(() => tariff.CalculateAnnualCosts(1));
        }
        public void ArgumentOutOfRangeExceptionShouldBeThrown(decimal annualConsumption)
        {
            var tariff = new BasicElectricityTariff
            {
                Name = string.Empty,
                MonthlyTariffCost = 1,
                ConsumptionCost   = 1,
            };

            Assert.Throws <ArgumentOutOfRangeException>(() => tariff.CalculateAnnualCosts(annualConsumption));
        }
        public void AnnualCostShouldBeCalculatedCorrectly(decimal monthlyTariffCost, decimal consumptionCost,
                                                          decimal annualConsumption, decimal expectedAnnualCost)
        {
            var tariff = new BasicElectricityTariff
            {
                Name = string.Empty,
                MonthlyTariffCost = monthlyTariffCost,
                ConsumptionCost   = consumptionCost,
            };

            var actualAnnualCost = tariff.CalculateAnnualCosts(annualConsumption);

            Assert.Equal(expectedAnnualCost, actualAnnualCost);
        }