public void ShouldReturnEnergyChargesWhenUnitsConsumedForSlab3()
        {
            units       = 151; expected = 703.80;
            outputModel = ecController.Calculation(units);
            double actual = outputModel.TotalEnergyCharges;

            Assert.AreEqual(expected, actual);
        }
Exemple #2
0
        public void ShouldReturnEnergyChargesWhenUnitsConsumedForSlab4()
        {
            EnergyCharges       energycharges = new EnergyCharges();
            EnergyChargesBilled result        = energycharges.EnergyChargesCalculation(301);
            double actual   = result.TotalEnergyCharges;
            double expected = 1649.00;

            Assert.AreEqual(expected, actual);
        }
Exemple #3
0
        public EnergyChargesBilled Calculation(int units)
        {
            EnergyCharges       energyCharges = new EnergyCharges();
            EnergyChargesBilled ecbilled      = new EnergyChargesBilled();

            ecbilled = energyCharges.EnergyChargesCalculation(units);

            return(ecbilled);
        }
Exemple #4
0
        public EnergyChargesBilled GetEnrgySlabCharges()
        {
            string strResponseContent;

            using (StreamReader reader = new StreamReader(FilePath))
            {
                strResponseContent = reader.ReadToEnd();
            }
            EnergyChargesBilled enrgySlab = JsonConvert.DeserializeObject <EnergyChargesBilled>(strResponseContent);

            return(enrgySlab);
        }
 public EnergyChargesBilled callwebapi(string parameters)
 {
     using (var httpClient = new HttpClient())
     {
         using (var response = httpClient.GetAsync(parameters).Result)
         {
             if (response.IsSuccessStatusCode)
             {
                 string apiResponse = response.Content.ReadAsStringAsync().Result;
                 expectedresult     = JsonConvert.DeserializeObject <EnergyChargesBilled>(apiResponse);
                 totalenergycharges = expectedresult.TotalEnergyCharges;
             }
         }
     }
     return(expectedresult);
 }
Exemple #6
0
        public bool SetEnrgySlabCharges(EnergyChargesBilled eModel)
        {
            bool SlabChargesUpdated = false;
            var  json          = File.ReadAllText(FilePath);
            var  enrgySlabList = JsonConvert.DeserializeObject <EnergyChargesBilled>(json);

            if (eModel != null)
            {
                enrgySlabList.Slab1Rate = eModel.Slab1Rate;
                enrgySlabList.Slab2Rate = eModel.Slab2Rate;
                enrgySlabList.Slab3Rate = eModel.Slab3Rate;
                enrgySlabList.Slab4Rate = eModel.Slab4Rate;

                File.WriteAllText(FilePath, JsonConvert.SerializeObject(enrgySlabList, Formatting.Indented));
                SlabChargesUpdated = true;
            }
            return(SlabChargesUpdated);
        }
        public void ShouldReturnEnergyChargesWhenUnitsConsumedIsOneForSlab1()
        {
            units       = 1; expected = 4.05;
            outputModel = ecController.Calculation(units);
            double actual = outputModel.TotalEnergyCharges;

            Assert.AreEqual(expected, actual);

            //outputModel.TotalEnergyCharges = 4.05;
            //var service = new Mock<IElectricityCharge>();

            //service.Setup(m => m.EnergyChargesCalculation(It.IsAny<int>(),
            //                It.IsAny<EnergyChargesBilled>())).Returns(outputModel);

            //ecController = new EnergyChargesController(service.Object);
            //double actual = ecController.Calculation(units, inputModel).TotalEnergyCharges;
            //service.Verify(x => x.EnergyChargesCalculation(units, inputModel), Times.AtLeastOnce());
            //Assert.AreEqual(expected, actual);
        }
Exemple #8
0
        public EnergyChargesBilled EnergyChargesCalculation(int Units)
        {
            EnergyChargesBilled eModel = GetEnrgySlabCharges();

            if (Units == 0)
            {
                eModel.TotalEnergyCharges = 0;
            }
            else if (Units >= (int)slab1range.min && Units <= (int)slab1range.max)
            {
                eModel.Slab1EnergyCharges = Units * eModel.Slab1Rate;
                eModel.TotalEnergyCharges = eModel.Slab1EnergyCharges;
            }
            else if (Units >= (int)slab2range.min && Units <= (int)slab2range.max)
            {
                eModel.Slab1EnergyCharges = (50 * eModel.Slab1Rate);
                eModel.Slab2EnergyCharges = ((Units - 50) * eModel.Slab2Rate);
                eModel.TotalEnergyCharges = eModel.Slab1EnergyCharges + eModel.Slab2EnergyCharges;
            }
            else if (Units >= (int)slab3range.min && Units <= (int)slab3range.max)
            {
                eModel.Slab1EnergyCharges = (50 * eModel.Slab1Rate);
                eModel.Slab2EnergyCharges = (100 * eModel.Slab2Rate);
                eModel.Slab3EnergyCharges = ((Units - 150) * eModel.Slab3Rate);
                eModel.TotalEnergyCharges = eModel.Slab1EnergyCharges + eModel.Slab2EnergyCharges + eModel.Slab3EnergyCharges;
            }
            else if (Units >= (int)slab4range.min)
            {
                eModel.Slab1EnergyCharges = (50 * eModel.Slab1Rate);
                eModel.Slab2EnergyCharges = (100 * eModel.Slab2Rate);
                eModel.Slab3EnergyCharges = (150 * eModel.Slab3Rate);
                eModel.Slab4EnergyCharges = ((Units - 300) * eModel.Slab4Rate);
                eModel.TotalEnergyCharges = eModel.Slab1EnergyCharges + eModel.Slab2EnergyCharges + eModel.Slab3EnergyCharges + eModel.Slab4EnergyCharges;
            }
            return(eModel);
        }
 public void WhenTheStateABDYElectricityBillGetsGenerated()
 {
     expectedresult     = JsonConvert.DeserializeObject <EnergyChargesBilled>(apiResponse);
     totalenergycharges = expectedresult.TotalEnergyCharges;
 }
Exemple #10
0
 public bool SetCharges([FromBody] EnergyChargesBilled eModel)
 {
     return(energyCharges.SetEnrgySlabCharges(eModel));
 }
Exemple #11
0
        public EnergyChargesBilled Calculation(int units)
        {
            EnergyChargesBilled _eModel = energyCharges.EnergyChargesCalculation(units);

            return(_eModel);
        }
Exemple #12
0
        public EnergyChargesBilled EnergyChargesCalculation(int Units)

        {
            EnergyChargesBilled ecbilled = new EnergyChargesBilled();

            if (Units == 0)
            {
                totalenergycharges          = 0;
                ecbilled.TotalEnergyCharges = totalenergycharges;
                ecbilled.Units = Units;
                ecbilled.Slab  = 0;
            }
            else if (Units >= (int)slab1range.min && Units <= (int)slab1range.max)
            {
                totalenergycharges          = Units * GetSlabRate((int)ElectricitySlabs.slab1);
                Slab1Charges                = totalenergycharges;
                ecbilled.Slab1Charges       = Slab1Charges;
                ecbilled.TotalEnergyCharges = totalenergycharges;
                ecbilled.Units              = Units;
                ecbilled.Slab               = 1;
            }
            else if (Units >= (int)slab2range.min && Units <= (int)slab2range.max)
            {
                totalenergycharges          = (50 * GetSlabRate((int)ElectricitySlabs.slab1)) + ((Units - 50) * GetSlabRate((int)ElectricitySlabs.slab2));
                Slab1Charges                = (50 * GetSlabRate((int)ElectricitySlabs.slab1));
                Slab2Charges                = ((Units - 50) * GetSlabRate((int)ElectricitySlabs.slab2));
                ecbilled.Slab1Charges       = Slab1Charges;
                ecbilled.Slab2Charges       = Slab2Charges;
                ecbilled.TotalEnergyCharges = totalenergycharges;
                ecbilled.Units              = Units;
                ecbilled.Slab               = 2;
            }
            else if (Units >= (int)slab3range.min && Units <= (int)slab3range.max)
            {
                totalenergycharges          = (50 * GetSlabRate((int)ElectricitySlabs.slab1)) + (100 * GetSlabRate((int)ElectricitySlabs.slab2)) + ((Units - 150) * GetSlabRate((int)ElectricitySlabs.slab3));
                Slab1Charges                = (50 * GetSlabRate((int)ElectricitySlabs.slab1));
                Slab2Charges                = (100 * GetSlabRate((int)ElectricitySlabs.slab2));
                Slab3Charges                = ((Units - 150) * GetSlabRate((int)ElectricitySlabs.slab3));
                ecbilled.Slab1Charges       = Slab1Charges;
                ecbilled.Slab2Charges       = Slab2Charges;
                ecbilled.Slab3Charges       = Slab3Charges;
                ecbilled.TotalEnergyCharges = totalenergycharges;
                ecbilled.Units              = Units;
                ecbilled.Slab               = 3;
            }
            else if (Units >= (int)slab4range.min)
            {
                totalenergycharges          = (50 * GetSlabRate((int)ElectricitySlabs.slab1)) + (100 * GetSlabRate((int)ElectricitySlabs.slab2)) + (150 * GetSlabRate((int)ElectricitySlabs.slab3)) + (Units - 300) * GetSlabRate((int)ElectricitySlabs.slab4);
                Slab1Charges                = (50 * GetSlabRate((int)ElectricitySlabs.slab1));
                Slab2Charges                = (100 * GetSlabRate((int)ElectricitySlabs.slab2));
                Slab3Charges                = (150 * GetSlabRate((int)ElectricitySlabs.slab3));
                Slab4Charges                = (Units - 300) * GetSlabRate((int)ElectricitySlabs.slab4);
                ecbilled.Slab1Charges       = Slab1Charges;
                ecbilled.Slab2Charges       = Slab2Charges;
                ecbilled.Slab3Charges       = Slab3Charges;
                ecbilled.Slab4Charges       = Slab4Charges;
                ecbilled.TotalEnergyCharges = totalenergycharges;
                ecbilled.Units              = Units;
                ecbilled.Slab               = 4;
            }

            return(ecbilled);
        }
 public void WhenTheStateABDYElectricityBillGetsGenerated()
 {
     expectedresult     = callwebapi(webapi);
     totalenergycharges = expectedresult.TotalEnergyCharges;
 }
 public void GivenIConsumedUnitsInAMonth(int units)
 {
     webapi             = webapi + "Calculation?units=" + units;
     expectedresult     = callwebapi(webapi);
     totalenergycharges = expectedresult.TotalEnergyCharges;
 }