public void ShouldCalculateCostForMeterReadingsForEveryPricePlan()
        {
            var electricityReading = new ElectricityReading()
            {
                Time = DateTime.Now.AddHours(-1), Reading = 15.0m
            };
            var otherReading = new ElectricityReading()
            {
                Time = DateTime.Now, Reading = 5.0m
            };

            meterReadingService.StoreReadings(SMART_METER_ID, new List <ElectricityReading>()
            {
                electricityReading, otherReading
            });

            var result = controller.CalculatedCostForEachPricePlan(SMART_METER_ID).Value;

            var actualCosts = ((JObject)result).ToObject <Dictionary <string, decimal> >();

            Assert.Equal(3, actualCosts.Count);
            Assert.Equal(100m, actualCosts["" + Supplier.DrEvilsDarkEnergy], 3);
            Assert.Equal(20m, actualCosts["" + Supplier.TheGreenEco], 3);
            Assert.Equal(10m, actualCosts["" + Supplier.PowerForEveryone], 3);
        }
Beispiel #2
0
        public void ShouldCalculateCostForMeterReadingsForEveryPricePlan()
        {
            var electricityReading = new ElectricityReading()
            {
                Time = DateTime.Now.AddHours(-1), Reading = 15.0m
            };
            var otherReading = new ElectricityReading()
            {
                Time = DateTime.Now, Reading = 5.0m
            };

            meterReadingService.StoreReadings(SMART_METER_ID, new List <ElectricityReading>()
            {
                electricityReading, otherReading
            });

            Dictionary <string, decimal> result = controller.CalculatedCostForEachPricePlan(SMART_METER_ID).Value as Dictionary <string, decimal>;

            Assert.NotNull(result);
            Assert.Equal(3, result.Count);
            Assert.Equal(100m, result[Supplier.DrEvilsDarkEnergy.ToString()], 3);
            Assert.Equal(20m, result[Supplier.TheGreenEco.ToString()], 3);
            Assert.Equal(10m, result[Supplier.PowerForEveryone.ToString()], 3);
        }