public void CostsWithEqualValueShouldHaveSameHashCode(decimal value)
        {
            ConsumptionCost first  = ConsumptionCost.Create(value);
            ConsumptionCost second = ConsumptionCost.Create(value);

            Assert.That(first.GetHashCode(), Is.EqualTo(second.GetHashCode()));
        }
Example #2
0
        // PUT api/values/5
        public Object Put(int id, [FromBody] string consumptionCost)
        {
            ConsumptionCost u = JsonConvert.DeserializeObject <ConsumptionCost>(consumptionCost);

            u.ID = id;
            return(new { success = ConsumptionCostBLL.UpdateConsumptionCost(u) });
        }
        static void Main(string[] args)
        {
            ITariffFactory            tariffFactory      = new TariffFactory();
            ITariffCalculationFactory calculationFactory =
                new TariffCalculationFactory();

            Tariff[] tariffs = Console.ReadLine()
                               .Split(',')
                               .Select(TariffName.Create)
                               .Select(tariffFactory.Create)
                               .ToArray();
            Consumption[] consumptions = Console.ReadLine()
                                         .Split(',')
                                         .Select(value => value.ToConsumption())
                                         .ToArray();

            TariffCalculationResultCollection resultCollection =
                new TariffCalculationResultCollection();

            foreach (Tariff tariff in tariffs)
            {
                foreach (Consumption consumption in consumptions)
                {
                    ITariffCalculation calculation = calculationFactory
                                                     .Create(tariff, consumption);
                    ConsumptionCost tariffCost = tariff.Calculate(
                        consumption, calculation);
                    resultCollection.Add(tariff.Name, tariffCost);
                }
            }

            resultCollection.Render(new ConsoleTariffCalculationResultRenderer());
        }
        public void CostsWithEqualValueShouldBeEqual(decimal value)
        {
            ConsumptionCost first  = ConsumptionCost.Create(value);
            ConsumptionCost second = ConsumptionCost.Create(value);

            Assert.That(first, Is.EqualTo(second));
        }
        public void CostsWithDifferentValueShouldNotBeEqual(decimal firstValue,
                                                            decimal secondValue)
        {
            ConsumptionCost first  = ConsumptionCost.Create(firstValue);
            ConsumptionCost second = ConsumptionCost.Create(secondValue);

            Assert.That(first, Is.Not.EqualTo(second));
        }
Example #6
0
        public ConsumptionCost Calculate(Consumption consumption)
        {
            Consumption delta = consumption - _lowerConsumptionBoundary;

            ConsumptionCost additionConsumptionCost = _additionalCost * delta;

            return(_baseCost + additionConsumptionCost);
        }
        public void CostsWithDifferentValueShouldHaveDifferentHashCode(
            decimal firstValue, decimal secondValue)
        {
            ConsumptionCost first  = ConsumptionCost.Create(firstValue);
            ConsumptionCost second = ConsumptionCost.Create(secondValue);

            Assert.That(first.GetHashCode(), Is.Not.EqualTo(second.GetHashCode()));
        }
        public void ShouldReturnConsumptionCostAsStringCorrectly(decimal value)
        {
            string expectedValue = $"{value} €";

            ConsumptionCost cost = ConsumptionCost.Create(value);

            Assert.That(expectedValue, Is.EqualTo(cost.ToString()));
        }
        public ConsumptionCost Calculate(Consumption consumption)
        {
            ConsumptionCost yearlyBaseCost = _baseCost.Yearly();
            ConsumptionCost additionalCost =
                _additionalCost * consumption;

            return(yearlyBaseCost + additionalCost);
        }
Example #10
0
        // POST api/values
        public int Post([FromBody] string consumptionCost)
        {
            JsonSerializerSettings serializerSettings = new JsonSerializerSettings {
                Formatting = Formatting.Indented
            };
            ConsumptionCost u = JsonConvert.DeserializeObject <ConsumptionCost>(consumptionCost, serializerSettings);

            return(ConsumptionCostBLL.InsertConsumptionCost(u));
        }
Example #11
0
        public void ShouldCalculateYearlyCostCorrectly(int consumptionValue,
                                                       decimal expectedCostValue)
        {
            Consumption consumption = Consumption.Create(consumptionValue);
            BasicElectricityTariffCalculation calculation =
                new BasicElectricityTariffCalculation();

            ConsumptionCost expectedCost = ConsumptionCost.Create(expectedCostValue);
            ConsumptionCost actualCost   = calculation.Calculate(consumption);

            Assert.That(expectedCost, Is.EqualTo(actualCost));
        }
Example #12
0
        public void ShouldCalculateYearlyCostsCorrectly(int consumptionValue,
                                                        decimal expectedCostValue)
        {
            PackagedTariffHighConsumptionCalculation calculation =
                new PackagedTariffHighConsumptionCalculation();

            ConsumptionCost expectedCost = ConsumptionCost.Create(expectedCostValue);
            Consumption     consumption  = Consumption.Create(consumptionValue);
            ConsumptionCost actualCost   = calculation.Calculate(consumption);

            Assert.That(expectedCost, Is.EqualTo(actualCost));
        }
        public void ShouldSumConsumptionCostsCorrectly(decimal firstValue,
                                                       decimal secondValue)
        {
            ConsumptionCost first  = ConsumptionCost.Create(firstValue);
            ConsumptionCost second = ConsumptionCost.Create(secondValue);

            ConsumptionCost expectedResult = ConsumptionCost.Create(
                firstValue + secondValue);
            ConsumptionCost actualResult = first + second;

            Assert.That(expectedResult, Is.EqualTo(actualResult));
        }
Example #14
0
        public int InsertConsumptionCost(ConsumptionCost consumptionCost)
        {
            DynamicParameters parameters = new DynamicParameters();

            parameters.Add("@IDCar", consumptionCost.IDCar);
            parameters.Add("@GasKmPerLiter", consumptionCost.GasKmPerLiter);
            parameters.Add("@GasPrice", consumptionCost.GasPrice);
            parameters.Add("@GasPricePerKm", consumptionCost.GasPricePerKm);
            parameters.Add("@RegDate", consumptionCost.RegDate);


            return((int)SqlMapper.ExecuteScalar(connection, SQL_INSERIR, parameters));
        }
Example #15
0
        public bool UpdateConsumptionCost(ConsumptionCost consumptionCost)
        {
            DynamicParameters parameters = new DynamicParameters();

            parameters.Add("@ID", consumptionCost.ID);
            parameters.Add("@IDCar", consumptionCost.IDCar);
            parameters.Add("@GasKmPerLiter", consumptionCost.GasKmPerLiter);
            parameters.Add("@GasPrice", consumptionCost.GasPrice);
            parameters.Add("@GasPricePerKm", consumptionCost.GasPricePerKm);
            parameters.Add("@RegDate", consumptionCost.RegDate);


            return(SqlMapper.Execute(connection, SQL_UPDATE, parameters) > 0);
        }
Example #16
0
        public void ConsumptionCost_GetTotalCost_6000kWh()
        {
            Mock <IConsumption> mockConsumption = new Mock <IConsumption>();

            mockConsumption.Setup(x => x.GetKilowatsHourPerYear()).Returns(6000);

            ConsumptionCost consumptionCost = new ConsumptionCost(mockConsumption.Object);

            consumptionCost.SetCost(0.22);

            double totalCost = consumptionCost.GetTotalCost();

            Assert.AreEqual(1320, totalCost);
        }
Example #17
0
 public int InsertConsumptionCost(ConsumptionCost consumptionCost)
 {
     return(ConsumptionCostDAL.InsertConsumptionCost(consumptionCost));
 }
 public static ConsumptionCost Yearly(this ConsumptionCost cost)
 {
     return(ConsumptionCost.Create(cost.Value * Months.YEAR.Value));
 }
Example #19
0
 public bool UpdateConsumptionCost(ConsumptionCost consumptionCost)
 {
     return(ConsumptionCostDAL.UpdateConsumptionCost(consumptionCost));
 }
        public void ShouldCreateConsumptionCostFromValidValue(decimal value)
        {
            ConsumptionCost cost = ConsumptionCost.Create(value);

            Assert.That(cost, Is.Not.Null);
        }
 public void ShouldNotCreateConsumptionCostWithInvalidValue(decimal invalidValue)
 {
     Assert.Throws <ArgumentException>(() =>
                                       ConsumptionCost.Create(invalidValue));
 }