public void AddWeeeDeliveredAmount_WithAeDeliveryLocation_AddsToWeeeDeliveredAmounts() { // Arrange var weeeDeliveredReturnVersion = new WeeeDeliveredReturnVersion(); var deliveredAmount = new WeeeDeliveredAmount( ObligationType.B2B, A.Dummy <WeeeCategory>(), A.Dummy <decimal>(), A.Fake <AeDeliveryLocation>()); // Act weeeDeliveredReturnVersion.AddWeeeDeliveredAmount(deliveredAmount); // Assert Assert.Contains(deliveredAmount, weeeDeliveredReturnVersion.WeeeDeliveredAmounts); }
public void AddWeeeDeliveredAmount_WithAeDeliveryLocation_AddsToWeeeDeliveredAmounts() { // Arrange var weeeDeliveredReturnVersion = new WeeeDeliveredReturnVersion(); var deliveredAmount = new WeeeDeliveredAmount( ObligationType.B2B, A.Dummy<WeeeCategory>(), A.Dummy<decimal>(), A.Fake<AeDeliveryLocation>()); // Act weeeDeliveredReturnVersion.AddWeeeDeliveredAmount(deliveredAmount); // Assert Assert.Contains(deliveredAmount, weeeDeliveredReturnVersion.WeeeDeliveredAmounts); }
public void AddWeeeDeliveredAmount(WeeeDeliveredAmount weeeDeliveredAmount) { Guard.ArgumentNotNull(() => weeeDeliveredAmount, weeeDeliveredAmount); if (weeeDeliveredAmount.IsAatfDeliveredAmount) { AddAatfDeliveredAmount(weeeDeliveredAmount); } else if (weeeDeliveredAmount.IsAeDeliveredAmount) { AddAeDeliveredAmount(weeeDeliveredAmount); } }
private void AddAeDeliveredAmount(WeeeDeliveredAmount aeDeliveredAmount) { if (WeeeDeliveredAmounts .Where(r => r.IsAeDeliveredAmount) .Where(r => r.AeDeliveryLocation.ApprovalNumber == aeDeliveredAmount.AeDeliveryLocation.ApprovalNumber) .Where(r => r.WeeeCategory == aeDeliveredAmount.WeeeCategory) .Where(r => (r.ObligationType & aeDeliveredAmount.ObligationType) != ObligationType.None) .Any()) { string errorMessage = "A return item with this obligation type and category has already been added."; throw new InvalidOperationException(errorMessage); } WeeeDeliveredAmounts.Add(aeDeliveredAmount); }
public async Task FetchResultsAsync_WithSeveralDeliveredAmounts_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); 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, 100, new AatfDeliveryLocation("WEE/AA1111AA/ATF", string.Empty)); version.WeeeDeliveredReturnVersion.AddWeeeDeliveredAmount(amount1); WeeeDeliveredAmount amount2 = new WeeeDeliveredAmount( ObligationType.B2C, WeeeCategory.LargeHouseholdAppliances, 200, new AatfDeliveryLocation("WEE/BB2222BB/ATF", string.Empty)); version.WeeeDeliveredReturnVersion.AddWeeeDeliveredAmount(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 Build_ExistingLatestDataReturnVersion_WithSomeExistingWeeeDeliveredAmounts_ReturnsDataReturnVersionWithExistingWeeeDeliveredAmounts() { var weeeDeliveredAmount1 = new WeeeDeliveredAmount(ObligationType.B2C, WeeeCategory.ConsumerEquipment, 100, new AatfDeliveryLocation("ApprovalNumber", "FacilityName")); var weeeDeliveredAmount2 = new WeeeDeliveredAmount(ObligationType.B2C, WeeeCategory.ITAndTelecommsEquipment, 200, new AatfDeliveryLocation("ApprovalNumber", "FacilityName")); var weeeDeliveredAmount3 = new WeeeDeliveredAmount(ObligationType.B2C, WeeeCategory.DisplayEquipment, 100, new AeDeliveryLocation("ApprovalNumber", "FacilityName")); var weeeDeliveredAmount4 = new WeeeDeliveredAmount(ObligationType.B2C, WeeeCategory.LargeHouseholdAppliances, 300, new AeDeliveryLocation("ApprovalNumber", "OperatorName")); var weeeDeliveredReturnVersion = new WeeeDeliveredReturnVersion(); weeeDeliveredReturnVersion.AddWeeeDeliveredAmount(weeeDeliveredAmount1); weeeDeliveredReturnVersion.AddWeeeDeliveredAmount(weeeDeliveredAmount2); weeeDeliveredReturnVersion.AddWeeeDeliveredAmount(weeeDeliveredAmount3); weeeDeliveredReturnVersion.AddWeeeDeliveredAmount(weeeDeliveredAmount4); var dataReturn = new DataReturn(A.Dummy <Scheme>(), A.Dummy <Quarter>()); var dataReturnVersion = new DataReturnVersion(dataReturn, A.Dummy <WeeeCollectedReturnVersion>(), weeeDeliveredReturnVersion, A.Dummy <EeeOutputReturnVersion>()); dataReturn.SetCurrentVersion(dataReturnVersion); var helper = new DataReturnVersionBuilderHelper(); A.CallTo(() => helper.DataAccess.FetchDataReturnOrDefault()) .Returns(dataReturn); A.CallTo(() => helper.DataAccess.GetOrAddAatfDeliveryLocation(A <string> ._, A <string> ._)) .Returns(new AatfDeliveryLocation("ApprovalNumber", "FacilityName")); A.CallTo(() => helper.DataAccess.GetOrAddAeDeliveryLocation(A <string> ._, A <string> ._)) .Returns(new AeDeliveryLocation("ApprovalNumber", "OperatorName")); var builder = helper.Create(); await builder.AddAatfDeliveredAmount("ApprovalNumber", "FacilityName", WeeeCategory.ConsumerEquipment, ObligationType.B2C, 100); await builder.AddAeDeliveredAmount("ApprovalNumber", "OperatorName", WeeeCategory.LargeHouseholdAppliances, ObligationType.B2C, 300); var result = await builder.Build(); Assert.NotSame(weeeDeliveredReturnVersion, result.DataReturnVersion.WeeeDeliveredReturnVersion); Assert.Collection(result.DataReturnVersion.WeeeDeliveredReturnVersion.WeeeDeliveredAmounts, r1 => Assert.Same(weeeDeliveredAmount1, r1), r2 => Assert.Same(weeeDeliveredAmount4, r2)); }
public void CreateResults_WithQ1DeliveredAmountOfZero_PopulatesDeliveredQ1AndDeliveredTotalWithZero() { // Arrange DataReturn dataReturn = new DataReturn(A.Dummy <Domain.Scheme.Scheme>(), new Quarter(2016, QuarterType.Q1)); DataReturnVersion dataReturnVersion = new DataReturnVersion(dataReturn); WeeeDeliveredAmount weeeDeliveredAmount = new WeeeDeliveredAmount( DomainObligationType.B2C, WeeeCategory.LargeHouseholdAppliances, 0, new AatfDeliveryLocation("WEE/AA1234AA/ATF", "Facility Name")); dataReturnVersion.WeeeDeliveredReturnVersion.AddWeeeDeliveredAmount(weeeDeliveredAmount); dataReturn.SetCurrentVersion(dataReturnVersion); GetUkWeeeCsvHandler handler = new GetUkWeeeCsvHandler( A.Dummy <IWeeeAuthorization>(), A.Dummy <IGetUkWeeeCsvDataAccess>(), A.Dummy <CsvWriterFactory>()); // Act IEnumerable <GetUkWeeeCsvHandler.CsvResult> results = handler.CreateResults(new List <DataReturn>() { dataReturn }); // Assert GetUkWeeeCsvHandler.CsvResult result = results .Single(r => r.Category == WeeeCategory.LargeHouseholdAppliances && r.ObligationType == DomainObligationType.B2C); Assert.NotNull(result); Assert.Equal(0, result.DeliveredQ1); Assert.Equal(null, result.DeliveredQ2); Assert.Equal(null, result.DeliveredQ3); Assert.Equal(null, result.DeliveredQ4); Assert.Equal(0, result.DeliveredTotal); }
public async Task Build_ExistingLatestDataReturnVersion_WithSomeExistingWeeeDeliveredAmounts_ReturnsDataReturnVersionWithExistingWeeeDeliveredAmounts() { var weeeDeliveredAmount1 = new WeeeDeliveredAmount(ObligationType.B2C, WeeeCategory.ConsumerEquipment, 100, new AatfDeliveryLocation("ApprovalNumber", "FacilityName")); var weeeDeliveredAmount2 = new WeeeDeliveredAmount(ObligationType.B2C, WeeeCategory.ITAndTelecommsEquipment, 200, new AatfDeliveryLocation("ApprovalNumber", "FacilityName")); var weeeDeliveredAmount3 = new WeeeDeliveredAmount(ObligationType.B2C, WeeeCategory.DisplayEquipment, 100, new AeDeliveryLocation("ApprovalNumber", "FacilityName")); var weeeDeliveredAmount4 = new WeeeDeliveredAmount(ObligationType.B2C, WeeeCategory.LargeHouseholdAppliances, 300, new AeDeliveryLocation("ApprovalNumber", "OperatorName")); var weeeDeliveredReturnVersion = new WeeeDeliveredReturnVersion(); weeeDeliveredReturnVersion.AddWeeeDeliveredAmount(weeeDeliveredAmount1); weeeDeliveredReturnVersion.AddWeeeDeliveredAmount(weeeDeliveredAmount2); weeeDeliveredReturnVersion.AddWeeeDeliveredAmount(weeeDeliveredAmount3); weeeDeliveredReturnVersion.AddWeeeDeliveredAmount(weeeDeliveredAmount4); var dataReturn = new DataReturn(A.Dummy<Scheme>(), A.Dummy<Quarter>()); var dataReturnVersion = new DataReturnVersion(dataReturn, A.Dummy<WeeeCollectedReturnVersion>(), weeeDeliveredReturnVersion, A.Dummy<EeeOutputReturnVersion>()); dataReturn.SetCurrentVersion(dataReturnVersion); var helper = new DataReturnVersionBuilderHelper(); A.CallTo(() => helper.DataAccess.FetchDataReturnOrDefault()) .Returns(dataReturn); A.CallTo(() => helper.DataAccess.GetOrAddAatfDeliveryLocation(A<string>._, A<string>._)) .Returns(new AatfDeliveryLocation("ApprovalNumber", "FacilityName")); A.CallTo(() => helper.DataAccess.GetOrAddAeDeliveryLocation(A<string>._, A<string>._)) .Returns(new AeDeliveryLocation("ApprovalNumber", "OperatorName")); var builder = helper.Create(); await builder.AddAatfDeliveredAmount("ApprovalNumber", "FacilityName", WeeeCategory.ConsumerEquipment, ObligationType.B2C, 100); await builder.AddAeDeliveredAmount("ApprovalNumber", "OperatorName", WeeeCategory.LargeHouseholdAppliances, ObligationType.B2C, 300); var result = await builder.Build(); Assert.NotSame(weeeDeliveredReturnVersion, result.DataReturnVersion.WeeeDeliveredReturnVersion); Assert.Collection(result.DataReturnVersion.WeeeDeliveredReturnVersion.WeeeDeliveredAmounts, r1 => Assert.Same(weeeDeliveredAmount1, r1), r2 => Assert.Same(weeeDeliveredAmount4, r2)); }
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_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_WithSeveralDeliveredAmounts_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); 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, 100, new AatfDeliveryLocation("WEE/AA1111AA/ATF", string.Empty)); version.WeeeDeliveredReturnVersion.AddWeeeDeliveredAmount(amount1); WeeeDeliveredAmount amount2 = new WeeeDeliveredAmount( ObligationType.B2C, WeeeCategory.LargeHouseholdAppliances, 200, new AatfDeliveryLocation("WEE/BB2222BB/ATF", string.Empty)); version.WeeeDeliveredReturnVersion.AddWeeeDeliveredAmount(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 void CreateResults_WithQ1DeliveredAmountOfZero_PopulatesDeliveredQ1AndDeliveredTotalWithZero() { // Arrange DataReturn dataReturn = new DataReturn(A.Dummy<Domain.Scheme.Scheme>(), new Quarter(2016, QuarterType.Q1)); DataReturnVersion dataReturnVersion = new DataReturnVersion(dataReturn); WeeeDeliveredAmount weeeDeliveredAmount = new WeeeDeliveredAmount( DomainObligationType.B2C, WeeeCategory.LargeHouseholdAppliances, 0, new AatfDeliveryLocation("WEE/AA1234AA/ATF", "Facility Name")); dataReturnVersion.WeeeDeliveredReturnVersion.AddWeeeDeliveredAmount(weeeDeliveredAmount); dataReturn.SetCurrentVersion(dataReturnVersion); GetUkWeeeCsvHandler handler = new GetUkWeeeCsvHandler( A.Dummy<IWeeeAuthorization>(), A.Dummy<IGetUkWeeeCsvDataAccess>(), A.Dummy<CsvWriterFactory>()); // Act IEnumerable<GetUkWeeeCsvHandler.CsvResult> results = handler.CreateResults(new List<DataReturn>() { dataReturn }); // Assert GetUkWeeeCsvHandler.CsvResult result = results .Single(r => r.Category == WeeeCategory.LargeHouseholdAppliances && r.ObligationType == DomainObligationType.B2C); Assert.NotNull(result); Assert.Equal(0, result.DeliveredQ1); Assert.Equal(null, result.DeliveredQ2); Assert.Equal(null, result.DeliveredQ3); Assert.Equal(null, result.DeliveredQ4); Assert.Equal(0, result.DeliveredTotal); }