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); } }
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); } } }
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); } }
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); } }
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); } }
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); } }
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); } }
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); } }