Example #1
0
        public async Task Execute_GivenAaatfWithApprovalDateExpectedToReportWithAreaParameter_CorrectRecordsShouldBeReturned()
        {
            using (var db = new DatabaseWrapper())
            {
                var organisation1 = Domain.Organisation.Organisation.CreateSoleTrader("Test Organisation");

                var aatf1 = new Aatf("aatfname1", GetAuthority(db), "number", AatfStatus.Approved, organisation1, ObligatedWeeeIntegrationCommon.CreateAatfAddress(db), AatfSize.Large, Convert.ToDateTime("01/02/2019"), ObligatedWeeeIntegrationCommon.CreateDefaultContact(db.WeeeContext.Countries.First()), FacilityType.Aatf, 2019, db.WeeeContext.LocalAreas.First(), db.WeeeContext.PanAreas.First());
                var aatf2 = new Aatf("aatfname2", GetAuthority(db), "number", AatfStatus.Approved, organisation1, ObligatedWeeeIntegrationCommon.CreateAatfAddress(db), AatfSize.Large, Convert.ToDateTime("01/02/2019"), ObligatedWeeeIntegrationCommon.CreateDefaultContact(db.WeeeContext.Countries.First()), FacilityType.Aatf, 2019, db.WeeeContext.LocalAreas.First(), db.WeeeContext.PanAreas.First());
                var aatf3 = new Aatf("aatfname3", GetAuthority(db), "number", AatfStatus.Approved, organisation1, ObligatedWeeeIntegrationCommon.CreateAatfAddress(db), AatfSize.Large, Convert.ToDateTime("01/02/2019"), ObligatedWeeeIntegrationCommon.CreateDefaultContact(db.WeeeContext.Countries.First()), FacilityType.Aatf, 2019, GetArea(db, "Wessex (WSX)"), db.WeeeContext.PanAreas.First());

                db.WeeeContext.Aatfs.Add(aatf1);
                db.WeeeContext.Aatfs.Add(aatf2);
                db.WeeeContext.Aatfs.Add(aatf3);

                await db.WeeeContext.SaveChangesAsync();

                var results = await db.StoredProcedures.GetAatfAeReturnDataCsvData(2019, 1,
                                                                                   1, null, GetAuthority(db).Id, GetArea(db, "Wessex (WSX)").Id, null, false);

                results.Count(x => x.AatfId == aatf1.Id).Should().Be(0);
                results.Count(x => x.AatfId == aatf2.Id).Should().Be(0);
                results.Count(x => x.AatfId == aatf3.Id).Should().Be(1);
            }
        }
Example #2
0
        public async Task GetManyByExpression_Specification_AatfsByAatfFacilityTypeShouldBeReturned()
        {
            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);
                var aatf3        = new Aatf("aatfname", database.WeeeContext.UKCompetentAuthorities.First(), "number", AatfStatus.Approved, organisation, ObligatedWeeeIntegrationCommon.CreateAatfAddress(database), AatfSize.Large, DateTime.Now, ObligatedWeeeIntegrationCommon.CreateDefaultContact(database.WeeeContext.Countries.First()), FacilityType.Ae, 2019, database.WeeeContext.LocalAreas.First(), database.WeeeContext.PanAreas.First());

                database.WeeeContext.Aatfs.Add(aatf1);
                database.WeeeContext.Aatfs.Add(aatf2);
                database.WeeeContext.Aatfs.Add(aatf3);
                await database.WeeeContext.SaveChangesAsync();

                var aatfInfo = await dataAccess.GetManyByExpression(new AatfsByOrganisationAndFacilityTypeSpecification(organisation.Id, Core.AatfReturn.FacilityType.Aatf));

                aatfInfo.Count.Should().Be(2);
                aatfInfo.Where(a => Equals(aatf1)).Should().NotBeNull();
                aatfInfo.Where(a => Equals(aatf2)).Should().NotBeNull();
                aatfInfo.Where(a => Equals(aatf3)).Should().BeEmpty();
            }
        }
Example #3
0
        public async Task Execute_GivenAatfWithApprovalDateExpectedToReportAndReturnSubmitted_RecordDataIsAsExpected()
        {
            using (var db = new DatabaseWrapper())
            {
                var date = new DateTime(2019, 1, 1, 11, 10, 1);
                SystemTime.Freeze(date);

                var organisation = Domain.Organisation.Organisation.CreateSoleTrader(fixture.Create <string>());

                var aatf = new Aatf(fixture.Create <string>(), GetAuthority(db), fixture.Create <string>().Substring(0, 10), AatfStatus.Approved, organisation, ObligatedWeeeIntegrationCommon.CreateAatfAddress(db), AatfSize.Large, Convert.ToDateTime("01/02/2019"), ObligatedWeeeIntegrationCommon.CreateDefaultContact(db.WeeeContext.Countries.First()), FacilityType.Aatf, 2019, db.WeeeContext.LocalAreas.First(), db.WeeeContext.PanAreas.First());

                var @return = ObligatedWeeeIntegrationCommon.CreateReturn(organisation, db.Model.AspNetUsers.First().Id, FacilityType.Aatf, 2019,
                                                                          QuarterType.Q1);

                @return.UpdateSubmitted(db.Model.AspNetUsers.First().Id, false);

                db.WeeeContext.Returns.Add(@return);
                db.WeeeContext.Aatfs.Add(aatf);
                db.WeeeContext.ReturnAatfs.Add(new ReturnAatf(aatf, @return));

                await db.WeeeContext.SaveChangesAsync();

                var results = await db.StoredProcedures.GetAatfAeReturnDataCsvData(2019, 1,
                                                                                   1, null, null, null, null, false);

                var record = results.First(x => x.AatfId == aatf.Id);
                record.ApprovalNumber.Should().Be(aatf.ApprovalNumber);
                record.CompetentAuthorityAbbr.Should().Be("EA");
                record.Name.Should().Be(aatf.Name);
                record.OrganisationName.Should().Be(organisation.OrganisationName);
                record.CreatedDate.Should().Be(date);
                record.ReturnStatus.Should().Be("Submitted");
                record.SubmittedBy.Should().Be($"{db.Model.AspNetUsers.First().FirstName} {db.Model.AspNetUsers.First().Surname}");
                record.SubmittedDate.Should().Be(date);
                record.ReSubmission.Should().Be("First submission");

                SystemTime.Unfreeze();
            }
        }
        public async Task Execute_GivenNoPCSReceivedData_ReturnsPcsAatfDiscrepancyDataShouldBeCorrect()
        {
            using (DatabaseWrapper db = new DatabaseWrapper())
            {
                // Arrange
                Organisation organisation             = Organisation.CreateSoleTrader("Test Organisation");
                Domain.UKCompetentAuthority authority = db.WeeeContext.UKCompetentAuthorities.Single(c => c.Abbreviation == UKCompetentAuthorityAbbreviationType.EA);
                var     year    = 2019;
                Quarter quarter = new Quarter(year, QuarterType.Q1);

                Scheme scheme1 = new Scheme(organisation);
                scheme1.UpdateScheme("Test Scheme 1", "WEE/AH7453NF/SCH", "WEE9462846", Domain.Obligation.ObligationType.B2C, authority);
                scheme1.SetStatus(Domain.Scheme.SchemeStatus.Approved);

                var @return = CreateSubmittedReturn(db, organisation);
                var aatf    = new Aatf("aatfName", authority, "WEE/AA1111AA/ATF", AatfStatus.Approved, organisation, AddressHelper.GetAatfAddress(db), AatfSize.Large, DateTime.Now, ObligatedWeeeIntegrationCommon.CreateDefaultContact(db.WeeeContext.Countries.First()), FacilityType.Aatf, (short)year, null, null);

                var weeeReceived        = new EA.Weee.Domain.AatfReturn.WeeeReceived(scheme1, aatf, @return);
                var weeeReceivedAmounts = new List <WeeeReceivedAmount>()
                {
                    new Domain.AatfReturn.WeeeReceivedAmount(weeeReceived, 1, 2, 10)
                };

                db.WeeeContext.Returns.Add(@return);
                db.WeeeContext.ReturnAatfs.Add(new ReturnAatf(aatf, @return));
                db.WeeeContext.WeeeReceived.Add(weeeReceived);
                db.WeeeContext.WeeeReceivedAmount.AddRange(weeeReceivedAmounts);
                await db.WeeeContext.SaveChangesAsync();

                // Act
                var results = await db.StoredProcedures.GetPcsAatfComparisonDataCsvData(year, null, null);

                var record = results.First(x => x.AatfApprovalNumber == "WEE/AA1111AA/ATF" && x.ObligationType == "B2B");

                //Assert
                Assert.NotNull(record);
                Assert.Equal("WEE/AA1111AA/ATF", record.AatfApprovalNumber);
                Assert.Equal("WEE/AH7453NF/SCH", record.PcsApprovalNumber);
                Assert.Equal(0, record.PcsTonnage);
                Assert.Equal(10, record.AatfTonnage);
                Assert.Equal(-10, record.DifferenceTonnage);
            }
        }