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); } }
public async void FetchActiveOrganisationUsers_GivenOrganisationId_ReturnsActiveUsersLinkedToOrganisations() { using (DatabaseWrapper database = new DatabaseWrapper()) { ModelHelper helper = new ModelHelper(database.Model); DomainHelper domainHelper = new DomainHelper(database.WeeeContext); var organisation = helper.CreateOrganisation(); var organisation2 = helper.CreateOrganisation(); var user = helper.CreateOrganisationUser(organisation, "*****@*****.**", 2); var user2 = helper.CreateOrganisationUser(organisation, "*****@*****.**", 1); var user3 = helper.CreateOrganisationUser(organisation, "*****@*****.**", 2); database.Model.SaveChanges(); var dataAccess = new GetActiveOrganisationUsersDataAccess(database.WeeeContext); var results = await dataAccess.FetchActiveOrganisationUsers(organisation.Id); foreach (var activeUser in results) { activeUser.UserStatus.Value.Should().Be(2); activeUser.OrganisationId.Should().Be(organisation.Id); } } }
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 FetchResultsAsync_WithUnsubmittedReturnData_ReturnsEmptyList() { using (Weee.Tests.Core.Model.DatabaseWrapper wrapper = new Weee.Tests.Core.Model.DatabaseWrapper()) { Organisation organisation = Organisation.CreateSoleTrader("Test Organisation"); Scheme scheme = new Scheme(organisation); Quarter quarter = new Quarter(2099, QuarterType.Q1); DataReturn dataReturn = new DataReturn(scheme, quarter); DataReturnVersion version = new DataReturnVersion(dataReturn); WeeeCollectedAmount amount1 = new WeeeCollectedAmount( WeeeCollectedAmountSourceType.Dcf, ObligationType.B2C, WeeeCategory.LargeHouseholdAppliances, 123.456m); version.WeeeCollectedReturnVersion.AddWeeeCollectedAmount(amount1); wrapper.WeeeContext.DataReturns.Add(dataReturn); await wrapper.WeeeContext.SaveChangesAsync(); // Act FetchSummaryCsvDataAccess dataAccess = new FetchSummaryCsvDataAccess(wrapper.WeeeContext); List <DataReturnSummaryCsvData> results = await dataAccess.FetchResultsAsync(scheme.Id, 2099); // Assert Assert.NotNull(results); Assert.Empty(results); } }
public async Task FetchResultsAsync_WithUnsubmittedReturnData_ReturnsEmptyList() { using (Weee.Tests.Core.Model.DatabaseWrapper wrapper = new Weee.Tests.Core.Model.DatabaseWrapper()) { Organisation organisation = Organisation.CreateSoleTrader("Test Organisation"); Scheme scheme = new Scheme(organisation); Quarter quarter = new Quarter(2099, QuarterType.Q1); DataReturn dataReturn = new DataReturn(scheme, quarter); DataReturnVersion version = new DataReturnVersion(dataReturn); WeeeCollectedAmount amount1 = new WeeeCollectedAmount( WeeeCollectedAmountSourceType.Dcf, ObligationType.B2C, WeeeCategory.LargeHouseholdAppliances, 123.456m); version.WeeeCollectedReturnVersion.AddWeeeCollectedAmount(amount1); wrapper.WeeeContext.DataReturns.Add(dataReturn); await wrapper.WeeeContext.SaveChangesAsync(); // Act FetchSummaryCsvDataAccess dataAccess = new FetchSummaryCsvDataAccess(wrapper.WeeeContext); List<DataReturnSummaryCsvData> results = await dataAccess.FetchResultsAsync(scheme.Id, 2099); // Assert Assert.NotNull(results); Assert.Empty(results); } }
public async Task FetchActiveOrganisationUsers_ReturnsSpecifiedUsers() { using (DatabaseWrapper database = new DatabaseWrapper()) { // Arrange ModelHelper helper = new ModelHelper(database.Model); DomainHelper domainHelper = new DomainHelper(database.WeeeContext); var organisation = helper.CreateOrganisation(); var organisationUser = helper.CreateOrganisationUser(organisation, "*****@*****.**", 2); var organisation2 = helper.CreateOrganisation(); var organisationUser2 = helper.CreateOrganisationUser(organisation2, "*****@*****.**", 2); database.Model.SaveChanges(); var dataAccess = new OrganisationUserRequestEventHandlerDataAccess(database.WeeeContext); // Act var results = await dataAccess.FetchActiveOrganisationUsers(organisation.Id); // Assert foreach (var result in results) { result.User.Email.Should().Be(organisationUser.AspNetUser.Email); } } }
public async Task GetFilteredAatfsDataAccess_ByName_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 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()); await genericDataAccess.Add <Aatf>(aatf); var filteredListWithAatf = await dataAccess.GetFilteredAatfs(new Core.AatfReturn.AatfFilter { Name = "k" }); var filteredListWithoutAatf = await dataAccess.GetFilteredAatfs(new Core.AatfReturn.AatfFilter { Name = "z" }); filteredListWithAatf.Should().Contain(aatf); filteredListWithoutAatf.Should().NotContain(aatf); } }
public async void GetSchemesExternalHandlerHandleAsync_GivenGetSchemeExternalRequest_ReturnListOfSchemesThatAreApprovedOrWithdrawn() { using (var database = new DatabaseWrapper()) { var context = database.WeeeContext; var mapper = new SchemeMap(A.Fake <IMapper>(), A.Fake <IMap <Address, AddressData> >(), A.Fake <IMap <Contact, ContactData> >()); var name = "Test Name" + Guid.NewGuid(); var tradingName = "Test Trading Name" + Guid.NewGuid(); const string crn = "ABC12345"; var organisationApproved = Organisation.CreateRegisteredCompany(name, crn, tradingName); organisationApproved.OrganisationStatus = OrganisationStatus.Complete; var organisationPending = Organisation.CreateRegisteredCompany(name, crn, tradingName); organisationPending.OrganisationStatus = OrganisationStatus.Complete; var organisationWithdrawn = Organisation.CreateRegisteredCompany(name, crn, tradingName); organisationWithdrawn.OrganisationStatus = OrganisationStatus.Complete; var organisationRejected = Organisation.CreateRegisteredCompany(name, crn, tradingName); organisationRejected.OrganisationStatus = OrganisationStatus.Complete; context.Organisations.Add(organisationApproved); context.Organisations.Add(organisationPending); context.Organisations.Add(organisationWithdrawn); context.Organisations.Add(organisationRejected); await context.SaveChangesAsync(); var schemeApproved = new Scheme(organisationApproved.Id); schemeApproved.SetStatus(SchemeStatus.Approved); context.Schemes.Add(schemeApproved); var schemeApprovedData = mapper.Map(schemeApproved); var schemePending = new Scheme(organisationPending.Id); schemePending.SetStatus(SchemeStatus.Pending); context.Schemes.Add(schemePending); var schemeWithdrawn = new Scheme(organisationWithdrawn.Id); schemeWithdrawn.SetStatus(SchemeStatus.Approved); schemeWithdrawn.SetStatus(SchemeStatus.Withdrawn); context.Schemes.Add(schemeWithdrawn); var schemeWithdrawnData = mapper.Map(schemeWithdrawn); var schemeRejected = new Scheme(organisationRejected.Id); schemeRejected.SetStatus(SchemeStatus.Rejected); context.Schemes.Add(schemeRejected); await context.SaveChangesAsync(); var dataAccess = new GetSchemesDataAccess(database.WeeeContext); var results = await dataAccess.GetCompleteSchemes(); var handler = new GetSchemesExternalHandler(dataAccess, mapper, A.Fake <IWeeeAuthorization>()); var request = new GetSchemesExternal(); var schemeDataList = new List <SchemeData>(); var result = await handler.HandleAsync(request); } }
public async Task FetchResultsAsync_WithReturnDataForTowQuarters_ReturnsOneResultForEachQuarter() { using (Weee.Tests.Core.Model.DatabaseWrapper wrapper = new Weee.Tests.Core.Model.DatabaseWrapper()) { // Arrange Organisation organisation = Organisation.CreateSoleTrader("Test Organisation"); Scheme scheme = new Scheme(organisation); Quarter quarter1 = new Quarter(2099, QuarterType.Q1); DataReturn dataReturnQ1 = new DataReturn(scheme, quarter1); DataReturnVersion versionQ1 = new DataReturnVersion(dataReturnQ1); WeeeCollectedAmount amountQ1 = new WeeeCollectedAmount( WeeeCollectedAmountSourceType.Dcf, ObligationType.B2C, WeeeCategory.LargeHouseholdAppliances, 123.456m); versionQ1.WeeeCollectedReturnVersion.AddWeeeCollectedAmount(amountQ1); wrapper.WeeeContext.DataReturns.Add(dataReturnQ1); await wrapper.WeeeContext.SaveChangesAsync(); dataReturnQ1.SetCurrentVersion(versionQ1); await wrapper.WeeeContext.SaveChangesAsync(); Quarter quarter2 = new Quarter(2099, QuarterType.Q2); DataReturn dataReturnQ2 = new DataReturn(scheme, quarter2); DataReturnVersion versionQ2 = new DataReturnVersion(dataReturnQ2); WeeeCollectedAmount amountQ2 = new WeeeCollectedAmount( WeeeCollectedAmountSourceType.Dcf, ObligationType.B2C, WeeeCategory.LargeHouseholdAppliances, 123.456m); versionQ2.WeeeCollectedReturnVersion.AddWeeeCollectedAmount(amountQ2); wrapper.WeeeContext.DataReturns.Add(dataReturnQ2); await wrapper.WeeeContext.SaveChangesAsync(); dataReturnQ2.SetCurrentVersion(versionQ2); await wrapper.WeeeContext.SaveChangesAsync(); // Act FetchSummaryCsvDataAccess dataAccess = new FetchSummaryCsvDataAccess(wrapper.WeeeContext); List <DataReturnSummaryCsvData> results = await dataAccess.FetchResultsAsync(scheme.Id, 2099); // Assert Assert.NotNull(results); Assert.Equal(2, results.Count); Assert.Collection(results, r => Assert.Equal(1, r.Quarter), r => Assert.Equal(2, r.Quarter)); } }
public async Task FetchResultsAsync_WithLargeHouseHoldAppliancesAmount_ReturnsNullForAllOtherCategories() { using (Weee.Tests.Core.Model.DatabaseWrapper wrapper = new Weee.Tests.Core.Model.DatabaseWrapper()) { // Arrange Organisation organisation = Organisation.CreateSoleTrader("Test Organisation"); Scheme scheme = new Scheme(organisation); Quarter quarter = new Quarter(2099, QuarterType.Q1); DataReturn dataReturn = new DataReturn(scheme, quarter); DataReturnVersion version = new DataReturnVersion(dataReturn); WeeeCollectedAmount amount1 = new WeeeCollectedAmount( WeeeCollectedAmountSourceType.Dcf, ObligationType.B2C, WeeeCategory.LargeHouseholdAppliances, 123.456m); version.WeeeCollectedReturnVersion.AddWeeeCollectedAmount(amount1); wrapper.WeeeContext.DataReturns.Add(dataReturn); await wrapper.WeeeContext.SaveChangesAsync(); dataReturn.SetCurrentVersion(version); await wrapper.WeeeContext.SaveChangesAsync(); // Act FetchSummaryCsvDataAccess dataAccess = new FetchSummaryCsvDataAccess(wrapper.WeeeContext); List <DataReturnSummaryCsvData> results = await dataAccess.FetchResultsAsync(scheme.Id, 2099); // Assert Assert.NotNull(results); Assert.Equal(1, results.Count); DataReturnSummaryCsvData result = results[0]; Assert.NotNull(result); Assert.NotNull(result.Category1); Assert.Null(result.Category2); Assert.Null(result.Category3); Assert.Null(result.Category4); Assert.Null(result.Category5); Assert.Null(result.Category6); Assert.Null(result.Category7); Assert.Null(result.Category8); Assert.Null(result.Category9); Assert.Null(result.Category10); Assert.Null(result.Category11); Assert.Null(result.Category12); Assert.Null(result.Category13); Assert.Null(result.Category14); } }
public async Task FetchResultsAsync_WithSeveralOutputAmounts_ReturnsSumOfAmounts() { using (Weee.Tests.Core.Model.DatabaseWrapper wrapper = new Weee.Tests.Core.Model.DatabaseWrapper()) { // Arrange Organisation organisation = Organisation.CreateSoleTrader("Test Organisation"); Scheme scheme = new Scheme(organisation); RegisteredProducer registeredProducer1 = new RegisteredProducer("WEE/AA1111AA", 2099, scheme); RegisteredProducer registeredProducer2 = new RegisteredProducer("WEE/BB2222BB", 2099, scheme); Quarter quarter = new Quarter(2099, QuarterType.Q1); DataReturn dataReturn = new DataReturn(scheme, quarter); DataReturnVersion version = new DataReturnVersion(dataReturn); EeeOutputAmount amount1 = new EeeOutputAmount( ObligationType.B2C, WeeeCategory.LargeHouseholdAppliances, 100, registeredProducer1); version.EeeOutputReturnVersion.AddEeeOutputAmount(amount1); EeeOutputAmount amount2 = new EeeOutputAmount( ObligationType.B2C, WeeeCategory.LargeHouseholdAppliances, 200, registeredProducer2); version.EeeOutputReturnVersion.AddEeeOutputAmount(amount2); wrapper.WeeeContext.DataReturns.Add(dataReturn); await wrapper.WeeeContext.SaveChangesAsync(); dataReturn.SetCurrentVersion(version); await wrapper.WeeeContext.SaveChangesAsync(); // Act FetchSummaryCsvDataAccess dataAccess = new FetchSummaryCsvDataAccess(wrapper.WeeeContext); List <DataReturnSummaryCsvData> results = await dataAccess.FetchResultsAsync(scheme.Id, 2099); // Assert Assert.NotNull(results); Assert.Equal(1, results.Count); DataReturnSummaryCsvData result = results[0]; Assert.NotNull(result); Assert.Equal(300, result.Category1); } }
public async Task FetchResultsAsync_WithQ1ReturnDataWithDeliveredToAeB2CAmount_ReturnsOneResultForQ1Type1Source1B2C() { using (Weee.Tests.Core.Model.DatabaseWrapper wrapper = new Weee.Tests.Core.Model.DatabaseWrapper()) { // Arrange Organisation organisation = Organisation.CreateSoleTrader("Test Organisation"); Scheme scheme = new Scheme(organisation); Quarter quarter = new Quarter(2099, QuarterType.Q1); DataReturn dataReturn = new DataReturn(scheme, quarter); DataReturnVersion version = new DataReturnVersion(dataReturn); WeeeDeliveredAmount amount1 = new WeeeDeliveredAmount( ObligationType.B2C, WeeeCategory.LargeHouseholdAppliances, 123.456m, new AeDeliveryLocation("WEE/AA1111AA/AE", string.Empty)); version.WeeeDeliveredReturnVersion.AddWeeeDeliveredAmount(amount1); wrapper.WeeeContext.DataReturns.Add(dataReturn); await wrapper.WeeeContext.SaveChangesAsync(); dataReturn.SetCurrentVersion(version); await wrapper.WeeeContext.SaveChangesAsync(); // Act FetchSummaryCsvDataAccess dataAccess = new FetchSummaryCsvDataAccess(wrapper.WeeeContext); List <DataReturnSummaryCsvData> results = await dataAccess.FetchResultsAsync(scheme.Id, 2099); // Assert Assert.NotNull(results); Assert.Equal(1, results.Count); DataReturnSummaryCsvData result = results[0]; Assert.NotNull(result); Assert.Equal(1, result.Quarter); Assert.Equal(1, result.Type); Assert.Equal(1, result.Source); Assert.Equal("B2C", result.ObligationType); } }
public async void FetchActiveOrganisationUsers_GivenOrganisationId_UsersShouldBeOrganisedByEmails() { using (DatabaseWrapper database = new DatabaseWrapper()) { ModelHelper helper = new ModelHelper(database.Model); DomainHelper domainHelper = new DomainHelper(database.WeeeContext); var organisation = helper.CreateOrganisation(); var user = helper.CreateOrganisationUser(organisation, "*****@*****.**", 2); var user2 = helper.CreateOrganisationUser(organisation, "*****@*****.**", 2); database.Model.SaveChanges(); var dataAccess = new GetActiveOrganisationUsersDataAccess(database.WeeeContext); var results = await dataAccess.FetchActiveOrganisationUsers(organisation.Id); results.Should().BeInAscendingOrder(x => x.User.Email); } }
public async Task GetSchemesDataAccess_GetCompleteSchemes_ReturnsOnlySchemesWithCompleteOrganisations() { using (DatabaseWrapper database = new DatabaseWrapper()) { // Arrange ModelHelper helper = new ModelHelper(database.Model); var organisation1 = helper.CreateOrganisation(); organisation1.OrganisationType = 3; organisation1.OrganisationStatus = 2; // Complete organisation var scheme1 = helper.CreateScheme(organisation1); var organisation2 = helper.CreateOrganisation(); organisation2.OrganisationType = 1; organisation2.OrganisationStatus = 2; // Complete organisation var scheme2 = helper.CreateScheme(organisation2); var organisation3 = helper.CreateOrganisation(); organisation3.OrganisationType = 1; organisation3.OrganisationStatus = 1; // Incomplete organisation var scheme3 = helper.CreateScheme(organisation3); var organisation4 = helper.CreateOrganisation(); organisation4.OrganisationType = 2; organisation4.OrganisationStatus = 1; // Incomplete organisation var scheme4 = helper.CreateScheme(organisation4); database.Model.SaveChanges(); var dataAccess = new GetSchemesDataAccess(database.WeeeContext); // Act var result = await dataAccess.GetCompleteSchemes(); // Assert Assert.Contains(result, r => r.Id == scheme1.Id); Assert.Contains(result, r => r.Id == scheme2.Id); Assert.DoesNotContain(result, r => r.Id == scheme3.Id); Assert.DoesNotContain(result, r => r.Id == scheme4.Id); } }
public async Task GetSchemesDataAccess_GetCompleteSchemes_ReturnsOnlySchemesWithCompleteOrganisations() { using (DatabaseWrapper database = new DatabaseWrapper()) { // Arrange ModelHelper helper = new ModelHelper(database.Model); var organisation1 = helper.CreateOrganisation(); organisation1.OrganisationType = 3; organisation1.OrganisationStatus = 2; // Complete organisation var scheme1 = helper.CreateScheme(organisation1); var organisation2 = helper.CreateOrganisation(); organisation2.OrganisationType = 1; organisation2.OrganisationStatus = 2; // Complete organisation var scheme2 = helper.CreateScheme(organisation2); var organisation3 = helper.CreateOrganisation(); organisation3.OrganisationType = 1; organisation3.OrganisationStatus = 1; // Incomplete organisation var scheme3 = helper.CreateScheme(organisation3); var organisation4 = helper.CreateOrganisation(); organisation4.OrganisationType = 2; organisation4.OrganisationStatus = 1; // Incomplete organisation var scheme4 = helper.CreateScheme(organisation4); database.Model.SaveChanges(); var dataAccess = new GetSchemesDataAccess(database.WeeeContext); // Act var result = await dataAccess.GetCompleteSchemes(); // Assert Assert.Contains(result, r => r.Id == scheme1.Id); Assert.Contains(result, r => r.Id == scheme2.Id); Assert.DoesNotContain(result, r => r.Id == scheme3.Id); Assert.DoesNotContain(result, r => r.Id == scheme4.Id); } }
public async Task FetchOrganisation_ReturnsSpecifiedOrganisation() { using (DatabaseWrapper database = new DatabaseWrapper()) { // Arrange ModelHelper helper = new ModelHelper(database.Model); DomainHelper domainHelper = new DomainHelper(database.WeeeContext); var organisation = helper.CreateOrganisation(); organisation.Name = "Organisation"; database.Model.SaveChanges(); var dataAccess = new OrganisationUserRequestEventHandlerDataAccess(database.WeeeContext); // Act var result = await dataAccess.FetchOrganisation(organisation.Id); // Assert result.Name.Should().Be(organisation.Name); } }
public async Task FetchUser_ReturnsSpecifiedUser() { using (DatabaseWrapper database = new DatabaseWrapper()) { // Arrange ModelHelper helper = new ModelHelper(database.Model); DomainHelper domainHelper = new DomainHelper(database.WeeeContext); var user = helper.CreateUser("*****@*****.**", Weee.Tests.Core.Model.IdType.Guid); var user2 = helper.CreateUser("*****@*****.**", Weee.Tests.Core.Model.IdType.Guid); database.Model.SaveChanges(); var dataAccess = new OrganisationUserRequestEventHandlerDataAccess(database.WeeeContext); // Act var result = await dataAccess.FetchUser(user.Id); // Assert result.Email.Should().Be(user.UserName); } }
public async Task FetchResultsAsync_WithLargeHouseHoldAppliancesAmount_ReturnsNullForAllOtherCategories() { using (Weee.Tests.Core.Model.DatabaseWrapper wrapper = new Weee.Tests.Core.Model.DatabaseWrapper()) { // Arrange Organisation organisation = Organisation.CreateSoleTrader("Test Organisation"); Scheme scheme = new Scheme(organisation); Quarter quarter = new Quarter(2099, QuarterType.Q1); DataReturn dataReturn = new DataReturn(scheme, quarter); DataReturnVersion version = new DataReturnVersion(dataReturn); WeeeCollectedAmount amount1 = new WeeeCollectedAmount( WeeeCollectedAmountSourceType.Dcf, ObligationType.B2C, WeeeCategory.LargeHouseholdAppliances, 123.456m); version.WeeeCollectedReturnVersion.AddWeeeCollectedAmount(amount1); wrapper.WeeeContext.DataReturns.Add(dataReturn); await wrapper.WeeeContext.SaveChangesAsync(); dataReturn.SetCurrentVersion(version); await wrapper.WeeeContext.SaveChangesAsync(); // Act FetchSummaryCsvDataAccess dataAccess = new FetchSummaryCsvDataAccess(wrapper.WeeeContext); List<DataReturnSummaryCsvData> results = await dataAccess.FetchResultsAsync(scheme.Id, 2099); // Assert Assert.NotNull(results); Assert.Equal(1, results.Count); DataReturnSummaryCsvData result = results[0]; Assert.NotNull(result); Assert.NotNull(result.Category1); Assert.Null(result.Category2); Assert.Null(result.Category3); Assert.Null(result.Category4); Assert.Null(result.Category5); Assert.Null(result.Category6); Assert.Null(result.Category7); Assert.Null(result.Category8); Assert.Null(result.Category9); Assert.Null(result.Category10); Assert.Null(result.Category11); Assert.Null(result.Category12); Assert.Null(result.Category13); Assert.Null(result.Category14); } }
public async Task FetchResultsAsync_WithOneAmountOfEachTypeAndSourceAndObligationType_ReturnsResultForEachAmountWithCorrectOrdering() { using (Weee.Tests.Core.Model.DatabaseWrapper wrapper = new Weee.Tests.Core.Model.DatabaseWrapper()) { // Arrange Organisation organisation = Organisation.CreateSoleTrader("Test Organisation"); Scheme scheme = new Scheme(organisation); RegisteredProducer registeredProducer1 = new RegisteredProducer("WEE/AA9365AA", 2099, scheme); Quarter quarter = new Quarter(2099, QuarterType.Q1); DataReturn dataReturn = new DataReturn(scheme, quarter); DataReturnVersion version = new DataReturnVersion(dataReturn); WeeeCollectedAmount amountCollectedDcfB2C = new WeeeCollectedAmount( WeeeCollectedAmountSourceType.Dcf, ObligationType.B2C, WeeeCategory.LargeHouseholdAppliances, 123.456m); version.WeeeCollectedReturnVersion.AddWeeeCollectedAmount(amountCollectedDcfB2C); WeeeCollectedAmount amountCollectedDistributor = new WeeeCollectedAmount( WeeeCollectedAmountSourceType.Distributor, ObligationType.B2C, WeeeCategory.LargeHouseholdAppliances, 123.456m); version.WeeeCollectedReturnVersion.AddWeeeCollectedAmount(amountCollectedDistributor); WeeeCollectedAmount amountCollectedFinalHolder = new WeeeCollectedAmount( WeeeCollectedAmountSourceType.FinalHolder, ObligationType.B2C, WeeeCategory.LargeHouseholdAppliances, 123.456m); version.WeeeCollectedReturnVersion.AddWeeeCollectedAmount(amountCollectedFinalHolder); WeeeDeliveredAmount amountDeliveredAatfB2C = new WeeeDeliveredAmount( ObligationType.B2C, WeeeCategory.LargeHouseholdAppliances, 123.456m, new AatfDeliveryLocation("WEE/AA6845AA/ATF", string.Empty)); version.WeeeDeliveredReturnVersion.AddWeeeDeliveredAmount(amountDeliveredAatfB2C); WeeeDeliveredAmount amountDeliveredAeB2C = new WeeeDeliveredAmount( ObligationType.B2C, WeeeCategory.LargeHouseholdAppliances, 123.456m, new AeDeliveryLocation("WEE/AA2658AA/AE", string.Empty)); version.WeeeDeliveredReturnVersion.AddWeeeDeliveredAmount(amountDeliveredAeB2C); EeeOutputAmount amountOutputB2C = new EeeOutputAmount( ObligationType.B2C, WeeeCategory.LargeHouseholdAppliances, 123.456m, registeredProducer1); version.EeeOutputReturnVersion.AddEeeOutputAmount(amountOutputB2C); WeeeCollectedAmount amountCollectedDcfB2B = new WeeeCollectedAmount( WeeeCollectedAmountSourceType.Dcf, ObligationType.B2B, WeeeCategory.LargeHouseholdAppliances, 123.456m); version.WeeeCollectedReturnVersion.AddWeeeCollectedAmount(amountCollectedDcfB2B); WeeeDeliveredAmount amountDeliveredAatfB2B = new WeeeDeliveredAmount( ObligationType.B2B, WeeeCategory.LargeHouseholdAppliances, 123.456m, new AatfDeliveryLocation("WEE/AA7445AA/ATF", string.Empty)); version.WeeeDeliveredReturnVersion.AddWeeeDeliveredAmount(amountDeliveredAatfB2B); WeeeDeliveredAmount amountDeliveredAeB2B = new WeeeDeliveredAmount( ObligationType.B2B, WeeeCategory.LargeHouseholdAppliances, 123.456m, new AeDeliveryLocation("WEE/AA3658AA/AE", string.Empty)); version.WeeeDeliveredReturnVersion.AddWeeeDeliveredAmount(amountDeliveredAeB2B); EeeOutputAmount amountOutputB2B = new EeeOutputAmount( ObligationType.B2B, WeeeCategory.LargeHouseholdAppliances, 123.456m, registeredProducer1); version.EeeOutputReturnVersion.AddEeeOutputAmount(amountOutputB2B); wrapper.WeeeContext.DataReturns.Add(dataReturn); await wrapper.WeeeContext.SaveChangesAsync(); dataReturn.SetCurrentVersion(version); await wrapper.WeeeContext.SaveChangesAsync(); // Act FetchSummaryCsvDataAccess dataAccess = new FetchSummaryCsvDataAccess(wrapper.WeeeContext); List <DataReturnSummaryCsvData> results = await dataAccess.FetchResultsAsync(scheme.Id, 2099); // Assert Assert.NotNull(results); Assert.Equal(10, results.Count); Assert.Collection(results, r => { Assert.Equal(0, r.Type); Assert.Equal(0, r.Source); Assert.Equal("B2C", r.ObligationType); }, r => { Assert.Equal(0, r.Type); Assert.Equal(0, r.Source); Assert.Equal("B2B", r.ObligationType); }, r => { Assert.Equal(0, r.Type); Assert.Equal(1, r.Source); Assert.Equal("B2C", r.ObligationType); }, r => { Assert.Equal(0, r.Type); Assert.Equal(2, r.Source); Assert.Equal("B2C", r.ObligationType); }, r => { Assert.Equal(1, r.Type); Assert.Equal(0, r.Source); Assert.Equal("B2C", r.ObligationType); }, r => { Assert.Equal(1, r.Type); Assert.Equal(0, r.Source); Assert.Equal("B2B", r.ObligationType); }, r => { Assert.Equal(1, r.Type); Assert.Equal(1, r.Source); Assert.Equal("B2C", r.ObligationType); }, r => { Assert.Equal(1, r.Type); Assert.Equal(1, r.Source); Assert.Equal("B2B", r.ObligationType); }, r => { Assert.Equal(2, r.Type); Assert.Equal(null, r.Source); Assert.Equal("B2C", r.ObligationType); }, r => { Assert.Equal(2, r.Type); Assert.Equal(null, r.Source); Assert.Equal("B2B", r.ObligationType); }); } }
public async Task FetchResultsAsync_WithSeveralOutputAmounts_ReturnsSumOfAmounts() { using (Weee.Tests.Core.Model.DatabaseWrapper wrapper = new Weee.Tests.Core.Model.DatabaseWrapper()) { // Arrange Organisation organisation = Organisation.CreateSoleTrader("Test Organisation"); Scheme scheme = new Scheme(organisation); RegisteredProducer registeredProducer1 = new RegisteredProducer("WEE/AA1111AA", 2099, scheme); RegisteredProducer registeredProducer2 = new RegisteredProducer("WEE/BB2222BB", 2099, scheme); Quarter quarter = new Quarter(2099, QuarterType.Q1); DataReturn dataReturn = new DataReturn(scheme, quarter); DataReturnVersion version = new DataReturnVersion(dataReturn); EeeOutputAmount amount1 = new EeeOutputAmount( ObligationType.B2C, WeeeCategory.LargeHouseholdAppliances, 100, registeredProducer1); version.EeeOutputReturnVersion.AddEeeOutputAmount(amount1); EeeOutputAmount amount2 = new EeeOutputAmount( ObligationType.B2C, WeeeCategory.LargeHouseholdAppliances, 200, registeredProducer2); version.EeeOutputReturnVersion.AddEeeOutputAmount(amount2); wrapper.WeeeContext.DataReturns.Add(dataReturn); await wrapper.WeeeContext.SaveChangesAsync(); dataReturn.SetCurrentVersion(version); await wrapper.WeeeContext.SaveChangesAsync(); // Act FetchSummaryCsvDataAccess dataAccess = new FetchSummaryCsvDataAccess(wrapper.WeeeContext); List<DataReturnSummaryCsvData> results = await dataAccess.FetchResultsAsync(scheme.Id, 2099); // Assert Assert.NotNull(results); Assert.Equal(1, results.Count); DataReturnSummaryCsvData result = results[0]; Assert.NotNull(result); Assert.Equal(300, result.Category1); } }
public async Task FetchResultsAsync_WithQ1ReturnDataWithDeliveredToAeB2CAmount_ReturnsOneResultForQ1Type1Source1B2C() { using (Weee.Tests.Core.Model.DatabaseWrapper wrapper = new Weee.Tests.Core.Model.DatabaseWrapper()) { // Arrange Organisation organisation = Organisation.CreateSoleTrader("Test Organisation"); Scheme scheme = new Scheme(organisation); Quarter quarter = new Quarter(2099, QuarterType.Q1); DataReturn dataReturn = new DataReturn(scheme, quarter); DataReturnVersion version = new DataReturnVersion(dataReturn); WeeeDeliveredAmount amount1 = new WeeeDeliveredAmount( ObligationType.B2C, WeeeCategory.LargeHouseholdAppliances, 123.456m, new AeDeliveryLocation("WEE/AA1111AA/AE", string.Empty)); version.WeeeDeliveredReturnVersion.AddWeeeDeliveredAmount(amount1); wrapper.WeeeContext.DataReturns.Add(dataReturn); await wrapper.WeeeContext.SaveChangesAsync(); dataReturn.SetCurrentVersion(version); await wrapper.WeeeContext.SaveChangesAsync(); // Act FetchSummaryCsvDataAccess dataAccess = new FetchSummaryCsvDataAccess(wrapper.WeeeContext); List<DataReturnSummaryCsvData> results = await dataAccess.FetchResultsAsync(scheme.Id, 2099); // Assert Assert.NotNull(results); Assert.Equal(1, results.Count); DataReturnSummaryCsvData result = results[0]; Assert.NotNull(result); Assert.Equal(1, result.Quarter); Assert.Equal(1, result.Type); Assert.Equal(1, result.Source); Assert.Equal("B2C", result.ObligationType); } }
public async Task FetchResultsAsync_WithOneAmountOfEachTypeAndSourceAndObligationType_ReturnsResultForEachAmountWithCorrectOrdering() { using (Weee.Tests.Core.Model.DatabaseWrapper wrapper = new Weee.Tests.Core.Model.DatabaseWrapper()) { // Arrange Organisation organisation = Organisation.CreateSoleTrader("Test Organisation"); Scheme scheme = new Scheme(organisation); RegisteredProducer registeredProducer1 = new RegisteredProducer("WEE/AA9365AA", 2099, scheme); Quarter quarter = new Quarter(2099, QuarterType.Q1); DataReturn dataReturn = new DataReturn(scheme, quarter); DataReturnVersion version = new DataReturnVersion(dataReturn); WeeeCollectedAmount amountCollectedDcfB2C = new WeeeCollectedAmount( WeeeCollectedAmountSourceType.Dcf, ObligationType.B2C, WeeeCategory.LargeHouseholdAppliances, 123.456m); version.WeeeCollectedReturnVersion.AddWeeeCollectedAmount(amountCollectedDcfB2C); WeeeCollectedAmount amountCollectedDistributor = new WeeeCollectedAmount( WeeeCollectedAmountSourceType.Distributor, ObligationType.B2C, WeeeCategory.LargeHouseholdAppliances, 123.456m); version.WeeeCollectedReturnVersion.AddWeeeCollectedAmount(amountCollectedDistributor); WeeeCollectedAmount amountCollectedFinalHolder = new WeeeCollectedAmount( WeeeCollectedAmountSourceType.FinalHolder, ObligationType.B2C, WeeeCategory.LargeHouseholdAppliances, 123.456m); version.WeeeCollectedReturnVersion.AddWeeeCollectedAmount(amountCollectedFinalHolder); WeeeDeliveredAmount amountDeliveredAatfB2C = new WeeeDeliveredAmount( ObligationType.B2C, WeeeCategory.LargeHouseholdAppliances, 123.456m, new AatfDeliveryLocation("WEE/AA6845AA/ATF", string.Empty)); version.WeeeDeliveredReturnVersion.AddWeeeDeliveredAmount(amountDeliveredAatfB2C); WeeeDeliveredAmount amountDeliveredAeB2C = new WeeeDeliveredAmount( ObligationType.B2C, WeeeCategory.LargeHouseholdAppliances, 123.456m, new AeDeliveryLocation("WEE/AA2658AA/AE", string.Empty)); version.WeeeDeliveredReturnVersion.AddWeeeDeliveredAmount(amountDeliveredAeB2C); EeeOutputAmount amountOutputB2C = new EeeOutputAmount( ObligationType.B2C, WeeeCategory.LargeHouseholdAppliances, 123.456m, registeredProducer1); version.EeeOutputReturnVersion.AddEeeOutputAmount(amountOutputB2C); WeeeCollectedAmount amountCollectedDcfB2B = new WeeeCollectedAmount( WeeeCollectedAmountSourceType.Dcf, ObligationType.B2B, WeeeCategory.LargeHouseholdAppliances, 123.456m); version.WeeeCollectedReturnVersion.AddWeeeCollectedAmount(amountCollectedDcfB2B); WeeeDeliveredAmount amountDeliveredAatfB2B = new WeeeDeliveredAmount( ObligationType.B2B, WeeeCategory.LargeHouseholdAppliances, 123.456m, new AatfDeliveryLocation("WEE/AA7445AA/ATF", string.Empty)); version.WeeeDeliveredReturnVersion.AddWeeeDeliveredAmount(amountDeliveredAatfB2B); WeeeDeliveredAmount amountDeliveredAeB2B = new WeeeDeliveredAmount( ObligationType.B2B, WeeeCategory.LargeHouseholdAppliances, 123.456m, new AeDeliveryLocation("WEE/AA3658AA/AE", string.Empty)); version.WeeeDeliveredReturnVersion.AddWeeeDeliveredAmount(amountDeliveredAeB2B); EeeOutputAmount amountOutputB2B = new EeeOutputAmount( ObligationType.B2B, WeeeCategory.LargeHouseholdAppliances, 123.456m, registeredProducer1); version.EeeOutputReturnVersion.AddEeeOutputAmount(amountOutputB2B); wrapper.WeeeContext.DataReturns.Add(dataReturn); await wrapper.WeeeContext.SaveChangesAsync(); dataReturn.SetCurrentVersion(version); await wrapper.WeeeContext.SaveChangesAsync(); // Act FetchSummaryCsvDataAccess dataAccess = new FetchSummaryCsvDataAccess(wrapper.WeeeContext); List<DataReturnSummaryCsvData> results = await dataAccess.FetchResultsAsync(scheme.Id, 2099); // Assert Assert.NotNull(results); Assert.Equal(10, results.Count); Assert.Collection(results, r => { Assert.Equal(0, r.Type); Assert.Equal(0, r.Source); Assert.Equal("B2C", r.ObligationType); }, r => { Assert.Equal(0, r.Type); Assert.Equal(0, r.Source); Assert.Equal("B2B", r.ObligationType); }, r => { Assert.Equal(0, r.Type); Assert.Equal(1, r.Source); Assert.Equal("B2C", r.ObligationType); }, r => { Assert.Equal(0, r.Type); Assert.Equal(2, r.Source); Assert.Equal("B2C", r.ObligationType); }, r => { Assert.Equal(1, r.Type); Assert.Equal(0, r.Source); Assert.Equal("B2C", r.ObligationType); }, r => { Assert.Equal(1, r.Type); Assert.Equal(0, r.Source); Assert.Equal("B2B", r.ObligationType); }, r => { Assert.Equal(1, r.Type); Assert.Equal(1, r.Source); Assert.Equal("B2C", r.ObligationType); }, r => { Assert.Equal(1, r.Type); Assert.Equal(1, r.Source); Assert.Equal("B2B", r.ObligationType); }, r => { Assert.Equal(2, r.Type); Assert.Equal(null, r.Source); Assert.Equal("B2C", r.ObligationType); }, r => { Assert.Equal(2, r.Type); Assert.Equal(null, r.Source); Assert.Equal("B2B", r.ObligationType); }); } }
public async Task FetchResultsAsync_WithReturnDataForTowQuarters_ReturnsOneResultForEachQuarter() { using (Weee.Tests.Core.Model.DatabaseWrapper wrapper = new Weee.Tests.Core.Model.DatabaseWrapper()) { // Arrange Organisation organisation = Organisation.CreateSoleTrader("Test Organisation"); Scheme scheme = new Scheme(organisation); Quarter quarter1 = new Quarter(2099, QuarterType.Q1); DataReturn dataReturnQ1 = new DataReturn(scheme, quarter1); DataReturnVersion versionQ1 = new DataReturnVersion(dataReturnQ1); WeeeCollectedAmount amountQ1 = new WeeeCollectedAmount( WeeeCollectedAmountSourceType.Dcf, ObligationType.B2C, WeeeCategory.LargeHouseholdAppliances, 123.456m); versionQ1.WeeeCollectedReturnVersion.AddWeeeCollectedAmount(amountQ1); wrapper.WeeeContext.DataReturns.Add(dataReturnQ1); await wrapper.WeeeContext.SaveChangesAsync(); dataReturnQ1.SetCurrentVersion(versionQ1); await wrapper.WeeeContext.SaveChangesAsync(); Quarter quarter2 = new Quarter(2099, QuarterType.Q2); DataReturn dataReturnQ2 = new DataReturn(scheme, quarter2); DataReturnVersion versionQ2 = new DataReturnVersion(dataReturnQ2); WeeeCollectedAmount amountQ2 = new WeeeCollectedAmount( WeeeCollectedAmountSourceType.Dcf, ObligationType.B2C, WeeeCategory.LargeHouseholdAppliances, 123.456m); versionQ2.WeeeCollectedReturnVersion.AddWeeeCollectedAmount(amountQ2); wrapper.WeeeContext.DataReturns.Add(dataReturnQ2); await wrapper.WeeeContext.SaveChangesAsync(); dataReturnQ2.SetCurrentVersion(versionQ2); await wrapper.WeeeContext.SaveChangesAsync(); // Act FetchSummaryCsvDataAccess dataAccess = new FetchSummaryCsvDataAccess(wrapper.WeeeContext); List<DataReturnSummaryCsvData> results = await dataAccess.FetchResultsAsync(scheme.Id, 2099); // Assert Assert.NotNull(results); Assert.Equal(2, results.Count); Assert.Collection(results, r => Assert.Equal(1, r.Quarter), r => Assert.Equal(2, r.Quarter)); } }