public async Task Execute_GivenReturnWithZeroData_NullDataShouldBeReturned()
        {
            using (var db = new DatabaseWrapper())
            {
                var @return = SetupSubmittedReturn(db);
                var aatf    = ObligatedWeeeIntegrationCommon.CreateAatf(db, organisation);
                var values  = CategoryValues();

                db.WeeeContext.Returns.Add(@return);

                foreach (var weeeCategory in values)
                {
                    db.WeeeContext.NonObligatedWeee.Add(new NonObligatedWeee(@return, (int)weeeCategory, false, 0));
                    db.WeeeContext.NonObligatedWeee.Add(new NonObligatedWeee(@return, (int)weeeCategory, true, 0));
                }

                await db.WeeeContext.SaveChangesAsync();

                var results = await db.StoredProcedures.GetReturnNonObligatedCsvData(@return.Id);

                results.Count.Should().Be(14);

                for (var countValue = 0; countValue < values.Count(); countValue++)
                {
                    results.ElementAt(countValue).TotalNonObligatedWeeeReceived.Should().BeNull();
                    results.ElementAt(countValue).TotalNonObligatedWeeeReceivedFromDcf.Should().BeNull();
                }
            }
        }
        public async Task Execute_GivenCreatedReturnWithNoData_DefaultDataShouldBeReturned()
        {
            using (var db = new DatabaseWrapper())
            {
                var @return = SetupCreatedReturn(db);
                var aatf    = ObligatedWeeeIntegrationCommon.CreateAatf(db, organisation);

                db.WeeeContext.Returns.Add(@return);

                await db.WeeeContext.SaveChangesAsync();

                var results = await db.StoredProcedures.GetReturnNonObligatedCsvData(@return.Id);

                results.Count.Should().Be(14);

                var values = CategoryValues();
                for (var countValue = 0; countValue < values.Count(); countValue++)
                {
                    var value          = values.ElementAt(countValue);
                    var categoryNumber = ((int)value <= 9) ? "0" + Convert.ToString((int)value) : Convert.ToString((int)value);
                    results.ElementAt(countValue).Year.Should().Be(2019);
                    results.ElementAt(countValue).Quarter.Should().Be("Q1");
                    results.ElementAt(countValue).SubmittedBy.Should().BeNullOrWhiteSpace();
                    results.ElementAt(countValue).SubmittedDate.Should().BeNull();
                    results.ElementAt(countValue).OrganisationName.Should().Be(organisation.Name);
                    results.ElementAt(countValue).Category.Should().Be($"{categoryNumber}. {value.ToDisplayString()}");
                }
            }
        }
        public async Task Execute_GivenWeeeSentOnData_ReturnsWeeeSentOnAatfDataShouldBeCorrect()
        {
            using (var db = new DatabaseWrapper())
            {
                var @return = CreateSubmittedReturn(db);
                var aatf    = ObligatedWeeeIntegrationCommon.CreateAatf(db, @return.Organisation);

                await CreateWeeSentOnData(db, aatf, @return);

                var results = await db.StoredProcedures.GetAllAatfSentOnDataCsv(2019, string.Empty, null, null);

                Assert.NotNull(results);
                var data = from x in results.Tables[0].AsEnumerable()
                           where x.Field <string>("Name of AATF") == aatf.Name
                           select x;
                data.AsQueryable().Count().Should().Be(28);

                var dataB2B = from x in results.Tables[0].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.Tables[0].AsEnumerable()
                              where x.Field <string>("Name of AATF") == aatf.Name && x.Field <string>("Obligation type") == "B2C"
                              select x;
                dataB2C.AsQueryable().Count().Should().Be(14);
            }
        }
Exemple #4
0
        private async Task AddWeeeReceived(DateTime?approvalDate = null)
        {
            var aatf = ObligatedWeeeIntegrationCommon.CreateAatf(database, organisation);

            aatf.UpdateDetails(aatf.Name, aatf.CompetentAuthority, aatf.ApprovalNumber, aatf.AatfStatus, aatf.Organisation, aatf.Size, approvalDate, aatf.LocalArea, aatf.PanArea);

            var weeReceived = new List <WeeeReceived>()
            {
                new WeeeReceived(new Scheme(organisation), aatf, @return),
                new WeeeReceived(new Scheme(organisation), aatf, @return)
            };

            var weeeReceivedAmounts = new List <WeeeReceivedAmount>()
            {
                new WeeeReceivedAmount(weeReceived.ElementAt(0), 1, 100, 200),
                new WeeeReceivedAmount(weeReceived.ElementAt(0), 2, 300, 400),
                new WeeeReceivedAmount(weeReceived.ElementAt(1), 3, 0, null),
                new WeeeReceivedAmount(weeReceived.ElementAt(1), 4, null, 0)
            };

            database.WeeeContext.WeeeReceivedAmount.AddRange(weeeReceivedAmounts);
            database.WeeeContext.WeeeReceived.AddRange(weeReceived);

            await database.WeeeContext.SaveChangesAsync();
        }
        public async Task Execute_GivenComplianceAndFacilityTypeAndLocalAreaAndPanArea_ReturnsData(bool hasArea, bool hasPan)
        {
            using (var db = new DatabaseWrapper())
            {
                var org   = OrgWithAddress(db);
                var aatf  = ObligatedWeeeIntegrationCommon.CreateAatf(db, org, 2019, hasArea, hasPan, fixture.Create <string>());
                var aatfs = new List <Aatf>()
                {
                    aatf
                };

                db.WeeeContext.Organisations.Add(org);
                db.WeeeContext.Aatfs.Add(aatf);
                await db.WeeeContext.SaveChangesAsync();

                Guid?areaId = null;
                if (hasArea)
                {
                    areaId = aatf.LocalAreaId;
                }

                Guid?panId = null;
                if (hasPan)
                {
                    panId = aatf.PanAreaId;
                }

                var results = await db.StoredProcedures.GetAatfAeDetailsCsvData(2019, 1, aatf.CompetentAuthority.Id, areaId, panId);

                VerifyResult(results, aatfs);
            }
        }
Exemple #6
0
        public async Task GetManyByExpression_GivenGetManyByExpressionSpecification_AatfsShouldBeReturned()
        {
            using (var database = new DatabaseWrapper())
            {
                var dataAccess = new GenericDataAccess(database.WeeeContext);

                var organisation = Organisation.CreateSoleTrader("Test Organisation");
                var aatf1        = ObligatedWeeeIntegrationCommon.CreateAatf(database, organisation);
                var aatf2        = ObligatedWeeeIntegrationCommon.CreateAatf(database, organisation);

                var organisation2 = Organisation.CreateSoleTrader("Test Organisation 2");
                var aatf3         = ObligatedWeeeIntegrationCommon.CreateAatf(database, organisation2);

                database.WeeeContext.Aatfs.Add(aatf1);
                database.WeeeContext.Aatfs.Add(aatf2);

                await database.WeeeContext.SaveChangesAsync();

                var aatfInfo = await dataAccess.GetManyByExpression(new AatfsByOrganisationSpecification(organisation.Id));

                aatfInfo.Count.Should().Be(2);
                aatfInfo.Where(a => Equals(aatf1)).Should().NotBeNull();
                aatfInfo.Where(a => Equals(aatf2)).Should().NotBeNull();
                aatfInfo.Where(a => Equals(aatf3)).Should().BeEmpty();
            }
        }
        public async Task Execute_GivenAllData_ReturnsData()
        {
            using (var db = new DatabaseWrapper())
            {
                await CreateScheme(db);

                var org   = OrgWithAddress(db);
                var ae    = ObligatedWeeeIntegrationCommon.CreateAe(db, org);
                var aatf  = ObligatedWeeeIntegrationCommon.CreateAatf(db, org, 2019, false, false, fixture.Create <string>());
                var aatfs = new List <Aatf>()
                {
                    ae, aatf
                };

                db.WeeeContext.Organisations.Add(org);
                db.WeeeContext.Aatfs.Add(ae);
                db.WeeeContext.Aatfs.Add(aatf);
                await db.WeeeContext.SaveChangesAsync();

                var results = await db.StoredProcedures.GetAatfAeDetailsCsvData(2019, 4, null, null, null);

                VerifyResult(results, aatfs);
                VerifyPCSRecord(results);
            }
        }
Exemple #8
0
        public async Task Execute_GivenSubmittedReturnWithNoData_DefaultDataShouldBeReturned()
        {
            using (var db = new DatabaseWrapper())
            {
                var @return = SetupSubmittedReturn(db);
                var aatf    = ObligatedWeeeIntegrationCommon.CreateAatf(db, organisation);

                db.WeeeContext.Returns.Add(@return);

                await db.WeeeContext.SaveChangesAsync();

                var results = await db.StoredProcedures.GetReturnNonObligatedCsvData(@return.Id);

                results.Count.Should().Be(14);

                var values = CategoryValues();
                for (var countValue = 0; countValue < values.Count(); countValue++)
                {
                    var value = values.ElementAt(countValue);
                    results.ElementAt(countValue).Year.Should().Be(2019);
                    results.ElementAt(countValue).Quarter.Should().Be("Q1");
                    results.ElementAt(countValue).SubmittedBy.Should()
                    .Be($"{db.Model.AspNetUsers.First().FirstName} {db.Model.AspNetUsers.First().Surname}");
                    results.ElementAt(countValue).SubmittedDate.Should().Be(date);
                    results.ElementAt(countValue).OrganisationName.Should().Be(organisation.Name);
                    results.ElementAt(countValue).Category.Should().Be($"{countValue + 1}. {value.ToDisplayString()}");
                }
            }
        }
        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 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);
            }
        }
        private async Task <Tuple <Guid, Guid> > CreateWeeeReusedSite(AatfSiteDataAccess dataAccess, AatfAddress aatfAddress, DatabaseWrapper database)
        {
            var organisation = ObligatedWeeeIntegrationCommon.CreateOrganisation();
            var scheme       = ObligatedWeeeIntegrationCommon.CreateScheme(organisation);
            var aatf         = ObligatedWeeeIntegrationCommon.CreateAatf(database, organisation);
            var @return      = ObligatedWeeeIntegrationCommon.CreateReturn(organisation, database.Model.AspNetUsers.First().Id);

            database.WeeeContext.Organisations.Add(organisation);
            database.WeeeContext.Schemes.Add(scheme);
            database.WeeeContext.Aatfs.Add(aatf);
            database.WeeeContext.Returns.Add(@return);

            await database.WeeeContext.SaveChangesAsync();

            var weeeReused = new WeeeReused(aatf.Id, @return.Id);

            database.WeeeContext.WeeeReused.Add(weeeReused);
            foreach (var category in Enum.GetValues(typeof(WeeeCategory)).Cast <WeeeCategory>())
            {
                database.WeeeContext.WeeeReusedAmount.Add(new WeeeReusedAmount(weeeReused, (int)category, (int)category, (int)category + 1));
            }

            await database.WeeeContext.SaveChangesAsync();

            var weeeReusedSite = new WeeeReusedSite(weeeReused, aatfAddress);

            await dataAccess.Submit(weeeReusedSite);

            return(Tuple.Create(@return.Id, aatf.Id));
        }
        public async Task Execute_GivenWeeeReusedData_ReturnsWeeeReusedAatfSitesShouldBeCorrect()
        {
            using (var db = new DatabaseWrapper())
            {
                var @return = CreateSubmittedReturn(db);
                var aatf    = ObligatedWeeeIntegrationCommon.CreateAatf(db, @return.Organisation);

                await CreateWeeReusedData(db, aatf, @return);

                var results = await db.StoredProcedures.GetAllAatfReuseSitesCsvData(2019, null, null);

                var filteredData = results.Where(x => x.ApprovalNumber == aatf.ApprovalNumber);

                filteredData.Count().Should().Be(2);

                filteredData.ElementAt(0).ComplianceYear.Should().Be(@return.Quarter.Year);
                filteredData.ElementAt(0).Quarter.Should().Be(@return.Quarter.Q.ToString());
                filteredData.ElementAt(0).SubmittedDate.Date.Should().Be(@return.SubmittedDate.Value.Date);
                filteredData.ElementAt(0).SubmittedBy.Should().Be(db.Model.AspNetUsers.First().FirstName + " " + db.Model.AspNetUsers.First().Surname);
                filteredData.ElementAt(0).Name.Should().Be(aatf.Name);
                filteredData.ElementAt(0).ApprovalNumber.Should().Be(aatf.ApprovalNumber);
                filteredData.ElementAt(0).OrgName.Should().Be(aatf.Organisation.Name);
                filteredData.ElementAt(0).Abbreviation.Should().Be(aatf.CompetentAuthority.Abbreviation);
                filteredData.ElementAt(0).PanName.Should().Be(aatf.PanArea.Name);
                filteredData.ElementAt(0).LaName.Should().Be(aatf.LocalArea.Name);
                filteredData.ElementAt(0).SiteName.Should().Contain("name");
                filteredData.ElementAt(0).SiteAddress.Should().Be(string.Concat("address, address2, town, county, postcode", ", ", db.WeeeContext.Countries.First().Name));
            }
        }
Exemple #13
0
        public async Task Execute_GivenComplianceYearWithNoData_DefaultDataShouldBeReturned()
        {
            using (var db = new DatabaseWrapper())
            {
                var aatf = ObligatedWeeeIntegrationCommon.CreateAatf(db, organisation);

                db.WeeeContext.NonObligatedWeee.RemoveRange(db.WeeeContext.NonObligatedWeee);

                await db.WeeeContext.SaveChangesAsync();

                var results = await db.StoredProcedures.GetUkNonObligatedWeeeReceivedByComplianceYear(2019);

                results.Count.Should().Be(70);

                var values = CategoryValues();
                var index  = 0;
                foreach (var quarter in Quarters())
                {
                    for (var countValue = 0; countValue < values.Count(); countValue++)
                    {
                        var value          = values.ElementAt(countValue);
                        var categoryNumber = ((int)value <= 9) ? "0" + Convert.ToString((int)value) : Convert.ToString((int)value);
                        results.ElementAt(index).Quarter.Should().Be(quarter <= 4 ? $"Q{quarter}" : "2019");
                        results.ElementAt(index).Category.Should().Be($"{categoryNumber}. {value.ToDisplayString()}");
                        results.ElementAt(index).TotalNonObligatedWeeeReceived.Should().BeNull();
                        results.ElementAt(index).TotalNonObligatedWeeeReceivedFromDcf.Should().BeNull();
                        index++;
                    }
                }
            }
        }
        private async Task <Guid> CreateWeeeReceivedAmounts(ObligatedReceivedDataAccess dataAccess, DatabaseWrapper database)
        {
            var organisation = ObligatedWeeeIntegrationCommon.CreateOrganisation();
            var scheme       = ObligatedWeeeIntegrationCommon.CreateScheme(organisation);
            var aatf         = ObligatedWeeeIntegrationCommon.CreateAatf(database, organisation);
            var @return      = ObligatedWeeeIntegrationCommon.CreateReturn(organisation, database.Model.AspNetUsers.First().Id);

            database.WeeeContext.Organisations.Add(organisation);
            database.WeeeContext.Schemes.Add(scheme);
            database.WeeeContext.Aatfs.Add(aatf);
            database.WeeeContext.Returns.Add(@return);

            await database.WeeeContext.SaveChangesAsync();

            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 dataAccess.Submit(weeeReceivedAmount);

            return(@return.Id);
        }
Exemple #15
0
        public async Task Execute_GivenAatfWithNoDataAndSubmittedReturn_DefaultDataShouldBeReturned()
        {
            using (var db = new DatabaseWrapper())
            {
                var @return = SetupSubmittedReturn(db);
                var aatf    = ObligatedWeeeIntegrationCommon.CreateAatf(db, organisation);

                db.WeeeContext.ReturnAatfs.Add(new ReturnAatf(aatf, @return));
                db.WeeeContext.Aatfs.Add(aatf);
                db.WeeeContext.Returns.Add(@return);

                await db.WeeeContext.SaveChangesAsync();

                db.WeeeContext.ReturnReportOns.Add(new Domain.AatfReturn.ReturnReportOn(@return.Id, 1));
                db.WeeeContext.ReturnReportOns.Add(new Domain.AatfReturn.ReturnReportOn(@return.Id, 2));
                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(28);

                for (var countValue = 0; countValue < CategoryValues().Count(); countValue++)
                {
                    var value          = CategoryValues().ElementAt(countValue);
                    var categoryNumber = (value.CategoryId <= 9) ? "0" + Convert.ToString(value.CategoryId) : Convert.ToString(value.CategoryId);
                    AssertSubmittedRow(results, aatf, db, countValue, $"{categoryNumber}. {value.CategoryDisplay}", B2C);
                }

                results.Dispose();
            }
        }
Exemple #16
0
        public async Task CanCreateReturnReportOnEntry()
        {
            using (var database = new DatabaseWrapper())
            {
                var context    = database.WeeeContext;
                var dataAccess = new GenericDataAccess(context);

                var organisation = ObligatedWeeeIntegrationCommon.CreateOrganisation();
                var @return      = await CreateReturn(context, database, organisation);

                var questions = context.ReportOnQuestions.ToList();

                var returnReportOn = new List <ReturnReportOn>();

                foreach (var question in questions)
                {
                    returnReportOn.Add(new ReturnReportOn(@return.Id, question.Id));
                }

                await dataAccess.AddMany <ReturnReportOn>(returnReportOn);

                var result = context.ReturnReportOns.Where(r => r.ReturnId == @return.Id).ToList();

                result.Count.Should().Be(questions.Count);
                foreach (var question in questions)
                {
                    result.Where(r => r.ReportOnQuestionId == question.Id).ToList().Count.Should().Be(1);
                }
            }
        }
        private static Return CreateSubmittedReturn(DatabaseWrapper db)
        {
            var @return = ObligatedWeeeIntegrationCommon.CreateReturn(null, db.Model.AspNetUsers.First().Id, FacilityType.Aatf);

            @return.UpdateSubmitted(db.Model.AspNetUsers.First().Id, false);
            return(@return);
        }
Exemple #18
0
        private Aatf SetupAatfWithApprovalDate(DatabaseWrapper db, DateTime date, string name)
        {
            var aatf = ObligatedWeeeIntegrationCommon.CreateAatf(db, organisation);

            aatf.UpdateDetails(name, aatf.CompetentAuthority, aatf.ApprovalNumber, aatf.AatfStatus, aatf.Organisation, aatf.Size, date, aatf.LocalArea, aatf.PanArea);
            return(aatf);
        }
        public async Task Execute_GivenWeeeSentOnData_ReturnsWeeeSentOnAatfDataShouldBeCorrect()
        {
            using (var db = new DatabaseWrapper())
            {
                var @return    = CreateSubmittedReturn(db);
                var aatf       = ObligatedWeeeIntegrationCommon.CreateAatf(db, @return.Organisation);
                var weeeSentOn = new EA.Weee.Domain.AatfReturn.WeeeSentOn(ObligatedWeeeIntegrationCommon.CreateAatfAddress(db), aatf, @return);

                var weeeSentOnAmounts = new List <WeeeSentOnAmount>()
                {
                    new Domain.AatfReturn.WeeeSentOnAmount(weeeSentOn, 1, 1, 2),
                    new Domain.AatfReturn.WeeeSentOnAmount(weeeSentOn, 2, 3, 4)
                };

                db.WeeeContext.Returns.Add(@return);
                db.WeeeContext.ReturnAatfs.Add(new ReturnAatf(aatf, @return));
                db.WeeeContext.WeeeSentOn.Add(weeeSentOn);
                db.WeeeContext.WeeeSentOnAmount.AddRange(weeeSentOnAmounts);

                await db.WeeeContext.SaveChangesAsync();

                var results = await db.StoredProcedures.GetAatfSubmissions(aatf.Id, aatf.ComplianceYear);

                results.Count.Should().Be(1);
                results.ElementAt(0).WeeeSentOnHouseHold.Should().Be(4);
                results.ElementAt(0).WeeeSentOnNonHouseHold.Should().Be(6);
                AssertFixedPropertiesForReturn(results, db, @return);
            }
        }
Exemple #20
0
        public async Task GetAatfsDataAccess_ReturnsAatfsList()
        {
            using (var database = new DatabaseWrapper())
            {
                var helper                       = new ModelHelper(database.Model);
                var dataAccess                   = new GetAatfsDataAccess(database.WeeeContext);
                var genericDataAccess            = new GenericDataAccess(database.WeeeContext);
                var competentAuthorityDataAccess = new CommonDataAccess(database.WeeeContext);
                var competentAuthority           = await competentAuthorityDataAccess.FetchCompetentAuthority(CompetentAuthority.England);

                var country = await database.WeeeContext.Countries.SingleAsync(c => c.Name == "UK - England");

                var aatfContact  = new AatfContact("first", "last", "position", "address1", "address2", "town", "county", "postcode", country, "telephone", "email");
                var organisation = Organisation.CreatePartnership("Koalas");
                var aatfAddress  = AddressHelper.GetAatfAddress(database);
                var aatfSize     = AatfSize.Large;

                var aatf = ObligatedWeeeIntegrationCommon.CreateAatf(database, organisation);

                await genericDataAccess.Add <Aatf>(aatf);

                var aatfList = await dataAccess.GetAatfs();

                aatfList.Should().Contain(aatf);
            }
        }
Exemple #21
0
        private Return CreateSubmittedReturn(DatabaseWrapper db, EA.Weee.Domain.Organisation.Organisation organisation)
        {
            var @return = ObligatedWeeeIntegrationCommon.CreateReturn(organisation, db.Model.AspNetUsers.First().Id, FacilityType.Aatf);

            @return.UpdateSubmitted(db.Model.AspNetUsers.First().Id, false);
            return(@return);
        }
Exemple #22
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 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);
                }
            }
        }
Exemple #24
0
        public Aatf CreateAatf(DatabaseWrapper database, Organisation organisation, DateTime approvalDate, int count, string cA)
        {
            var aatfContact = ObligatedWeeeIntegrationCommon.CreateDefaultContact(database.WeeeContext.Countries.First());
            var aatfAddress = ObligatedWeeeIntegrationCommon.CreateAatfAddress(database);
            var aatf        = new Aatf("aatfname" + count, database.WeeeContext.UKCompetentAuthorities.First(c => c.Abbreviation == cA), "number", AatfStatus.Approved, organisation, aatfAddress, AatfSize.Large, approvalDate, aatfContact, FacilityType.Aatf, 2019, database.WeeeContext.LocalAreas.First(), database.WeeeContext.PanAreas.First());

            return(aatf);
        }
Exemple #25
0
        private Return SetupCreatedReturn(DatabaseWrapper db)
        {
            SystemTime.Freeze(date);
            var @return = ObligatedWeeeIntegrationCommon.CreateReturn(organisation, db.Model.AspNetUsers.First().Id, FacilityType.Aatf);

            SystemTime.Unfreeze();
            return(@return);
        }
Exemple #26
0
        public async Task Execute_GivenAatfWithApprovalDateExpectedToReportAndResubmissionCreatedAndResubmissionsRequested_RecordDataIsAsExpected()
        {
            using (var db = new DatabaseWrapper())
            {
                var date = new DateTime(2019, 1, 1, 11, 10, 1);
                SystemTime.Freeze(date);

                var organisation = Domain.Organisation.Organisation.CreateSoleTrader(fixture.Create <string>());

                var aatf = new Aatf(fixture.Create <string>(), GetAuthority(db), fixture.Create <string>().Substring(0, 10), AatfStatus.Approved, organisation, ObligatedWeeeIntegrationCommon.CreateAatfAddress(db), AatfSize.Large, Convert.ToDateTime("01/02/2019"), ObligatedWeeeIntegrationCommon.CreateDefaultContact(db.WeeeContext.Countries.First()), FacilityType.Aatf, 2019, db.WeeeContext.LocalAreas.First(), db.WeeeContext.PanAreas.First());

                var @return = ObligatedWeeeIntegrationCommon.CreateReturn(organisation, db.Model.AspNetUsers.First().Id, FacilityType.Aatf, 2019,
                                                                          QuarterType.Q1);

                @return.UpdateSubmitted(db.Model.AspNetUsers.First().Id, false);

                SystemTime.Unfreeze();

                SystemTime.Freeze(date.Date.AddDays(1));
                var @return2 = ObligatedWeeeIntegrationCommon.CreateReturn(organisation, db.Model.AspNetUsers.First().Id, FacilityType.Aatf, 2019,
                                                                           QuarterType.Q1);
                SystemTime.Unfreeze();

                db.WeeeContext.Aatfs.Add(aatf);
                db.WeeeContext.Returns.Add(@return);
                db.WeeeContext.Returns.Add(@return2);
                db.WeeeContext.ReturnAatfs.Add(new ReturnAatf(aatf, @return));

                await db.WeeeContext.SaveChangesAsync();

                var results = await db.StoredProcedures.GetAatfAeReturnDataCsvData(2019, 1,
                                                                                   1, null, null, null, null, true);

                var initialSubmission = results.Where(x => x.AatfId == aatf.Id).ElementAt(0);

                initialSubmission.ApprovalNumber.Should().Be(aatf.ApprovalNumber);
                initialSubmission.CompetentAuthorityAbbr.Should().Be("EA");
                initialSubmission.Name.Should().Be(aatf.Name);
                initialSubmission.OrganisationName.Should().Be(organisation.OrganisationName);
                initialSubmission.CreatedDate.Should().Be(date);
                initialSubmission.ReturnStatus.Should().Be("Submitted");
                initialSubmission.SubmittedBy.Should().Be($"{db.Model.AspNetUsers.First().FirstName} {db.Model.AspNetUsers.First().Surname}");
                initialSubmission.SubmittedDate.Should().Be(date);
                initialSubmission.ReSubmission.Should().Be("First submission");

                var resubmission = results.Where(x => x.AatfId == aatf.Id).ElementAt(1);

                resubmission.ApprovalNumber.Should().Be(aatf.ApprovalNumber);
                resubmission.CompetentAuthorityAbbr.Should().Be("EA");
                resubmission.Name.Should().Be(aatf.Name);
                resubmission.OrganisationName.Should().Be(organisation.OrganisationName);
                resubmission.CreatedDate.Should().Be(date.Date.AddDays(1));
                resubmission.ReturnStatus.Should().Be("Started");
                resubmission.SubmittedBy.Should().BeNullOrWhiteSpace();
                resubmission.SubmittedDate.Should().BeNull();
                resubmission.ReSubmission.Should().Be("Resubmission");
            }
        }
Exemple #27
0
        private Return SetupSubmittedReturn(DatabaseWrapper db, QuarterType quarterType)
        {
            SystemTime.Freeze(date);
            var @return = ObligatedWeeeIntegrationCommon.CreateReturn(organisation, db.Model.AspNetUsers.First().Id, FacilityType.Aatf, 2019, quarterType);

            @return.UpdateSubmitted(db.Model.AspNetUsers.First().Id, false);
            SystemTime.Unfreeze();
            return(@return);
        }
Exemple #28
0
        private static async Task <AatfAddress> CreateAddress(DatabaseWrapper database)
        {
            var address = ObligatedWeeeIntegrationCommon.CreateAatfAddress(database);

            database.WeeeContext.AatfAddress.Add(address);

            await database.WeeeContext.SaveChangesAsync();

            return(address);
        }
Exemple #29
0
        private static async Task <Scheme> CreateScheme(WeeeContext context, Organisation organisation)
        {
            var scheme = ObligatedWeeeIntegrationCommon.CreateScheme(organisation);

            context.Schemes.Add(scheme);

            await context.SaveChangesAsync();

            return(scheme);
        }
Exemple #30
0
        private static async Task <Aatf> CreateAatf(DatabaseWrapper database, Domain.AatfReturn.Return @return)
        {
            var aatf = ObligatedWeeeIntegrationCommon.CreateAatf(database, @return.Organisation);

            database.WeeeContext.Aatfs.Add(aatf);

            await database.WeeeContext.SaveChangesAsync();

            return(aatf);
        }