private static DateTime END_OF_TIMES  = new DateTime(2025, 05, 05); // you don't wannna know

        public void ResidentialCustomerWithoutAccountsFailsWithNoAccounsEligibility()
        {
            var objectUnderTest = new ObjectUnderTestBuilder()
                                  .CreateCustomer(CustomerType.RESIDENTIAL)
                                  .Build();

            var communication = TestHelperWithAllTheStuff.PopulateDBAndStuff(objectUnderTest);

            var eligibilityResult = eligibilityService.performEligibility(communication);

            checkIneligible(eligibilityResult, NO_ACCOUNT_ELIGIBILITY_CODE);
        }
        public void ResidentialCustomerWithElecAccountWithoutUsagesFailsWithNoUsageEligibility()
        {
            var objectUnderTest = new ObjectUnderTestBuilder()
                                  .CreateCustomer(CustomerType.RESIDENTIAL)
                                  .AddUtilityAccount(MeterType.ELEC, FuelType.KWH, ACTIVE_DATE)
                                  .Build();

            var communication = TestHelperWithAllTheStuff.PopulateDBAndStuff(objectUnderTest);

            var eligibilityResult = eligibilityService.performEligibility(communication);

            checkIneligible(eligibilityResult, USAGES_NOT_FOUND_ELIGIBILITY_CODE);
        }
        public void IndustrialCustomerFailsWithNotSupportedCustomerTypeEligibility()
        {
            var objectUnderTest = new ObjectUnderTestBuilder()
                                  .CreateCustomer(CustomerType.INDUSTRIAL)
                                  .AddUtilityAccount(MeterType.ELEC, FuelType.KVAR, ACTIVE_DATE)
                                  .Build();

            var communication = TestHelperWithAllTheStuff.PopulateDBAndStuff(objectUnderTest);

            var eligibilityResult = eligibilityService.performEligibility(communication);

            checkIneligible(eligibilityResult, CUSTOMER_NOT_SUPPORTED_ELIGIBILITY_CODE);
        }
        public void SolarCustomerFailsWithScrewYouSolarEligibility()
        {
            var objectUnderTest = new ObjectUnderTestBuilder()
                                  .CreateCustomer(CustomerType.RESIDENTIAL)
                                  .SetAsSolar()
                                  .AddUtilityAccount(MeterType.ELEC, FuelType.KWH, ACTIVE_DATE)
                                  .WithUsages(ACTIVE_DATE, END_OF_TIMES, 1, 0.2f)
                                  .Build();

            var communication = TestHelperWithAllTheStuff.PopulateDBAndStuff(objectUnderTest);

            var eligibilityResult = eligibilityService.performEligibility(communication);

            checkIneligible(eligibilityResult, SOLAR_ELIGIBILITY_CODE);
        }
        public void ResidentialCustomerWithElecAndGasAccountsWithAllUsagesPassesEligibility()
        {
            var objectUnderTest = new ObjectUnderTestBuilder()
                                  .CreateCustomer(CustomerType.RESIDENTIAL)
                                  .AddUtilityAccount(MeterType.ELEC, FuelType.KWH, ACTIVE_DATE)
                                  .WithUsages(ACTIVE_DATE, END_OF_TIMES, 1, 0.2f)
                                  .AddUtilityAccount(MeterType.GAS, FuelType.M3, ACTIVE_DATE)
                                  .WithUsages(ACTIVE_DATE.AddYears(1), END_OF_TIMES, 0.2f, 0.01f)
                                  .Build();

            var communication = TestHelperWithAllTheStuff.PopulateDBAndStuff(objectUnderTest);

            var eligibilityResult = eligibilityService.performEligibility(communication);

            checkEligible(eligibilityResult);
        }