public async Task Execute_HappyPath_ReturnsProducerEeeDataHistory() { using (DatabaseWrapper db = new DatabaseWrapper()) { //Arrange ModelHelper helper = new ModelHelper(db.Model); var scheme1 = helper.CreateScheme(); scheme1.ApprovalNumber = "WEE/TE0000ST/SCH"; var memberUpload1 = helper.CreateSubmittedMemberUpload(scheme1); memberUpload1.ComplianceYear = 2000; var producer1 = helper.CreateProducerAsCompany(memberUpload1, "PRN123"); producer1.ObligationType = "B2B"; var dataReturnVersion1 = helper.CreateDataReturnVersion(scheme1, 2000, 1); dataReturnVersion1.SubmittedDate = new DateTime(2015, 1, 6); var dataReturnVersion2 = helper.CreateDataReturnVersion(scheme1, 2000, 2); dataReturnVersion2.SubmittedDate = new DateTime(2015, 1, 8); helper.CreateEeeOutputAmount(dataReturnVersion1, producer1.RegisteredProducer, "B2B", 1, 100); helper.CreateEeeOutputAmount(dataReturnVersion2, producer1.RegisteredProducer, "B2B", 2, 200); var scheme2 = helper.CreateScheme(); scheme2.ApprovalNumber = "WEE/TE0000S1/SCH"; var memberUpload2 = helper.CreateSubmittedMemberUpload(scheme2); memberUpload2.ComplianceYear = 2000; var producer2 = helper.CreateProducerAsCompany(memberUpload2, "PRN123"); producer2.ObligationType = "B2C"; var dataReturnVersion3 = helper.CreateDataReturnVersion(scheme2, 2000, 1); dataReturnVersion1.SubmittedDate = new DateTime(2015, 1, 9); var dataReturnVersion4 = helper.CreateDataReturnVersion(scheme2, 2000, 2); dataReturnVersion4.SubmittedDate = new DateTime(2015, 1, 10); helper.CreateEeeOutputAmount(dataReturnVersion3, producer2.RegisteredProducer, "B2C", 1, 40); helper.CreateEeeOutputAmount(dataReturnVersion4, producer2.RegisteredProducer, "B2C", 2, 1000); db.Model.SaveChanges(); // Act var results = await db.StoredProcedures.SpgProducerEeeHistoryCsvData("PRN123"); //Assert Assert.NotNull(results); ProducerEeeHistoryCsvData.ProducerInReturnsResult b2cProducer = results.ProducerReturnsHistoryData.Find(x => (x.ApprovalNumber == "WEE/TE0000S1/SCH")); Assert.NotNull(b2cProducer); Assert.Equal(2000, b2cProducer.ComplianceYear); Assert.Equal(1000, b2cProducer.Cat2B2C); Assert.Equal("Yes", b2cProducer.LatestData); ProducerEeeHistoryCsvData.ProducerInReturnsResult b2bProducer = results.ProducerReturnsHistoryData.Find(x => (x.ApprovalNumber == "WEE/TE0000ST/SCH")); Assert.NotNull(b2bProducer); Assert.Equal(2000, b2bProducer.ComplianceYear); Assert.Equal(200, b2bProducer.Cat2B2B); Assert.Null(b2bProducer.Cat2B2C); Assert.Equal("Yes", b2bProducer.LatestData); Assert.Equal(4, results.ProducerReturnsHistoryData.Count); } }
public void CreateResults_WithProducerConsecutivelyRemovedInNetUploadsbutLatesOnAdded_ReturnsEeeDataHistoryWithOneBlankDataRowforProducer() { // Arrange IWeeeAuthorization authorization = new AuthorizationBuilder().AllowInternalAreaAccess().Build(); var context = A.Fake <WeeeContext>(); var csvWriterFactory = A.Fake <CsvWriterFactory>(); GetProducerEeeDataHistoryCsvHandler handler = new GetProducerEeeDataHistoryCsvHandler( authorization, context, csvWriterFactory); //first upload ProducerEeeHistoryCsvData results = new ProducerEeeHistoryCsvData(); ProducerEeeHistoryCsvData.ProducerInReturnsResult upload1 = CreateEeeDataForProducer("WEE/MM0841AA", "WEE/FA0000KE/SCH", "Test Scheme", 2007, 1, new DateTime(2016, 1, 1), 100, "No"); results.ProducerReturnsHistoryData.Add(upload1); //producer removed in second upload ProducerEeeHistoryCsvData.ProducerRemovedFromReturnsResult removedUpload = CreateRemovedProducerResults("WEE/FA0000KE/SCH", 2007, new DateTime(2016, 1, 2), 1); results.ProducerRemovedFromReturnsData.Add(removedUpload); //producer removed in third upload ProducerEeeHistoryCsvData.ProducerRemovedFromReturnsResult removedUpload1 = CreateRemovedProducerResults("WEE/FA0000KE/SCH", 2007, new DateTime(2016, 1, 3), 1); results.ProducerRemovedFromReturnsData.Add(removedUpload1); //In this upload producer added back again with same data as first upload ProducerEeeHistoryCsvData.ProducerInReturnsResult upload2 = CreateEeeDataForProducer("WEE/MM0841AA", "WEE/FA0000KE/SCH", "Test Scheme", 2007, 1, new DateTime(2016, 1, 4), 200, "Yes"); results.ProducerReturnsHistoryData.Add(upload2); //Act IEnumerable <GetProducerEeeDataHistoryCsvHandler.EeeHistoryCsvResult> csvResults = new List <GetProducerEeeDataHistoryCsvHandler.EeeHistoryCsvResult>(); csvResults = handler.CreateResults(results); //Assert Assert.NotNull(csvResults); Assert.Equal(3, csvResults.Count()); Assert.Collection(csvResults, (r1) => Assert.Equal(new DateTime(2016, 1, 4), r1.SubmittedDate), (r2) => Assert.Equal(new DateTime(2016, 1, 2), r2.SubmittedDate), (r3) => Assert.Equal(new DateTime(2016, 1, 1), r3.SubmittedDate)); Assert.Collection(csvResults, (r1) => Assert.Equal("Yes", r1.LatestData), (r2) => Assert.Equal("No", r2.LatestData), (r3) => Assert.Equal("No", r3.LatestData)); Assert.Collection(csvResults, (r1) => Assert.Equal(200, r1.Cat1B2B), (r2) => Assert.Equal(null, r2.Cat1B2B), (r3) => Assert.Equal(100, r3.Cat1B2B)); }
private static ProducerEeeHistoryCsvData.ProducerInReturnsResult CreateEeeDataForProducer(string prn, string approvalNumber, string schemeName, int year, int quarter, DateTime date, int cat1b2b, string latestData) { ProducerEeeHistoryCsvData.ProducerInReturnsResult eeeDatahistoryResult = new ProducerEeeHistoryCsvData.ProducerInReturnsResult(); eeeDatahistoryResult.PRN = prn; eeeDatahistoryResult.SchemeName = schemeName; eeeDatahistoryResult.ApprovalNumber = approvalNumber; eeeDatahistoryResult.ComplianceYear = year; eeeDatahistoryResult.Quarter = quarter; eeeDatahistoryResult.SubmittedDate = date; eeeDatahistoryResult.LatestData = latestData; eeeDatahistoryResult.Cat1B2B = cat1b2b; return(eeeDatahistoryResult); }
private static ProducerEeeHistoryCsvData.ProducerInReturnsResult CreateEeeDataForProducer(string prn, string approvalNumber, string schemeName, int year, int quarter, DateTime date, int cat1b2b, string latestData) { ProducerEeeHistoryCsvData.ProducerInReturnsResult eeeDatahistoryResult = new ProducerEeeHistoryCsvData.ProducerInReturnsResult(); eeeDatahistoryResult.PRN = prn; eeeDatahistoryResult.SchemeName = schemeName; eeeDatahistoryResult.ApprovalNumber = approvalNumber; eeeDatahistoryResult.ComplianceYear = year; eeeDatahistoryResult.Quarter = quarter; eeeDatahistoryResult.SubmittedDate = date; eeeDatahistoryResult.LatestData = latestData; eeeDatahistoryResult.Cat1B2B = cat1b2b; return eeeDatahistoryResult; }