private async Task CreateReturnToCopy(DateTime?approvalDate = null) { organisation = Organisation.CreateSoleTrader("Test Organisation"); var quarter = new Quarter(2019, QuarterType.Q1); @return = new Domain.AatfReturn.Return(organisation, quarter, database.Model.AspNetUsers.First().Id, FacilityType.Aatf) { ReturnStatus = ReturnStatus.Submitted }; database.WeeeContext.Returns.Add(@return); await database.WeeeContext.SaveChangesAsync(); await AddReturnReportsOn(); await AddReturnScheme(); await AddNonObligated(); await AddWeeeReceived(approvalDate); await AddWeeSentOn(approvalDate); await AddWeeeReused(approvalDate); }
private async Task ActionAndAssertApprovalDate(Action <Guid> assertion, DateTime?approvalDate, DateTime windowStartDate) { using (database = new DatabaseWrapper()) { var helper = new ModelHelper(database.Model); var domainHelper = new DomainHelper(database.WeeeContext); var userContext = A.Fake <IUserContext>(); A.CallTo(() => userContext.UserId).Returns(Guid.Parse(database.Model.AspNetUsers.First().Id)); A.CallTo(() => quarterWindowFactory.GetQuarterWindow(A <Quarter> ._)) .Returns(new Domain.DataReturns.QuarterWindow(windowStartDate, windowStartDate.AddDays(1), QuarterType.Q1)); await CreateReturnToCopy(approvalDate); var message = new CopyReturn(@return.Id); var authorization = new AuthorizationBuilder().AllowEverything().Build(); handler = new CopyReturnHandler(authorization, database.WeeeContext, userContext, quarterWindowFactory); var result = await handler.HandleAsync(message); @return = database.WeeeContext.Returns.AsNoTracking().First(r => r.Id == message.ReturnId); copiedReturn = database.WeeeContext.Returns.First(r => r.Id == result); assertion(result); } }
private async Task ArrangeActAndCallAssertions(Action <Guid> assertions) { using (database = new DatabaseWrapper()) { // Arrange var helper = new ModelHelper(database.Model); var domainHelper = new DomainHelper(database.WeeeContext); var userContext = A.Fake <IUserContext>(); A.CallTo(() => userContext.UserId).Returns(Guid.Parse(database.Model.AspNetUsers.First().Id)); await CreateReturnToCopy(DateTime.Now); var message = new CopyReturn(@return.Id); var authorization = new AuthorizationBuilder().AllowEverything().Build(); handler = new CopyReturnHandler(authorization, database.WeeeContext, userContext, quarterWindowFactory); // Act var result = await handler.HandleAsync(message); @return = database.WeeeContext.Returns.AsNoTracking().First(r => r.Id == message.ReturnId); copiedReturn = database.WeeeContext.Returns.First(r => r.Id == result); // Assert assertions(result); } }
private static async Task CreateWeeeSentOnAmounts( ObligatedSentOnDataAccess dataAccess, Return @return, Aatf aatf, AatfAddress siteAddress, AatfAddress operatorAddress) { var weeeSentOn = new WeeeSentOn(operatorAddress, siteAddress, aatf, @return); var weeeSentOnAmount = new List <WeeeSentOnAmount>(); foreach (var category in Enum.GetValues(typeof(WeeeCategory)).Cast <WeeeCategory>()) { weeeSentOnAmount.Add(new WeeeSentOnAmount(weeeSentOn, (int)category, (decimal?)category, (decimal?)category + 1)); } await dataAccess.Submit(weeeSentOnAmount); }
private static async Task CreateWeeeReusedAmounts( ObligatedReusedDataAccess obligatedReusedDataAccess, AatfSiteDataAccess aatfSiteDataAccess, Return @return, Aatf aatf, AatfAddress address) { var weeeReused = new WeeeReused(aatf.Id, @return.Id); var weeeReusedAmount = new List <WeeeReusedAmount>(); foreach (var category in Enum.GetValues(typeof(WeeeCategory)).Cast <WeeeCategory>()) { weeeReusedAmount.Add(new WeeeReusedAmount(weeeReused, (int)category, (int)category, (int)category + 1)); } var weeeReusedSite = new WeeeReusedSite(weeeReused, address); await obligatedReusedDataAccess.Submit(weeeReusedAmount); await aatfSiteDataAccess.Submit(weeeReusedSite); }
private static async Task CreateWeeeReceivedAmounts( ObligatedReceivedDataAccess dataAccess, ReturnSchemeDataAccess returnSchemeDataAccess, Return @return, Aatf aatf, Scheme scheme) { var returnScheme = new ReturnScheme(scheme, @return); var weeeReceived = new WeeeReceived(scheme, aatf, @return); var weeeReceivedAmount = new List <WeeeReceivedAmount>(); foreach (var category in Enum.GetValues(typeof(WeeeCategory)).Cast <WeeeCategory>()) { weeeReceivedAmount.Add(new WeeeReceivedAmount(weeeReceived, (int)category, (int)category, (int)category + 1)); } await returnSchemeDataAccess.Submit(new List <ReturnScheme> { returnScheme }); await dataAccess.Submit(weeeReceivedAmount); }
private static async Task CreateNonObligatedWeee(NonObligatedDataAccess dataAccess, Return @return) { var nonObligatedWee = new List <NonObligatedWeee>(); foreach (var category in Enum.GetValues(typeof(WeeeCategory)).Cast <WeeeCategory>()) { nonObligatedWee.Add(new NonObligatedWeee(@return, (int)category, false, (decimal?)category)); } foreach (var category in Enum.GetValues(typeof(WeeeCategory)).Cast <WeeeCategory>()) { nonObligatedWee.Add(new NonObligatedWeee(@return, (int)category, true, (decimal?)category)); } await dataAccess.Submit(nonObligatedWee); }
private static async Task <(List <WeeeReused> submittedWeeeReused, List <AatfAddress> submittedWeeeReusedAddresses, List <WeeeReusedAmount> submittedWeeeReusedAmounts, List <WeeeReusedSite> submittedWeeeReusedSites)> RetrieveSubmittedWeeeReusedData(WeeeContext context, Return @return, GenericDataAccess dataAccess) { var submittedWeeeReused = context.WeeeReused.Where(w => w.ReturnId == @return.Id).ToList(); var submittedWeeeReusedAddresses = new List <AatfAddress>(); var submittedWeeeReusedAmounts = new List <WeeeReusedAmount>(); var submittedWeeeReusedSites = new List <WeeeReusedSite>(); foreach (var weeeReused in submittedWeeeReused) { submittedWeeeReusedAmounts.AddRange( await dataAccess.GetManyByExpression(new WeeeReusedAmountByWeeeReusedIdSpecification(weeeReused.Id))); submittedWeeeReusedSites.AddRange( await dataAccess.GetManyByExpression(new WeeeReusedSiteByWeeeReusedIdSpecification(weeeReused.Id))); } foreach (var site in submittedWeeeReusedSites) { submittedWeeeReusedAddresses.Add(site.Address); } return(submittedWeeeReused, submittedWeeeReusedAddresses, submittedWeeeReusedAmounts, submittedWeeeReusedSites); }
private static async Task <(List <WeeeReceived> submittedWeeeReceived, List <ReturnScheme> submittedWeeeReturnScheme, List <WeeeReceivedAmount> submittedWeeeReceivedAmounts)> RetrieveSubmittedWeeeReceivedData(WeeeContext context, Return @return, GenericDataAccess dataAccess) { var submittedWeeeReceived = context.WeeeReceived.Where(w => w.ReturnId == @return.Id).ToList(); var submittedWeeeReturnScheme = context.ReturnScheme.Where(w => w.Return.Id == @return.Id).ToList(); var submittedWeeeReceivedAmounts = new List <WeeeReceivedAmount>(); foreach (var weeeReceived in submittedWeeeReceived) { submittedWeeeReceivedAmounts.AddRange( await dataAccess.GetManyByExpression(new WeeeReceivedAmountByWeeeReceivedIdSpecification(weeeReceived.Id))); } return(submittedWeeeReceived, submittedWeeeReturnScheme, submittedWeeeReceivedAmounts); }
private static async Task <(List <WeeeSentOn> submittedWeeeSentOn, List <AatfAddress> submittedWeeeSentOnAddresses, List <WeeeSentOnAmount> submittedWeeeSentOnAmounts)> RetrieveSubmittedWeeeSentOnData(WeeeContext context, Return @return, GenericDataAccess dataAccess) { var submittedWeeeSentOn = context.WeeeSentOn.Where(w => w.ReturnId == @return.Id).ToList(); var submittedWeeeSentOnAddresses = new List <AatfAddress>(); var submittedWeeeSentOnAmounts = new List <WeeeSentOnAmount>(); foreach (var weeeSentOn in submittedWeeeSentOn) { submittedWeeeSentOnAmounts.AddRange( await dataAccess.GetManyByExpression(new WeeeSentOnAmountByWeeeSentOnIdSpecification(weeeSentOn.Id))); if (weeeSentOn.OperatorAddress != null) { submittedWeeeSentOnAddresses.Add(weeeSentOn.OperatorAddress); } submittedWeeeSentOnAddresses.Add(weeeSentOn.SiteAddress); } return(submittedWeeeSentOn, submittedWeeeSentOnAddresses, submittedWeeeSentOnAmounts); }