private RegisteredProducer CreateRegisteredProducer(Scheme scheme, int complianceYear, string registrationNumber, string organisationName) { var registeredProducer = new RegisteredProducer(registrationNumber, complianceYear, scheme); var producerSubmission = A.Fake <ProducerSubmission>(); A.CallTo(() => producerSubmission.OrganisationName) .Returns(organisationName); A.CallTo(() => producerSubmission.RegisteredProducer) .Returns(registeredProducer); registeredProducer.SetCurrentSubmission(producerSubmission); return(registeredProducer); }
private ProducerSubmission Build() { Scheme scheme = new Scheme( A.Dummy <Guid>()); var memberUpload = new MemberUpload( A.Dummy <Guid>(), A.Dummy <string>(), A.Dummy <List <MemberUploadError> >(), A.Dummy <decimal>(), 2017, scheme, A.Dummy <string>(), A.Dummy <string>()); var updatedDate = A.Dummy <DateTime>(); RegisteredProducer registeredProducer = new RegisteredProducer( registrationNumber, 2017, scheme); ProducerSubmission producerSubmission = new ProducerSubmission( registeredProducer, memberUpload, producerBusiness, authorisedRepresentative, updatedDate, annualTurnover, vatRegistered, ceaseToExist, tradingName, eeePlacedOnMarketBandType, sellingTechniqueType, obligationType, annualTurnOverBandType, brandNames, sicCodes, chargeBandAmount, (decimal)5.0, status); registeredProducer.SetCurrentSubmission(producerSubmission); return(producerSubmission); }
private RegisteredProducer RegisteredProducer(int complianceYear, bool currentSubmissionNUll = false) { var scheme = A.Fake <Scheme>(); A.CallTo(() => scheme.ApprovalNumber).Returns(SchemeApprovalNumber); var memberUpload = A.Fake <MemberUpload>(); A.CallTo(() => memberUpload.Scheme).Returns(scheme); A.CallTo(() => memberUpload.ComplianceYear).Returns(complianceYear); var registered = new RegisteredProducer(ProducerRegistrationNumber, complianceYear, scheme); var sub = new ProducerSubmission(registered, memberUpload, A.Dummy <ProducerBusiness>(), A.Dummy <AuthorisedRepresentative>(), A.Dummy <DateTime>(), A.Dummy <decimal?>(), A.Dummy <bool>(), A.Dummy <DateTime?>(), A.Dummy <string>(), EEEPlacedOnMarketBandType.Lessthan5TEEEplacedonmarket, SellingTechniqueType.DirectSellingtoEndUser, ObligationType.B2B, AnnualTurnOverBandType.Greaterthanonemillionpounds, A.Dummy <List <BrandName> >(), A.Dummy <List <SICCode> >(), A.Dummy <ChargeBandAmount>(), 0, StatusType.Insert); if (!currentSubmissionNUll) { registered.SetCurrentSubmission(sub); } return(registered); }
public async Task HandleAsync_HappyPath_ReturnsProducerDetailsSchemeObjectWithPerfectValue() { // Arrange Scheme scheme = new Scheme( A.Dummy<Guid>()); MemberUpload memberUpload = new MemberUpload( A.Dummy<Guid>(), A.Dummy<string>(), A.Dummy<List<MemberUploadError>>(), A.Dummy<decimal>(), 2017, scheme, A.Dummy<string>(), A.Dummy<string>()); RegisteredProducer registeredProducer = new RegisteredProducer( "WEE/AA1111AA", 2017, scheme); var producer = new ProducerSubmission( registeredProducer, memberUpload, new EA.Weee.Domain.Producer.ProducerBusiness( new Company("CompanyName", "RegisteredNo", new ProducerContact(A.Dummy<string>(), A.Dummy<string>(), A.Dummy<string>(), A.Dummy<string>(), A.Dummy<string>(), A.Dummy<string>(), A.Dummy<string>(), new ProducerAddress(A.Dummy<string>(), A.Dummy<string>(), A.Dummy<string>(), A.Dummy<string>(), A.Dummy<string>(), A.Dummy<string>(), new Country(Guid.NewGuid(), A.Dummy<string>()), A.Dummy<string>())))), null, new DateTime(2015, 1, 1), 0, false, null, "Trading Name 1", EEEPlacedOnMarketBandType.Lessthan5TEEEplacedonmarket, SellingTechniqueType.Both, Domain.Obligation.ObligationType.Both, AnnualTurnOverBandType.Greaterthanonemillionpounds, new List<Domain.Producer.BrandName>(), new List<Domain.Producer.SICCode>(), A.Dummy<ChargeBandAmount>(), 0); registeredProducer.SetCurrentSubmission(producer); registeredProducer.Scheme.UpdateScheme("SchemeName", "WEE/FA9999KE/SCH", "test", ObligationType.B2B, Guid.NewGuid()); IGetProducerDetailsByRegisteredProducerIdDataAccess dataAccess = A.Fake<IGetProducerDetailsByRegisteredProducerIdDataAccess>(); A.CallTo(() => dataAccess.Fetch(registeredProducer.Id)) .Returns(registeredProducer); IWeeeAuthorization authorization = AuthorizationBuilder.CreateUserWithAllRights(); GetProducerDetailsByRegisteredProducerIdHandler handler = new GetProducerDetailsByRegisteredProducerIdHandler(dataAccess, authorization); Requests.Admin.GetProducerDetailsByRegisteredProducerId request = new Requests.Admin.GetProducerDetailsByRegisteredProducerId(registeredProducer.Id); // Act ProducerDetailsScheme result = await handler.HandleAsync(request); // Assert Assert.Equal(result.ComplianceYear, registeredProducer.ComplianceYear); Assert.Equal(result.ProducerName, registeredProducer.CurrentSubmission.OrganisationName); Assert.Equal(result.SchemeName, registeredProducer.Scheme.SchemeName); Assert.Equal(result.RegistrationNumber, registeredProducer.ProducerRegistrationNumber); }
public async Task HandleAsync_WithDataReturnWithNoEee_SetsHasSubmittedEEEToFalse() { // Arrange IWeeeAuthorization authorization = AuthorizationBuilder.CreateUserWithAllRights(); Organisation organisation = Organisation.CreateSoleTrader("Trading Name"); Scheme scheme = new Scheme(organisation); RegisteredProducer registeredProducer = new RegisteredProducer("WEE/AA1111AA", 2016, scheme); Guid registeredProducerId = new Guid("75B6B4E7-BA92-477D-A6CA-C43C8C0E9823"); typeof(Entity).GetProperty("Id").SetValue(registeredProducer, registeredProducerId); MemberUpload memberUpload = new MemberUpload( A.Dummy<Guid>(), "data", new List<MemberUploadError>(), 0, 2016, scheme, "file.xml", "UserID"); ProducerSubmission producerSubmission = new ProducerSubmission( registeredProducer, memberUpload, A.Dummy<ProducerBusiness>(), A.Dummy<AuthorisedRepresentative>(), A.Dummy<DateTime>(), A.Dummy<decimal?>(), A.Dummy<bool>(), A.Dummy<DateTime?>(), A.Dummy<string>(), A.Dummy<EEEPlacedOnMarketBandType>(), A.Dummy<SellingTechniqueType>(), A.Dummy<ObligationType>(), A.Dummy<AnnualTurnOverBandType>(), A.Dummy<List<BrandName>>(), A.Dummy<List<SICCode>>(), A.Dummy<ChargeBandAmount>(), A.Dummy<decimal>()); registeredProducer.SetCurrentSubmission(producerSubmission); DataReturn dataReturn = new DataReturn(scheme, new Quarter(2016, QuarterType.Q4)); DataReturnVersion dataReturnVersion = new DataReturnVersion(dataReturn); dataReturnVersion.Submit("UserID"); IGetProducerDetailsByRegisteredProducerIdDataAccess dataAccess = A.Fake<IGetProducerDetailsByRegisteredProducerIdDataAccess>(); A.CallTo(() => dataAccess.Fetch(registeredProducerId)).Returns(registeredProducer); A.CallTo(() => dataAccess.FetchDataReturns(scheme, 2016)).Returns(new List<DataReturn>() { dataReturn }); GetProducerDetailsByRegisteredProducerIdHandler handler = new GetProducerDetailsByRegisteredProducerIdHandler(dataAccess, authorization); // Act GetProducerDetailsByRegisteredProducerId request = new GetProducerDetailsByRegisteredProducerId(registeredProducerId); ProducerDetailsScheme result = await handler.HandleAsync(request); // Assert Assert.Equal(false, result.HasSubmittedEEE); }
private ProducerSubmission Build() { Scheme scheme = new Scheme( A.Dummy<Guid>()); var memberUpload = new MemberUpload( A.Dummy<Guid>(), A.Dummy<string>(), A.Dummy<List<MemberUploadError>>(), A.Dummy<decimal>(), 2017, scheme, A.Dummy<string>(), A.Dummy<string>()); var updatedDate = A.Dummy<DateTime>(); RegisteredProducer registeredProducer = new RegisteredProducer( registrationNumber, 2017, scheme); ProducerSubmission producerSubmission = new ProducerSubmission( registeredProducer, memberUpload, producerBusiness, authorisedRepresentative, updatedDate, annualTurnover, vatRegistered, ceaseToExist, tradingName, eeePlacedOnMarketBandType, sellingTechniqueType, obligationType, annualTurnOverBandType, brandNames, sicCodes, chargeBandAmount, (decimal)5.0); registeredProducer.SetCurrentSubmission(producerSubmission); return producerSubmission; }
public async Task HandleAync_ReturnsTrueForCanRemoveProducer_WhenCurrentUserIsInternalAdmin() { Scheme scheme = new Scheme(A.Dummy <Guid>()); MemberUpload memberUpload = new MemberUpload( A.Dummy <Guid>(), A.Dummy <string>(), A.Dummy <List <MemberUploadError> >(), A.Dummy <decimal>(), 2017, scheme, A.Dummy <string>(), A.Dummy <string>()); RegisteredProducer registeredProducer = new RegisteredProducer( "WEE/AA1111AA", 2017, scheme); var producer = new ProducerSubmission( registeredProducer, memberUpload, CreatePartnershipBusiness(), null, new DateTime(2015, 1, 1), 0, false, null, "Trading Name 1", EEEPlacedOnMarketBandType.Lessthan5TEEEplacedonmarket, SellingTechniqueType.Both, Domain.Obligation.ObligationType.Both, AnnualTurnOverBandType.Greaterthanonemillionpounds, new List <BrandName>(), new List <SICCode>(), A.Dummy <ChargeBandAmount>(), 0, A.Dummy <StatusType>()); registeredProducer.SetCurrentSubmission(producer); IGetProducerDetailsDataAccess dataAccess = A.Fake <IGetProducerDetailsDataAccess>(); A.CallTo(() => dataAccess.Fetch(A <string> ._, A <int> ._)) .Returns(new List <ProducerSubmission> { producer }); IWeeeAuthorization authorization = A.Fake <IWeeeAuthorization>(); A.CallTo(() => authorization.CheckUserInRole(Roles.InternalAdmin)) .Returns(true); IMapper mapper = A.Fake <IMapper>(); GetProducerDetailsHandler handler = new GetProducerDetailsHandler(dataAccess, authorization, mapper); var result = await handler.HandleAsync(A.Dummy <GetProducerDetails>()); Assert.True(result.CanRemoveProducer); A.CallTo(() => authorization.CheckUserInRole(Roles.InternalAdmin)) .MustHaveHappened(); }
public async Task HandleAsync_HappyPath_ReturnsProducerDetailsSchemeObjectWithPerfectValue() { // Arrange Scheme scheme = new Scheme( A.Dummy <Guid>()); MemberUpload memberUpload = new MemberUpload( A.Dummy <Guid>(), A.Dummy <string>(), A.Dummy <List <MemberUploadError> >(), A.Dummy <decimal>(), 2017, scheme, A.Dummy <string>(), A.Dummy <string>()); RegisteredProducer registeredProducer = new RegisteredProducer( "WEE/AA1111AA", 2017, scheme); var producer = new ProducerSubmission( registeredProducer, memberUpload, new EA.Weee.Domain.Producer.ProducerBusiness( new Company("CompanyName", "RegisteredNo", new ProducerContact(A.Dummy <string>(), A.Dummy <string>(), A.Dummy <string>(), A.Dummy <string>(), A.Dummy <string>(), A.Dummy <string>(), A.Dummy <string>(), new ProducerAddress(A.Dummy <string>(), A.Dummy <string>(), A.Dummy <string>(), A.Dummy <string>(), A.Dummy <string>(), A.Dummy <string>(), new Country(Guid.NewGuid(), A.Dummy <string>()), A.Dummy <string>())))), null, new DateTime(2015, 1, 1), 0, false, null, "Trading Name 1", EEEPlacedOnMarketBandType.Lessthan5TEEEplacedonmarket, SellingTechniqueType.Both, Domain.Obligation.ObligationType.Both, AnnualTurnOverBandType.Greaterthanonemillionpounds, new List <Domain.Producer.BrandName>(), new List <Domain.Producer.SICCode>(), A.Dummy <ChargeBandAmount>(), 0, A.Dummy <StatusType>()); registeredProducer.SetCurrentSubmission(producer); registeredProducer.Scheme.UpdateScheme("SchemeName", "WEE/FA9999KE/SCH", "test", ObligationType.B2B, Guid.NewGuid()); IGetProducerDetailsByRegisteredProducerIdDataAccess dataAccess = A.Fake <IGetProducerDetailsByRegisteredProducerIdDataAccess>(); A.CallTo(() => dataAccess.Fetch(registeredProducer.Id)) .Returns(registeredProducer); IWeeeAuthorization authorization = AuthorizationBuilder.CreateUserWithAllRights(); GetProducerDetailsByRegisteredProducerIdHandler handler = new GetProducerDetailsByRegisteredProducerIdHandler(dataAccess, authorization); Requests.Admin.GetProducerDetailsByRegisteredProducerId request = new Requests.Admin.GetProducerDetailsByRegisteredProducerId(registeredProducer.Id); // Act ProducerDetailsScheme result = await handler.HandleAsync(request); // Assert Assert.Equal(result.ComplianceYear, registeredProducer.ComplianceYear); Assert.Equal(result.ProducerName, registeredProducer.CurrentSubmission.OrganisationName); Assert.Equal(result.SchemeName, registeredProducer.Scheme.SchemeName); Assert.Equal(result.RegistrationNumber, registeredProducer.ProducerRegistrationNumber); }
public async Task HandleAsync_WithDataReturnWithNullEee_SetsHasSubmittedEEEToFalse() { // Arrange IWeeeAuthorization authorization = AuthorizationBuilder.CreateUserWithAllRights(); Organisation organisation = Organisation.CreateSoleTrader("Trading Name"); Scheme scheme = new Scheme(organisation); RegisteredProducer registeredProducer = new RegisteredProducer("WEE/AA1111AA", 2016, scheme); Guid registeredProducerId = new Guid("75B6B4E7-BA92-477D-A6CA-C43C8C0E9823"); typeof(Entity).GetProperty("Id").SetValue(registeredProducer, registeredProducerId); MemberUpload memberUpload = new MemberUpload( A.Dummy <Guid>(), "data", new List <MemberUploadError>(), 0, 2016, scheme, "file.xml", "UserID"); ProducerSubmission producerSubmission = new ProducerSubmission( registeredProducer, memberUpload, A.Dummy <ProducerBusiness>(), A.Dummy <AuthorisedRepresentative>(), A.Dummy <DateTime>(), A.Dummy <decimal?>(), A.Dummy <bool>(), A.Dummy <DateTime?>(), A.Dummy <string>(), A.Dummy <EEEPlacedOnMarketBandType>(), A.Dummy <SellingTechniqueType>(), A.Dummy <ObligationType>(), A.Dummy <AnnualTurnOverBandType>(), A.Dummy <List <BrandName> >(), A.Dummy <List <SICCode> >(), A.Dummy <ChargeBandAmount>(), A.Dummy <decimal>(), A.Dummy <StatusType>()); registeredProducer.SetCurrentSubmission(producerSubmission); DataReturn dataReturn = new DataReturn(scheme, new Quarter(2016, QuarterType.Q4)); DataReturnVersion dataReturnVersion = new DataReturnVersion(dataReturn, new WeeeCollectedReturnVersion(), new WeeeDeliveredReturnVersion(), null); dataReturnVersion.Submit("UserID"); IGetProducerDetailsByRegisteredProducerIdDataAccess dataAccess = A.Fake <IGetProducerDetailsByRegisteredProducerIdDataAccess>(); A.CallTo(() => dataAccess.Fetch(registeredProducerId)).Returns(registeredProducer); A.CallTo(() => dataAccess.FetchDataReturns(scheme, 2016)).Returns(new List <DataReturn>() { dataReturn }); GetProducerDetailsByRegisteredProducerIdHandler handler = new GetProducerDetailsByRegisteredProducerIdHandler(dataAccess, authorization); // Act GetProducerDetailsByRegisteredProducerId request = new GetProducerDetailsByRegisteredProducerId(registeredProducerId); ProducerDetailsScheme result = await handler.HandleAsync(request); // Assert Assert.Equal(false, result.HasSubmittedEEE); }