コード例 #1
0
        public async Task GetAatfsDataAccess_ReturnsLatestAesList()
        {
            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 aatfId = Guid.NewGuid();

                var aatf  = new Aatf("KoalaBears", competentAuthority, "WEE/AB1289YZ/ATF", AatfStatus.Approved, organisation, aatfAddress, aatfSize, DateTime.Now, aatfContact, FacilityType.Ae, 2019, database.WeeeContext.LocalAreas.First(), database.WeeeContext.PanAreas.First(), aatfId);
                var aatf1 = new Aatf("KoalaBears", competentAuthority, "WEE/AB1289YZ/ATF", AatfStatus.Approved, organisation, aatfAddress, aatfSize, Convert.ToDateTime("20/01/2020"), aatfContact, FacilityType.Ae, 2020, database.WeeeContext.LocalAreas.First(), database.WeeeContext.PanAreas.First(), aatfId);

                await genericDataAccess.AddMany <Aatf>(new List <Aatf>() { aatf1, aatf });

                var aatfList = await dataAccess.GetLatestAatfs();

                aatfList.Should().Contain(aatf1);
                aatfList.Should().NotContain(aatf);
            }
        }
コード例 #2
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);
                }
            }
        }
コード例 #3
0
        public async Task GetFilteredAatfsDataAccess_ByCA_ReturnsFilteredAatfsList()
        {
            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 competentAuthorityNIEA = await competentAuthorityDataAccess.FetchCompetentAuthority(CompetentAuthority.NorthernIreland);

                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  = new Aatf("KoalaBears", competentAuthority, "WEE/AB1289YZ/ATF", AatfStatus.Approved, organisation, aatfAddress, aatfSize, DateTime.Now, aatfContact, FacilityType.Aatf, 2019, database.WeeeContext.LocalAreas.First(), database.WeeeContext.PanAreas.First());
                var aatf1 = new Aatf("KoalaBears1", competentAuthority, "WEE/AB1289YY/ATF", AatfStatus.Cancelled, organisation, aatfAddress, aatfSize, DateTime.Now, aatfContact, FacilityType.Aatf, 2019, database.WeeeContext.LocalAreas.First(), database.WeeeContext.PanAreas.First());
                var aatf2 = new Aatf("KoalaBears2", competentAuthorityNIEA, "WEE/AB1289YP/ATF", AatfStatus.Cancelled, organisation, aatfAddress, aatfSize, DateTime.Now, aatfContact, FacilityType.Aatf, 2019, database.WeeeContext.LocalAreas.First(), database.WeeeContext.PanAreas.First());

                await genericDataAccess.AddMany <Aatf>(new List <Aatf>() { aatf, aatf1, aatf2 });

                var filteredListWithEA = await dataAccess.GetFilteredAatfs(new Core.AatfReturn.AatfFilter {
                    SelectedAuthority = new List <Guid> {
                        competentAuthority.Id
                    }
                });

                var filteredListWithNIEA = await dataAccess.GetFilteredAatfs(new Core.AatfReturn.AatfFilter {
                    SelectedAuthority = new List <Guid> {
                        competentAuthorityNIEA.Id
                    }
                });

                var filteredListWithBothCA = await dataAccess.GetFilteredAatfs(new Core.AatfReturn.AatfFilter {
                    SelectedAuthority = new List <Guid> {
                        competentAuthorityNIEA.Id, competentAuthority.Id
                    }
                });

                filteredListWithEA.Should().Contain(aatf);
                filteredListWithEA.Should().Contain(aatf1);
                filteredListWithEA.Should().NotContain(aatf2);

                filteredListWithNIEA.Should().Contain(aatf2);
                filteredListWithNIEA.Should().NotContain(aatf);
                filteredListWithNIEA.Should().NotContain(aatf1);

                filteredListWithBothCA.Should().Contain(aatf);
                filteredListWithBothCA.Should().Contain(aatf1);
                filteredListWithBothCA.Should().Contain(aatf2);
            }
        }
コード例 #4
0
        public async Task AddMany_EntityShouldBeAdded()
        {
            using (var database = new DatabaseWrapper())
            {
                var originalAatfCount = database.WeeeContext.Aatfs.Count();
                var dataAccess        = new GenericDataAccess(database.WeeeContext);

                var organisation = Organisation.CreateSoleTrader("Test Organisation");

                var aatf1 = ObligatedWeeeIntegrationCommon.CreateAatf(database, organisation);
                var aatf2 = ObligatedWeeeIntegrationCommon.CreateAatf(database, organisation);

                await dataAccess.AddMany <Aatf>(new List <Aatf>() { aatf1, aatf2 });

                var dbNewAatfs = database.WeeeContext.Aatfs.Count() - originalAatfCount;

                database.WeeeContext.Aatfs.Where(a => Equals(aatf1)).Should().NotBeNull();
                database.WeeeContext.Aatfs.Where(a => Equals(aatf2)).Should().NotBeNull();
                dbNewAatfs.Should().Be(2);
            }
        }
コード例 #5
0
        public async Task GetAll_AllEntitiesShouldBeReturned()
        {
            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);

                await dataAccess.AddMany <Aatf>(new List <Aatf>() { aatf1, aatf2 });

                await database.WeeeContext.SaveChangesAsync();

                var count = database.WeeeContext.Aatfs.Count();

                var aatfInfo = await dataAccess.GetAll <Aatf>();

                aatfInfo.ToList().Count.Should().Be(count);
            }
        }
コード例 #6
0
        public async Task FetchAatfByReturnId_GivenMatchingParameters_AatfsShouldBeOrderedByName()
        {
            using (var database = new DatabaseWrapper())
            {
                var helper            = new ModelHelper(database.Model);
                var domainHelper      = new DomainHelper(database.WeeeContext);
                var dataAccess        = new FetchAatfDataAccess(database.WeeeContext, quarterWindowFactory);
                var genericDataAccess = new GenericDataAccess(database.WeeeContext);

                var aatfList = await CreateMultipleAatf(database, FacilityType.Aatf, DateTime.Now, 2019);

                var @return = new Return(aatfList[0].Organisation, new Quarter(2019, QuarterType.Q1), "created", FacilityType.Aatf);

                A.CallTo(() => quarterWindowFactory.GetQuarterWindow(@return.Quarter)).Returns(new QuarterWindow(DateTime.Now.AddDays(1), DateTime.Now.AddDays(1), QuarterType.Q1));

                await genericDataAccess.AddMany <Aatf>(aatfList);

                var returnedAatfList = await dataAccess.FetchAatfByReturnId(@return.Id);

                aatfList.Should().BeInDescendingOrder(m => m.Name);
            }
        }
コード例 #7
0
        public async Task FetchAatfByReturnQuarterWindow_GivenMatchingParameters_ReturnedListContainsAatf()
        {
            using (var database = new DatabaseWrapper())
            {
                var helper            = new ModelHelper(database.Model);
                var domainHelper      = new DomainHelper(database.WeeeContext);
                var dataAccess        = new FetchAatfDataAccess(database.WeeeContext, quarterWindowFactory);
                var genericDataAccess = new GenericDataAccess(database.WeeeContext);

                var aatf = await CreateAatf(database, FacilityType.Aatf, DateTime.Now, 2019);

                var @return = new Return(aatf.Organisation, new Quarter(2019, QuarterType.Q1), "created", FacilityType.Aatf);

                A.CallTo(() => quarterWindowFactory.GetQuarterWindow(@return.Quarter)).Returns(new QuarterWindow(DateTime.Now.AddDays(1), DateTime.Now.AddDays(1), QuarterType.Q1));

                await genericDataAccess.AddMany <Aatf>(new List <Aatf>() { aatf });

                var aatfList = await dataAccess.FetchAatfByReturnQuarterWindow(@return);

                aatfList.Should().Contain(aatf);
            }
        }
コード例 #8
0
        public async Task DeselectedOptionAndDataIsDeleted()
        {
            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 country = await context.Countries.SingleAsync(c => c.Name == "France");

                var questions = context.ReportOnQuestions.ToList();

                var returnReportOn = new List <ReturnReportOn>();

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

                var aatf = await CreateAatf(database, @return);

                var scheme = await CreateScheme(context, organisation);

                var sentOnSiteAddress = await CreateAddress(database);

                var sentOnSOperatorAddress = await CreateAddress(database);

                var reusedSiteAddress = await CreateAddress(database);

                await dataAccess.AddMany <ReturnReportOn>(returnReportOn);

                await CreateWeeeReusedAmounts(new ObligatedReusedDataAccess(context), new AatfSiteDataAccess(context, dataAccess), @return, aatf, reusedSiteAddress);
                await CreateWeeeReceivedAmounts(new ObligatedReceivedDataAccess(context), new ReturnSchemeDataAccess(context), @return, aatf, scheme);
                await CreateWeeeSentOnAmounts(new ObligatedSentOnDataAccess(context), @return, aatf, sentOnSiteAddress, sentOnSOperatorAddress);
                await CreateNonObligatedWeee(new NonObligatedDataAccess(context), @return);

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

                var(submittedWeeeReused, submittedWeeeReusedAddresses, submittedWeeeReusedAmounts, submittedWeeeReusedSites) = await RetrieveSubmittedWeeeReusedData(context, @return, dataAccess);

                var(submittedWeeeReceived, submittedWeeeReturnScheme, submittedWeeeReceivedAmounts) = await RetrieveSubmittedWeeeReceivedData(context, @return, dataAccess);

                var(submittedWeeeSentOn, submittedWeeeSentOnAddresses, submittedWeeeSentOnAmounts) = await RetrieveSubmittedWeeeSentOnData(context, @return, dataAccess);

                var submittedNonObligatedWeee = context.NonObligatedWeee.Where(w => w.ReturnId == @return.Id).ToList();

                var handler = new AddReturnReportOnHandler(A.Fake <IWeeeAuthorization>(), dataAccess, context);

                var deselectOptions = new List <int>()
                {
                    1, 2, 3, 4, 5
                };
                var coreReportOnQuestions = CreateReportQuestions();

                var request = new AddReturnReportOn()
                {
                    DeselectedOptions = deselectOptions, Options = coreReportOnQuestions, ReturnId = @return.Id, SelectedOptions = new List <int>()
                };

                await handler.HandleAsync(request);

                AssertWeeeReceivedDeletion(context, submittedWeeeReceived, submittedWeeeReturnScheme, submittedWeeeReceivedAmounts);
                AssertWeeeReusedDeletion(context, submittedWeeeReused, submittedWeeeReusedAddresses, submittedWeeeReusedAmounts, submittedWeeeReusedSites);
                AssertWeeeSentOnDeletion(context, submittedWeeeSentOn, submittedWeeeSentOnAddresses, submittedWeeeSentOnAmounts);
                AssertNonObligatedWeeeDeletion(context, submittedNonObligatedWeee);
            }
        }