public async Task Execute_GivenNonSubmittedReturn_ReturnShouldNotBeReturned() { using (var db = new DatabaseWrapper()) { var @return = ObligatedWeeeIntegrationCommon.CreateReturn(null, db.Model.AspNetUsers.First().Id, FacilityType.Aatf); var aatf = ObligatedWeeeIntegrationCommon.CreateAatf(db, @return.Organisation); var scheme = ObligatedWeeeIntegrationCommon.CreateScheme(@return.Organisation); var weeeReceived = new EA.Weee.Domain.AatfReturn.WeeeReceived(scheme, aatf, @return); var weeeReceivedAmounts = new List <WeeeReceivedAmount>() { new Domain.AatfReturn.WeeeReceivedAmount(weeeReceived, 1, 1, 2), }; db.WeeeContext.Returns.Add(@return); db.WeeeContext.WeeeReceived.Add(weeeReceived); db.WeeeContext.WeeeReceivedAmount.AddRange(weeeReceivedAmounts); await db.WeeeContext.SaveChangesAsync(); var results = await db.StoredProcedures.GetAatfSubmissions(aatf.Id, aatf.ComplianceYear); results.Count.Should().Be(0); } }
public async Task Execute_GivenNullWeeeReceivedData_ReturnsWeeeReceivedAatfDataShouldBeNull() { using (var db = new DatabaseWrapper()) { var @return = CreateSubmittedReturn(db); var aatf = ObligatedWeeeIntegrationCommon.CreateAatf(db, @return.Organisation); var scheme = ObligatedWeeeIntegrationCommon.CreateScheme(@return.Organisation); var weeeReceived = new EA.Weee.Domain.AatfReturn.WeeeReceived(scheme, aatf, @return); var weeeReceivedAmounts = new List <WeeeReceivedAmount>() { new Domain.AatfReturn.WeeeReceivedAmount(weeeReceived, 1, null, null), new Domain.AatfReturn.WeeeReceivedAmount(weeeReceived, 2, null, null) }; db.WeeeContext.Returns.Add(@return); db.WeeeContext.ReturnAatfs.Add(new ReturnAatf(aatf, @return)); db.WeeeContext.WeeeReceived.Add(weeeReceived); db.WeeeContext.WeeeReceivedAmount.AddRange(weeeReceivedAmounts); await db.WeeeContext.SaveChangesAsync(); var results = await db.StoredProcedures.GetAatfSubmissions(aatf.Id, aatf.ComplianceYear); results.Count.Should().Be(1); results.ElementAt(0).WeeeReceivedHouseHold.Should().BeNull(); results.ElementAt(0).WeeeReceivedNonHouseHold.Should().BeNull(); AssertFixedPropertiesForReturn(results, db, @return); } }
public async Task RemoveReturnScheme_GivenSchemeIdsAndReturn_EntitiesShouldBeRemoved() { using (var database = new DatabaseWrapper()) { var helper = new ModelHelper(database.Model); var domainHelper = new DomainHelper(database.WeeeContext); var dataAccess = new ReturnSchemeDataAccess(database.WeeeContext); var @return = ObligatedWeeeIntegrationCommon.CreateReturn(null, database.Model.AspNetUsers.First().Id, FacilityType.Aatf); var aatf = ObligatedWeeeIntegrationCommon.CreateAatf(database, @return.Organisation); var scheme = new EA.Weee.Domain.Scheme.Scheme(@return.Organisation); var weeeReceived = new EA.Weee.Domain.AatfReturn.WeeeReceived(scheme, aatf, @return); var weeeReceivedAmounts = new Domain.AatfReturn.WeeeReceivedAmount(weeeReceived, 1, null, null); var returnScheme = new Domain.AatfReturn.ReturnScheme(scheme, @return); database.WeeeContext.Returns.Add(@return); database.WeeeContext.Organisations.Add(@return.Organisation); database.WeeeContext.Aatfs.Add(aatf); database.WeeeContext.Schemes.Add(scheme); database.WeeeContext.WeeeReceived.Add(weeeReceived); database.WeeeContext.WeeeReceivedAmount.Add(weeeReceivedAmounts); database.WeeeContext.ReturnScheme.Add(returnScheme); await database.WeeeContext.SaveChangesAsync(); await dataAccess.RemoveReturnScheme(new List <Guid>() { scheme.Id }, @return.Id); database.WeeeContext.ReturnScheme.Count(r => r.SchemeId == scheme.Id).Should().Be(0); database.WeeeContext.WeeeReceived.Count(r => r.SchemeId == scheme.Id).Should().Be(0); database.WeeeContext.WeeeReceivedAmount.Count(r => r.WeeeReceived.Id == weeeReceived.Id).Should().Be(0); database.WeeeContext.Schemes.Count(s => s.Id == scheme.Id).Should().Be(1); database.WeeeContext.Returns.Count(r => r.Id == @return.Id).Should().Be(1); } }
public async Task Execute_GivenWeeeReceivedData_ReturnsPcsAatfDiscrepancyDataShouldBeCorrect() { using (DatabaseWrapper db = new DatabaseWrapper()) { // Arrange Organisation organisation = Organisation.CreateSoleTrader("Test Organisation"); Domain.UKCompetentAuthority authority = db.WeeeContext.UKCompetentAuthorities.Single(c => c.Abbreviation == UKCompetentAuthorityAbbreviationType.EA); var year = 2019; Quarter quarter = new Quarter(year, QuarterType.Q1); Scheme scheme1 = new Scheme(organisation); scheme1.UpdateScheme("Test Scheme 1", "WEE/AH7453NF/SCH", "WEE9462846", Domain.Obligation.ObligationType.B2B, authority); scheme1.SetStatus(Domain.Scheme.SchemeStatus.Approved); Domain.DataReturns.DataReturn dataReturn1 = new Domain.DataReturns.DataReturn(scheme1, quarter); Domain.DataReturns.DataReturnVersion version1 = new Domain.DataReturns.DataReturnVersion(dataReturn1); Domain.DataReturns.WeeeDeliveredAmount amount1 = new Domain.DataReturns.WeeeDeliveredAmount( Domain.Obligation.ObligationType.B2B, WeeeCategory.LargeHouseholdAppliances, 123.456m, new AatfDeliveryLocation("WEE/AA1111AA/ATF", string.Empty)); db.WeeeContext.DataReturns.Add(dataReturn1); db.WeeeContext.DataReturnVersions.Add(version1); version1.WeeeDeliveredReturnVersion.AddWeeeDeliveredAmount(amount1); await db.WeeeContext.SaveChangesAsync(); dataReturn1.SetCurrentVersion(version1); await db.WeeeContext.SaveChangesAsync(); var @return = CreateSubmittedReturn(db, organisation); var aatf = new Aatf("aatfName", db.WeeeContext.UKCompetentAuthorities.First(), "WEE/AA1111AA/ATF", AatfStatus.Approved, organisation, AddressHelper.GetAatfAddress(db), AatfSize.Large, DateTime.Now, ObligatedWeeeIntegrationCommon.CreateDefaultContact(db.WeeeContext.Countries.First()), FacilityType.Aatf, (short)year, null, null); var weeeReceived = new EA.Weee.Domain.AatfReturn.WeeeReceived(scheme1, aatf, @return); var weeeReceivedAmounts = new List <WeeeReceivedAmount>() { new Domain.AatfReturn.WeeeReceivedAmount(weeeReceived, 1, 2, 10) }; db.WeeeContext.Returns.Add(@return); db.WeeeContext.ReturnAatfs.Add(new ReturnAatf(aatf, @return)); db.WeeeContext.WeeeReceived.Add(weeeReceived); db.WeeeContext.WeeeReceivedAmount.AddRange(weeeReceivedAmounts); await db.WeeeContext.SaveChangesAsync(); // Act var results = await db.StoredProcedures.GetPcsAatfComparisonDataCsvData(year, null, string.Empty); var record = results.First(x => x.AatfApprovalNumber == "WEE/AA1111AA/ATF" && x.ObligationType == "B2B"); //Assert Assert.NotNull(record); Assert.Equal("WEE/AA1111AA/ATF", record.AatfApprovalNumber); Assert.Equal(123.456m, record.PcsTonnage); Assert.Equal(10, record.AatfTonnage); Assert.Equal(113.456m, record.DifferenceTonnage); } }
public async Task Execute_GivenWeeeReceivedData_ReturnsWeeeReceivedAatfDataShouldBeCorrect() { using (var db = new DatabaseWrapper()) { var @return = CreateSubmittedReturn(db); var aatf = ObligatedWeeeIntegrationCommon.CreateAatf(db, @return.Organisation); var scheme = ObligatedWeeeIntegrationCommon.CreateScheme(@return.Organisation); scheme.UpdateScheme("TestScheme", "WEE/AB1234CD/SCH", string.Empty, null, aatf.CompetentAuthority); var weeeReceived = new EA.Weee.Domain.AatfReturn.WeeeReceived(scheme, aatf, @return); var weeeReceivedAmounts = new List <WeeeReceivedAmount>() { new Domain.AatfReturn.WeeeReceivedAmount(weeeReceived, 1, 1, 2), new Domain.AatfReturn.WeeeReceivedAmount(weeeReceived, 2, 3, 4) }; db.WeeeContext.Returns.Add(@return); db.WeeeContext.ReturnAatfs.Add(new ReturnAatf(aatf, @return)); db.WeeeContext.WeeeReceived.Add(weeeReceived); db.WeeeContext.WeeeReceivedAmount.AddRange(weeeReceivedAmounts); await db.WeeeContext.SaveChangesAsync(); var results = await db.StoredProcedures.GetAatfObligatedCsvData(@return.Id, 2019, 1, aatf.Id); Assert.NotNull(results); var data = from x in results.AsEnumerable() where x.Field <string>("Name of AATF") == aatf.Name select x; data.AsQueryable().Count().Should().Be(28); var dataB2B = from x in results.AsEnumerable() where x.Field <string>("Name of AATF") == aatf.Name && x.Field <string>("Obligation type") == "B2B" select x; dataB2B.AsQueryable().Count().Should().Be(14); var dataB2C = from x in results.AsEnumerable() where x.Field <string>("Name of AATF") == aatf.Name && x.Field <string>("Obligation type") == "B2C" select x; dataB2C.AsQueryable().Count().Should().Be(14); } }
public async Task Execute_GivenMultipleReturns_ReturnDataShouldBeCorrect() { using (var db = new DatabaseWrapper()) { var @return1 = CreateSubmittedReturn(db); var @return2 = CreateSubmittedReturn(db); var scheme = ObligatedWeeeIntegrationCommon.CreateScheme(@return1.Organisation); var aatf = ObligatedWeeeIntegrationCommon.CreateAatf(db, @return1.Organisation); var weeeSentOn1 = new EA.Weee.Domain.AatfReturn.WeeeSentOn(ObligatedWeeeIntegrationCommon.CreateAatfAddress(db), aatf, @return1); var weeeSentOnAmount1 = new EA.Weee.Domain.AatfReturn.WeeeSentOnAmount(weeeSentOn1, 1, 1, 2); var weeeReceived1 = new EA.Weee.Domain.AatfReturn.WeeeReceived(scheme, aatf, @return1); var weeeReceivedAmount1 = new EA.Weee.Domain.AatfReturn.WeeeReceivedAmount(weeeReceived1, 1, 3, 4); var weeeReused1 = new EA.Weee.Domain.AatfReturn.WeeeReused(aatf, @return1); var weeeReusedAmount1 = new Domain.AatfReturn.WeeeReusedAmount(weeeReused1, 1, 5, 6); var weeeSentOn2 = new EA.Weee.Domain.AatfReturn.WeeeSentOn(ObligatedWeeeIntegrationCommon.CreateAatfAddress(db), aatf, @return2); var weeeSentOnAmount2 = new EA.Weee.Domain.AatfReturn.WeeeSentOnAmount(weeeSentOn2, 1, 7, 8); var weeeReceived2 = new EA.Weee.Domain.AatfReturn.WeeeReceived(scheme, aatf, @return2); var weeeReceivedAmount2 = new EA.Weee.Domain.AatfReturn.WeeeReceivedAmount(weeeReceived2, 1, 9, 10); var weeeReused2 = new EA.Weee.Domain.AatfReturn.WeeeReused(aatf, @return2); var weeeReusedAmount2 = new Domain.AatfReturn.WeeeReusedAmount(weeeReused2, 1, 11, 12); db.WeeeContext.Returns.Add(@return1); db.WeeeContext.Returns.Add(@return2); db.WeeeContext.ReturnAatfs.Add(new ReturnAatf(aatf, @return1)); db.WeeeContext.ReturnAatfs.Add(new ReturnAatf(aatf, @return2)); db.WeeeContext.WeeeSentOn.Add(weeeSentOn1); db.WeeeContext.WeeeSentOn.Add(weeeSentOn2); db.WeeeContext.WeeeSentOnAmount.Add(weeeSentOnAmount1); db.WeeeContext.WeeeSentOnAmount.Add(weeeSentOnAmount2); db.WeeeContext.WeeeReceived.Add(weeeReceived1); db.WeeeContext.WeeeReceived.Add(weeeReceived2); db.WeeeContext.WeeeReceivedAmount.Add(weeeReceivedAmount1); db.WeeeContext.WeeeReceivedAmount.Add(weeeReceivedAmount2); db.WeeeContext.WeeeReused.Add(weeeReused1); db.WeeeContext.WeeeReused.Add(weeeReused2); db.WeeeContext.WeeeReusedAmount.Add(weeeReusedAmount1); db.WeeeContext.WeeeReusedAmount.Add(weeeReusedAmount2); await db.WeeeContext.SaveChangesAsync(); var results = await db.StoredProcedures.GetAatfSubmissions(aatf.Id, aatf.ComplianceYear); results.Count.Should().Be(2); results.First(r => r.ReturnId.Equals(@return1.Id)).WeeeSentOnHouseHold.Should().Be(1); results.First(r => r.ReturnId.Equals(@return1.Id)).WeeeSentOnNonHouseHold.Should().Be(2); results.First(r => r.ReturnId.Equals(@return1.Id)).WeeeReceivedHouseHold.Should().Be(3); results.First(r => r.ReturnId.Equals(@return1.Id)).WeeeReceivedNonHouseHold.Should().Be(4); results.First(r => r.ReturnId.Equals(@return1.Id)).WeeeReusedHouseHold.Should().Be(5); results.First(r => r.ReturnId.Equals(@return1.Id)).WeeeReusedNonHouseHold.Should().Be(6); results.First(r => r.ReturnId.Equals(@return2.Id)).WeeeSentOnHouseHold.Should().Be(7); results.First(r => r.ReturnId.Equals(@return2.Id)).WeeeSentOnNonHouseHold.Should().Be(8); results.First(r => r.ReturnId.Equals(@return2.Id)).WeeeReceivedHouseHold.Should().Be(9); results.First(r => r.ReturnId.Equals(@return2.Id)).WeeeReceivedNonHouseHold.Should().Be(10); results.First(r => r.ReturnId.Equals(@return2.Id)).WeeeReusedHouseHold.Should().Be(11); results.First(r => r.ReturnId.Equals(@return2.Id)).WeeeReusedNonHouseHold.Should().Be(12); } }