Exemplo n.º 1
0
        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);
            }
        }
Exemplo n.º 2
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);
            }
        }
Exemplo n.º 3
0
        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);
            }
        }
Exemplo n.º 6
0
        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);
            }
        }