private static producerType SetUpProducer(countryType countryType, eeePlacedOnMarketBandType eeePlacedOnMarketBandType, annualTurnoverBandType annualTurnoverBandType, bool vatRegistered) { var producerCompany = new companyType() { companyName = "Test company", companyNumber = "Test CRN", registeredOffice = new contactDetailsContainerType() { contactDetails = new contactDetailsType() { address = new addressType() { country = countryType } } } }; var producerBusiness = new producerBusinessType() { Item = producerCompany }; var producer = new producerType { annualTurnoverBand = annualTurnoverBandType, VATRegistered = vatRegistered, eeePlacedOnMarketBand = eeePlacedOnMarketBandType, producerBusiness = producerBusiness }; return(producer); }
public ChargeBand GetProducerChargeBand(annualTurnoverBandType annualTurnoverBand, bool vatRegistered, eeePlacedOnMarketBandType eeePlacedOnMarketBand) { if (eeePlacedOnMarketBand == eeePlacedOnMarketBandType.Lessthan5TEEEplacedonmarket) { return ChargeBand.E; } else { if (annualTurnoverBand == annualTurnoverBandType.Greaterthanonemillionpounds && vatRegistered && eeePlacedOnMarketBand == eeePlacedOnMarketBandType.Morethanorequalto5TEEEplacedonmarket) { return ChargeBand.A; } else if (annualTurnoverBand == annualTurnoverBandType.Lessthanorequaltoonemillionpounds && vatRegistered && eeePlacedOnMarketBand == eeePlacedOnMarketBandType.Morethanorequalto5TEEEplacedonmarket) { return ChargeBand.B; } else if (annualTurnoverBand == annualTurnoverBandType.Greaterthanonemillionpounds && !vatRegistered && eeePlacedOnMarketBand == eeePlacedOnMarketBandType.Morethanorequalto5TEEEplacedonmarket) { return ChargeBand.D; } else { return ChargeBand.C; } } }
public async void GetProducerChargeBand_UKEngland_Morethanorequalto5TEEEplacedonmarket_VATRegistered_ChargeBandA2ShouldBeRetrieved() { //Arrange var countryType = new countryType(); var eeePlacedOnMarketBandType = new eeePlacedOnMarketBandType(); var annualTurnoverBandType = new annualTurnoverBandType(); var producer = SetUpProducer(countryType, eeePlacedOnMarketBandType, annualTurnoverBandType, true); // Act var result = await environmentAgencyProducerChargeBandCalculator.GetProducerChargeBand(A.Dummy <schemeType>(), producer); // Assert A.CallTo(() => fetchProducerCharge.GetCharge(ChargeBand.A2)).MustHaveHappened(Repeated.Exactly.Once); }
public async void GetProducerChargeBand_UKNorthernIreland_Morethanorequalto5TEEEplacedonmarket_GreaterthanonemillionpoundsTurnover_NotVATRegistered_ChargeBandDShouldBeRetrieved() { //Arrange var countryType = new countryType(); var eeePlacedOnMarketBandType = new eeePlacedOnMarketBandType(); var annualTurnoverBandType = new annualTurnoverBandType(); countryType = countryType.UKNORTHERNIRELAND; annualTurnoverBandType = annualTurnoverBandType.Greaterthanonemillionpounds; var producer = SetUpProducer(countryType, eeePlacedOnMarketBandType, annualTurnoverBandType, false); // Act var result = await environmentAgencyProducerChargeBandCalculator.GetProducerChargeBand(A.Dummy <schemeType>(), producer); // Assert A.CallTo(() => fetchProducerCharge.GetCharge(ChargeBand.D)).MustHaveHappened(Repeated.Exactly.Once); }
public async void GetProducerChargeBand_UKEngland_Morethanorequalto5TEEEplacedonmarket_VATRegistered__ProducerChargeForChargeBandShouldBeReturned() { //Arrange var countryType = new countryType(); var eeePlacedOnMarketBandType = new eeePlacedOnMarketBandType(); var annualTurnoverBandType = new annualTurnoverBandType(); var producerCharge = new ProducerCharge(); var producer = SetUpProducer(countryType, eeePlacedOnMarketBandType, annualTurnoverBandType, true); A.CallTo(() => fetchProducerCharge.GetCharge(ChargeBand.A2)).Returns(producerCharge); // Act var result = await environmentAgencyProducerChargeBandCalculator.GetProducerChargeBand(A.Dummy <schemeType>(), producer); // Assert Assert.Equal(producerCharge, result); }
private void InstantiateProducerParameters() { TradingName = "Test trading name"; scheme = A.Fake <Scheme>(); MemberUpload = new MemberUpload( A.Dummy <Guid>(), A.Dummy <string>(), A.Dummy <List <MemberUploadError> >(), A.Dummy <decimal>(), A.Dummy <int>(), scheme, A.Dummy <string>(), A.Dummy <string>(), A.Dummy <bool>()); ProducerCharges = new Dictionary <string, ProducerCharge>(); ProducerCharges.Add(TradingName, new ProducerCharge() { ChargeBandAmount = new ChargeBandAmount() }); GeneratedPrns = new Queue <string>(); A.CallTo(() => DataAccess.ComputePrns(A <int> ._)).Returns(GeneratedPrns); BrandNames = Enumerable.Empty <string>().ToArray(); SicCodes = Enumerable.Empty <string>().ToArray(); ProducerBusiness = new producerBusinessType() { correspondentForNotices = new optionalContactDetailsContainerType() { }, Item = new companyType() { registeredOffice = new contactDetailsContainerType() { contactDetails = new contactDetailsType() { address = new addressType() { country = countryType.UKENGLAND } } } } }; AuthorisedRepresentative = null; EEEPlacedOnMarketBandType = eeePlacedOnMarketBandType.Lessthan5TEEEplacedonmarket; SellingTechnique = sellingTechniqueType.Both; ObligationType = obligationTypeType.Both; AnnualTurnoverBandType = annualTurnoverBandType.Greaterthanonemillionpounds; CeaseDate = null; RegistrationNumber = "TestRegistrationNumber"; AnnualTurnover = 10; VatRegistered = false; Status = statusType.I; }
private void InstantiateProducerParameters() { TradingName = "Test trading name"; scheme = A.Fake<Scheme>(); MemberUpload = new MemberUpload( A.Dummy<Guid>(), A.Dummy<string>(), A.Dummy<List<MemberUploadError>>(), A.Dummy<decimal>(), A.Dummy<int>(), scheme, A.Dummy<string>(), A.Dummy<string>()); ProducerCharges = new Dictionary<string, ProducerCharge>(); ProducerCharges.Add(TradingName, new ProducerCharge() { ChargeBandAmount = new ChargeBandAmount() }); GeneratedPrns = new Queue<string>(); A.CallTo(() => DataAccess.ComputePrns(A<int>._)).Returns(GeneratedPrns); BrandNames = Enumerable.Empty<string>().ToArray(); SicCodes = Enumerable.Empty<string>().ToArray(); ProducerBusiness = new producerBusinessType() { correspondentForNotices = new optionalContactDetailsContainerType() { }, Item = new companyType() { registeredOffice = new contactDetailsContainerType() { contactDetails = new contactDetailsType() { address = new addressType() { country = countryType.UKENGLAND } } } } }; AuthorisedRepresentative = null; EEEPlacedOnMarketBandType = eeePlacedOnMarketBandType.Lessthan5TEEEplacedonmarket; SellingTechnique = sellingTechniqueType.Both; ObligationType = obligationTypeType.Both; AnnualTurnoverBandType = annualTurnoverBandType.Greaterthanonemillionpounds; CeaseDate = null; RegistrationNumber = "TestRegistrationNumber"; AnnualTurnover = 10; VatRegistered = false; Status = statusType.I; }