public void CalculatesAnnualCosts(decimal annualPrice, decimal pricePerUnit, decimal consumptionThreshold, decimal unitsPerYear, decimal expectedCost)
        {
            var cut = new PackagedTariff("Product B", annualPrice, pricePerUnit, consumptionThreshold);
            var c   = new Consumption(unitsPerYear);

            var actualCost = cut.Calculate(c);

            Assert.AreEqual(expectedCost, actualCost);
        }
Example #2
0
        public void ShouldThroughArgumentException(double consumption)
        {
            // Arrange
            var packagedTariff = new PackagedTariff();

            // Act
            // Assert
            Assert.Throws <ArgumentException>(() => packagedTariff.GetAnnualCosts(consumption), "Should throw ArgumentException when consumption less 0");
        }
 public void Initialize()
 {
     _basicTariff = new BasicTariff();
     _packagedTariff = new PackagedTariff();
     _subject = new TariffComparator(new List<ITariff>
     {
         _basicTariff,
         _packagedTariff,
     });
 }
Example #4
0
        public void PackagedTariff_AnnualCosts_6000kWh()
        {
            Injector.Map <IConsumption>(() => new Consumption(6000));

            PackagedTariff tariff = new PackagedTariff();

            double totalCost = tariff.AnnualCosts;

            Assert.AreEqual(1400, totalCost);
        }
Example #5
0
        public void CalculateAnnualCosts_ConsumptionLowerThan0_Returns800()
        {
            var     currentConsumption = -2000;
            decimal expectedCost       = 800;

            var tariff     = new PackagedTariff(currentConsumption);
            var actualCost = tariff.AnnualCosts;

            Assert.AreEqual(expectedCost, actualCost);
        }
Example #6
0
        public void CalculateAnnualCosts_ConsumptionAbove4000_ReturnsCalculatedCost()
        {
            var     currentConsumption = 4500;
            decimal expectedCost       = 950;

            var tariff     = new PackagedTariff(currentConsumption);
            var actualCost = tariff.AnnualCosts;

            Assert.AreEqual(expectedCost, actualCost);
        }
Example #7
0
        public void ShouldReturnValidAnnualCosts(double consumption, double expectedCost)
        {
            // Arrange
            var packagedTariff = new PackagedTariff();

            // Act
            var annualCost = packagedTariff.GetAnnualCosts(consumption);

            // Assert
            Assert.AreEqual(expectedCost, annualCost, "Annual cost calculated incorrectly");
        }
Example #8
0
        public void ConsumptionCostsShouldBeAsExpected(decimal annualCost, decimal consumption)
        {
            // Arrange
            ITariff tariff = new PackagedTariff();

            // Act
            var consumptionCost = tariff.CalculateAnnualCost(consumption);

            // Assert
            Assert.Equal(annualCost, consumptionCost);
        }
Example #9
0
        public void AnnualCostShouldBeValid(int cost, int consumption)
        {
            // Arrange
            var tarrif = new PackagedTariff
            {
                Consumption = consumption
            };

            // Act
            // Assert
            Assert.Equal(cost, tarrif.AnnualCost);
        }
Example #10
0
        public static void Main(string[] args)
        {
            Console.WriteLine("Abstract Pricing Model Demo:");
            Console.WriteLine("");
            Console.WriteLine("Type numbers for kWh\\year. Hit [Enter] to exit.");

            var productA = new BasicTariff("Basic Electricity Tariff", 5, 0.22m);
            var productB = new PackagedTariff("Packaged Electricity Tariff", 800, 0.3m, 4000);

            string tmp;

            do
            {
                Console.Write("kWh\\year: ");
                tmp = Console.ReadLine();
                if (!String.IsNullOrEmpty(tmp))
                {
                    var dTmp = Convert.ToDecimal(tmp);
                    PrintTariff(productA, dTmp);
                    PrintTariff(productB, dTmp);
                    Console.WriteLine();
                }
            } while (!String.IsNullOrEmpty(tmp));
        }
 public void ShouldThrowArgumentExceptionWhenConsumptionNegative()
 {
     var tariff = new PackagedTariff(-500);
 }
        public void ShouldReturn1400WhenConsumption6000()
        {
            var tariff = new PackagedTariff(6000);

            Assert.AreEqual(tariff.YearlyCost, 1400);
        }
        public void ShouldReturn950WhenConsumption4500()
        {
            var tariff = new PackagedTariff(4500);

            Assert.AreEqual(tariff.YearlyCost, 950);
        }
 public void Initialize()
 {
     _subject = new PackagedTariff();
 }