Example #1
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));
        }
        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);
        }
Example #3
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);
            }
        }
        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);
            }
        }
Example #5
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);
        }
        private async Task <Guid> CreateContact(DatabaseWrapper database, AatfContact aatfAddress)
        {
            var organisation = ObligatedWeeeIntegrationCommon.CreateOrganisation();
            var scheme       = ObligatedWeeeIntegrationCommon.CreateScheme(organisation);

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

            database.WeeeContext.Organisations.Add(organisation);
            database.WeeeContext.Schemes.Add(scheme);
            database.WeeeContext.AatfContacts.Add(aatfAddress);
            database.WeeeContext.Aatfs.Add(aatf);

            await database.WeeeContext.SaveChangesAsync();

            return(aatf.Id);
        }
        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);
            }
        }
Example #8
0
        private async Task <WeeeSentOn> CreateWeeeSentOnOperatorInContext(WeeeSentOnDataAccess dataAccess, AatfAddress operatorAddress, AatfAddress siteAddress, 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 weeeSentOn = new WeeeSentOn(operatorAddress, siteAddress, aatf, @return);

            await dataAccess.Submit(weeeSentOn);

            return(weeeSentOn);
        }
Example #9
0
        public async Task Add_EntityShouldBeAdded()
        {
            using (var database = new DatabaseWrapper())
            {
                int originalSchemesCount = database.WeeeContext.Schemes.Count();
                UpdateSchemeInformationDataAccess dataAccess = new UpdateSchemeInformationDataAccess(database.WeeeContext);

                Organisation organisation = ObligatedWeeeIntegrationCommon.CreateOrganisation();
                Scheme       scheme       = ObligatedWeeeIntegrationCommon.CreateScheme(organisation);

                dataAccess.AddScheme(scheme);
                await dataAccess.SaveAsync();

                database.WeeeContext.Schemes.Where(p => Equals(scheme)).Should().NotBeNull();

                int newSchemesCount = database.WeeeContext.Schemes.Count();

                (newSchemesCount - originalSchemesCount).Should().Be(1);
            }
        }
        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);
            }
        }