Esempio n. 1
0
        public async Task GetChanges_WithDifferentComplianceYears_ThrowsInvalidOperationException()
        {
            using (DatabaseWrapper db = new DatabaseWrapper())
            {
                // Arrange
                ModelHelper helper = new ModelHelper(db.Model);

                Scheme scheme = helper.CreateScheme();

                MemberUpload memberUpload = helper.CreateSubmittedMemberUpload(scheme);
                memberUpload.ComplianceYear = 2016;

                var previousDataReturnVersion = helper.CreateDataReturnVersion(scheme, 2016, 1, true);
                previousDataReturnVersion.SubmittedDate = new DateTime(2016, 1, 1);

                MemberUpload memberUpload2 = helper.CreateSubmittedMemberUpload(scheme);
                memberUpload2.ComplianceYear = 2017;

                var currentDataReturnVersion = helper.CreateDataReturnVersion(scheme, 2017, 1, true);
                currentDataReturnVersion.SubmittedDate = new DateTime(2016, 2, 1);

                db.Model.SaveChanges();

                var dataAccess = new GetDataReturnSubmissionEeeChangesCsvDataAccess(db.WeeeContext);

                // Act, Assert
                await Assert.ThrowsAsync <InvalidOperationException>(() => dataAccess.GetChanges(currentDataReturnVersion.Id, previousDataReturnVersion.Id));
            }
        }
Esempio n. 2
0
        public async Task GetChanges_ReturnsSubmissionDetails()
        {
            using (DatabaseWrapper db = new DatabaseWrapper())
            {
                // Arrange
                ModelHelper helper = new ModelHelper(db.Model);

                Scheme scheme = helper.CreateScheme();
                scheme.ApprovalNumber = "ABC";

                MemberUpload memberUpload = helper.CreateSubmittedMemberUpload(scheme);
                memberUpload.ComplianceYear = 2016;

                var previousDataReturnVersion = helper.CreateDataReturnVersion(scheme, 2016, 1, true);
                previousDataReturnVersion.SubmittedDate = new DateTime(2016, 1, 1);

                var currentDataReturnVersion = helper.CreateDataReturnVersion(scheme, 2016, 1, true);
                currentDataReturnVersion.SubmittedDate = new DateTime(2016, 2, 1);

                db.Model.SaveChanges();

                var dataAccess = new GetDataReturnSubmissionEeeChangesCsvDataAccess(db.WeeeContext);

                // Act
                var results = await dataAccess.GetChanges(currentDataReturnVersion.Id, previousDataReturnVersion.Id);

                // Assert
                Assert.Equal("ABC", results.SchemeApprovalNumber);
                Assert.Equal(2016, results.ComplianceYear);
                Assert.Equal(1, results.Quarter);
                Assert.Equal(new DateTime(2016, 2, 1), results.CurrentSubmissionDate);
            }
        }
Esempio n. 3
0
        public async Task GetChanges_WithNoEeeChanges_ReturnsEmptyResult()
        {
            using (DatabaseWrapper db = new DatabaseWrapper())
            {
                // Arrange
                ModelHelper helper = new ModelHelper(db.Model);

                Scheme scheme = helper.CreateScheme();

                MemberUpload memberUpload = helper.CreateSubmittedMemberUpload(scheme);
                memberUpload.ComplianceYear = 2016;

                ProducerSubmission producer = helper.CreateProducerAsCompany(memberUpload, "WEE/11BBBB11");

                var eeeOutputAmount = helper.CreateEeeOutputAmount(producer.RegisteredProducer, "B2B", 1, 10);

                var previousDataReturnVersion = helper.CreateDataReturnVersion(scheme, 2016, 1, true);
                previousDataReturnVersion.SubmittedDate = new DateTime(2016, 1, 1);
                helper.AddEeeOutputAmount(previousDataReturnVersion, eeeOutputAmount);

                var currentDataReturnVersion = helper.CreateDataReturnVersion(scheme, 2016, 1, true);
                currentDataReturnVersion.SubmittedDate = new DateTime(2016, 2, 1);
                helper.AddEeeOutputAmount(currentDataReturnVersion, eeeOutputAmount);

                db.Model.SaveChanges();

                var dataAccess = new GetDataReturnSubmissionEeeChangesCsvDataAccess(db.WeeeContext);

                // Act
                var results = await dataAccess.GetChanges(currentDataReturnVersion.Id, previousDataReturnVersion.Id);

                // Assert
                Assert.Empty(results.CsvData);
            }
        }
        public async Task GetChanges_WithSameValuesForCurrentAndPreviousArguments_ThrowsArgumentException()
        {
            var dataAccess =
                new GetDataReturnSubmissionEeeChangesCsvDataAccess(A.Dummy<WeeeContext>());

            var id = Guid.NewGuid();

            await Assert.ThrowsAsync<ArgumentException>(() => dataAccess.GetChanges(id, id));
        }
        public async Task GetChanges_WithSameValuesForCurrentAndPreviousArguments_ThrowsArgumentException()
        {
            var dataAccess =
                new GetDataReturnSubmissionEeeChangesCsvDataAccess(A.Dummy <WeeeContext>());

            var id = Guid.NewGuid();

            await Assert.ThrowsAsync <ArgumentException>(() => dataAccess.GetChanges(id, id));
        }
Esempio n. 6
0
        public async Task GetChanges_ReturnsRecordsSortedByProducerNameFollowedByLatestSubmissionDate()
        {
            using (DatabaseWrapper db = new DatabaseWrapper())
            {
                // Arrange
                ModelHelper helper = new ModelHelper(db.Model);

                Scheme scheme = helper.CreateScheme();

                MemberUpload memberUpload = helper.CreateSubmittedMemberUpload(scheme);
                memberUpload.ComplianceYear = 2016;

                ProducerSubmission producer1 = helper.CreateProducerAsCompany(memberUpload, "WEE/11AAA11");
                producer1.Business.Company.Name = "AAA";

                var previousDataReturnVersion = helper.CreateDataReturnVersion(scheme, 2016, 1, true);
                previousDataReturnVersion.SubmittedDate = new DateTime(2016, 1, 1);
                helper.CreateEeeOutputAmount(previousDataReturnVersion, producer1.RegisteredProducer, "B2B", 1, 10);

                var currentDataReturnVersion = helper.CreateDataReturnVersion(scheme, 2016, 1, true);
                currentDataReturnVersion.SubmittedDate = new DateTime(2016, 2, 1);
                helper.CreateEeeOutputAmount(currentDataReturnVersion, producer1.RegisteredProducer, "B2B", 1, 12);

                var producer2 = helper.CreateProducerAsCompany(memberUpload, "WEE/11BBB11");
                producer2.Business.Company.Name = "BBB";

                helper.CreateEeeOutputAmount(currentDataReturnVersion, producer2.RegisteredProducer, "B2B", 1, 30);

                db.Model.SaveChanges();

                var dataAccess = new GetDataReturnSubmissionEeeChangesCsvDataAccess(db.WeeeContext);

                // Act
                var results = await dataAccess.GetChanges(currentDataReturnVersion.Id, previousDataReturnVersion.Id);

                // Assert
                Assert.Equal(3, results.CsvData.Count);

                Assert.Equal("AAA", results.CsvData[0].ProducerName);
                Assert.Equal(DataReturnSubmissionChangeType.Amended, results.CsvData[0].ChangeType);
                Assert.Equal(12, results.CsvData[0].Cat1B2B);
                Assert.Equal(new DateTime(2016, 2, 1), results.CsvData[0].SubmissionDate);

                Assert.Equal("AAA", results.CsvData[1].ProducerName);
                Assert.Null(results.CsvData[1].ChangeType);
                Assert.Equal(10, results.CsvData[1].Cat1B2B);
                Assert.Equal(new DateTime(2016, 1, 1), results.CsvData[1].SubmissionDate);

                Assert.Equal("BBB", results.CsvData[2].ProducerName);
                Assert.Equal(DataReturnSubmissionChangeType.New, results.CsvData[2].ChangeType);
                Assert.Equal(30, results.CsvData[2].Cat1B2B);
                Assert.Equal(new DateTime(2016, 2, 1), results.CsvData[2].SubmissionDate);
            }
        }
Esempio n. 7
0
        public async Task GetChanges_WithRemovedProducerEeeAmount_ReturnsRowWithRemovedProducer()
        {
            using (DatabaseWrapper db = new DatabaseWrapper())
            {
                // Arrange
                ModelHelper helper = new ModelHelper(db.Model);

                Scheme scheme = helper.CreateScheme();

                MemberUpload memberUpload = helper.CreateSubmittedMemberUpload(scheme);
                memberUpload.ComplianceYear = 2016;

                var producer  = helper.CreateProducerAsCompany(memberUpload, "WEE/11BBBB11");
                var producer2 = helper.CreateProducerAsCompany(memberUpload, "WEE/11BBBB22");

                var eeeOutputAmount1 = helper.CreateEeeOutputAmount(producer.RegisteredProducer, "B2B", 1, 10);
                var eeeOutputAmount2 = helper.CreateEeeOutputAmount(producer2.RegisteredProducer, "B2B", 2, 20);

                var previousDataReturnVersion = helper.CreateDataReturnVersion(scheme, 2016, 1, true);
                previousDataReturnVersion.SubmittedDate = new DateTime(2016, 1, 1);
                helper.AddEeeOutputAmount(previousDataReturnVersion, eeeOutputAmount1);
                helper.AddEeeOutputAmount(previousDataReturnVersion, eeeOutputAmount2);

                var currentDataReturnVersion = helper.CreateDataReturnVersion(scheme, 2016, 1, true);
                currentDataReturnVersion.SubmittedDate = new DateTime(2016, 2, 1);
                helper.AddEeeOutputAmount(currentDataReturnVersion, eeeOutputAmount1);

                db.Model.SaveChanges();

                var dataAccess = new GetDataReturnSubmissionEeeChangesCsvDataAccess(db.WeeeContext);

                // Act
                var results = await dataAccess.GetChanges(currentDataReturnVersion.Id, previousDataReturnVersion.Id);

                // Assert
                Assert.Single(results.CsvData);
                Assert.Equal(DataReturnSubmissionChangeType.Removed, results.CsvData[0].ChangeType);
                Assert.Null(results.CsvData[0].Cat2B2B);
                Assert.Equal(new DateTime(2016, 2, 1), results.CsvData[0].SubmissionDate);
            }
        }