public async Task FetchObligatedWeeeForReturn_ReturnedListShouldContainAllTonnagesFromRequest() { using (var database = new DatabaseWrapper()) { var companyName = "Test Name" + Guid.NewGuid(); var tradingName = "Test Trading Name" + Guid.NewGuid(); const string companyRegistrationNumber = "ABC12345"; var organisation = Organisation.CreateRegisteredCompany(companyName, companyRegistrationNumber, tradingName); var @return = new Return(organisation, new Quarter(2019, QuarterType.Q1), database.Model.AspNetUsers.First().Id, FacilityType.Aatf); var aatf = ObligatedWeeeIntegrationCommon.CreateAatf(database, organisation); database.WeeeContext.Organisations.Add(organisation); database.WeeeContext.Aatfs.Add(aatf); database.WeeeContext.Returns.Add(@return); await database.WeeeContext.SaveChangesAsync(); var addObligatedReusedDataAccess = new ObligatedReusedDataAccess(database.WeeeContext); var categoryValues = new List <ObligatedValue>(); var weeeReused = new WeeeReused(aatf.Id, @return.Id); foreach (var category in Enum.GetValues(typeof(WeeeCategory)).Cast <WeeeCategory>()) { categoryValues.Add(new ObligatedValue(Guid.NewGuid(), (int)category, (int)category, (int)category)); } var obligatedReusedRequest = new AddObligatedReused() { AatfId = aatf.Id, ReturnId = @return.Id, OrganisationId = organisation.Id, CategoryValues = categoryValues }; var weeeReusedAmount = new List <WeeeReusedAmount>(); foreach (var categoryValue in obligatedReusedRequest.CategoryValues) { weeeReusedAmount.Add(new WeeeReusedAmount(weeeReused, categoryValue.CategoryId, categoryValue.HouseholdTonnage, categoryValue.NonHouseholdTonnage)); } var obligateReusedDataAccess = new ObligatedReusedDataAccess(database.WeeeContext); await obligateReusedDataAccess.Submit(weeeReusedAmount); var fetchDataAccess = new FetchObligatedWeeeForReturnDataAccess(database.WeeeContext); var reusedTonnageList = await fetchDataAccess.FetchObligatedWeeeReusedForReturn(@return.Id); var reusedNonHouseholdList = reusedTonnageList.Select(t => t.NonHouseholdTonnage); var reusedHouseholdList = reusedTonnageList.Select(t => t.HouseholdTonnage); foreach (var category in weeeReusedAmount) { reusedNonHouseholdList.Should().Contain(category.NonHouseholdTonnage); reusedHouseholdList.Should().Contain(category.HouseholdTonnage); } } }
public async Task Execute_GivenAatfsWithReusedAndSubmittedReturn_DataShouldBeReturned() { using (var db = new DatabaseWrapper()) { var @return = SetupSubmittedReturn(db); var aatf = ObligatedWeeeIntegrationCommon.CreateAatf(db, organisation); aatf.UpdateDetails("AAA", aatf.CompetentAuthority, aatf.ApprovalNumber, aatf.AatfStatus, aatf.Organisation, aatf.Size, aatf.ApprovalDate, aatf.LocalArea, aatf.PanArea); var aatf2 = ObligatedWeeeIntegrationCommon.CreateAatf(db, organisation); aatf2.UpdateDetails("AAB", aatf.CompetentAuthority, aatf.ApprovalNumber, aatf.AatfStatus, aatf.Organisation, aatf.Size, aatf.ApprovalDate, aatf.LocalArea, aatf.PanArea); var weeeReused1Aatf1 = new WeeeReused(aatf, @return); var weeeReused1Aatf2 = new WeeeReused(aatf2, @return); foreach (var categoryValue in CategoryValues()) { db.WeeeContext.WeeeReusedAmount.Add(new Domain.AatfReturn.WeeeReusedAmount(weeeReused1Aatf1, categoryValue.CategoryId, categoryValue.CategoryId, categoryValue.CategoryId + 1)); db.WeeeContext.WeeeReusedAmount.Add(new Domain.AatfReturn.WeeeReusedAmount(weeeReused1Aatf2, categoryValue.CategoryId, categoryValue.CategoryId, categoryValue.CategoryId + 1)); } db.WeeeContext.ReturnAatfs.Add(new ReturnAatf(aatf, @return)); db.WeeeContext.ReturnAatfs.Add(new ReturnAatf(aatf2, @return)); db.WeeeContext.Returns.Add(@return); await db.WeeeContext.SaveChangesAsync(); db.WeeeContext.ReturnReportOns.Add(new Domain.AatfReturn.ReturnReportOn(@return.Id, 3)); await db.WeeeContext.SaveChangesAsync(); var results = await db.StoredProcedures.GetReturnObligatedCsvData(@return.Id); results.Rows.Count.Should().Be(56); foreach (var categoryValue in CategoryValues()) { var houseHoldResultAatf1 = results.Select($"AatfKey='{aatf.Id}' AND CategoryId={categoryValue.CategoryId} AND [Obligation Type]='{B2C}'"); var nonHouseHoldResultAatf1 = results.Select($"AatfKey='{aatf.Id}' AND CategoryId={categoryValue.CategoryId} AND [Obligation Type]='{B2B}'"); houseHoldResultAatf1[0][TotalReusedHeading].Should().Be(categoryValue.CategoryId); nonHouseHoldResultAatf1[0][TotalReusedHeading].Should().Be((categoryValue.CategoryId + 1)); var houseHoldResultAatf2 = results.Select($"AatfKey='{aatf2.Id}' AND CategoryId={categoryValue.CategoryId} AND [Obligation Type]='{B2C}'"); var nonHouseHoldResultAatf2 = results.Select($"AatfKey='{aatf2.Id}' AND CategoryId={categoryValue.CategoryId} AND [Obligation Type]='{B2B}'"); houseHoldResultAatf2[0][TotalReusedHeading].Should().Be(categoryValue.CategoryId); nonHouseHoldResultAatf2[0][TotalReusedHeading].Should().Be((categoryValue.CategoryId + 1)); } results.Dispose(); } }
public async Task Execute_GivenAatfsWithReusedAndCreatedReturn_DataShouldBeReturned() { using (var db = new DatabaseWrapper()) { var @return = SetupCreatedReturn(db); var aatf = SetupAatfWithApprovalDate(db, DateTime.MinValue, "AAA"); var aatf2 = SetupAatfWithApprovalDate(db, DateTime.MinValue, "AAB"); var weeeReused1Aatf1 = new WeeeReused(aatf, @return); var weeeReused1Aatf2 = new WeeeReused(aatf2, @return); foreach (var categoryValue in CategoryValues()) { db.WeeeContext.WeeeReusedAmount.Add(new Domain.AatfReturn.WeeeReusedAmount(weeeReused1Aatf1, categoryValue.CategoryId, categoryValue.CategoryId, categoryValue.CategoryId + 1)); db.WeeeContext.WeeeReusedAmount.Add(new Domain.AatfReturn.WeeeReusedAmount(weeeReused1Aatf2, categoryValue.CategoryId, categoryValue.CategoryId, categoryValue.CategoryId + 1)); } db.WeeeContext.Returns.Add(@return); await db.WeeeContext.SaveChangesAsync(); db.WeeeContext.ReturnReportOns.Add(new Domain.AatfReturn.ReturnReportOn(@return.Id, 3)); await db.WeeeContext.SaveChangesAsync(); var results = await db.StoredProcedures.GetReturnObligatedCsvData(@return.Id); results.Rows.Count.Should().Be(56); foreach (var categoryValue in CategoryValues()) { var houseHoldResultAatf1 = results.Select($"AatfKey='{aatf.Id}' AND CategoryId={categoryValue.CategoryId} AND [Obligation Type]='{B2C}'"); var nonHouseHoldResultAatf1 = results.Select($"AatfKey='{aatf.Id}' AND CategoryId={categoryValue.CategoryId} AND [Obligation Type]='{B2B}'"); houseHoldResultAatf1[0][TotalReusedHeading].Should().Be(categoryValue.CategoryId); nonHouseHoldResultAatf1[0][TotalReusedHeading].Should().Be((categoryValue.CategoryId + 1)); var houseHoldResultAatf2 = results.Select($"AatfKey='{aatf2.Id}' AND CategoryId={categoryValue.CategoryId} AND [Obligation Type]='{B2C}'"); var nonHouseHoldResultAatf2 = results.Select($"AatfKey='{aatf2.Id}' AND CategoryId={categoryValue.CategoryId} AND [Obligation Type]='{B2B}'"); houseHoldResultAatf2[0][TotalReusedHeading].Should().Be(categoryValue.CategoryId); nonHouseHoldResultAatf2[0][TotalReusedHeading].Should().Be((categoryValue.CategoryId + 1)); } results.Dispose(); } }