예제 #1
0
        public async Task GetByOrganisationId_GivenOrganisationIdReturnsAreReturned()
        {
            using (var database = new DatabaseWrapper())
            {
                var modelHelper = new ModelHelper(database.Model);

                var organisation = Organisation.CreateSoleTrader("Test Organisation");
                var @return1     = CreateReturn(database, organisation);
                var @return2     = CreateReturn(database, organisation);

                var dataAccess = new ReturnDataAccess(database.WeeeContext);

                await dataAccess.Submit(@return1);

                await dataAccess.Submit(@return2);

                var result = await dataAccess.GetByOrganisationId(organisation.Id);

                result.Should().NotBeNull();
                result.Count().Should().Be(2);
            }
        }
        public async Task FetchNonObligatedWeeeForReturn_ReturnedListShouldContainAllTonnagesFromRequest(bool dcf)
        {
            using (var database = new DatabaseWrapper())
            {
                var helper       = new ModelHelper(database.Model);
                var domainHelper = new DomainHelper(database.WeeeContext);
                var context      = A.Fake <WeeeContext>();

                var @return = CreateReturn(database);

                var returnDataAccess = new ReturnDataAccess(database.WeeeContext);

                await returnDataAccess.Submit(@return);

                var categoryValues = new List <NonObligatedValue>();

                foreach (var category in Enum.GetValues(typeof(WeeeCategory)).Cast <WeeeCategory>())
                {
                    categoryValues.Add(new NonObligatedValue((int)category, (int)category, dcf, Guid.NewGuid()));
                }

                var nonObligatedRequest = new AddNonObligated()
                {
                    ReturnId       = @return.Id,
                    OrganisationId = @return.Organisation.Id,
                    Dcf            = dcf,
                    CategoryValues = categoryValues
                };

                var nonObligatedWee = new List <NonObligatedWeee>();

                foreach (var categoryValue in nonObligatedRequest.CategoryValues)
                {
                    nonObligatedWee.Add(new NonObligatedWeee(@return, categoryValue.CategoryId, dcf, categoryValue.Tonnage));
                }

                var nonObDataAccess = new NonObligatedDataAccess(database.WeeeContext);

                await nonObDataAccess.InsertNonObligatedWeee(@return.Id, nonObligatedWee);

                var dataAccess = new NonObligatedDataAccess(database.WeeeContext);

                var tonnageList = await dataAccess.FetchNonObligatedWeeeForReturn(@return.Id, dcf);

                foreach (var category in nonObligatedWee)
                {
                    tonnageList.Should().Contain(category.Tonnage);
                }
            }
        }
예제 #3
0
        public async Task GetByComplianceYearAndYear_ReturnsWithMatchingQuarterAndFacilityType_ReturnsShouldBeReturned()
        {
            using (var database = new DatabaseWrapper())
            {
                var modelHelper = new ModelHelper(database.Model);

                var organisation  = Organisation.CreateSoleTrader("Test Organisation");
                var organisation2 = Organisation.CreateSoleTrader("Test Organisation");

                var @return1 = CreateReturn(database, organisation);
                var @return2 = CreateReturn(database, organisation);
                var @return3 = CreateReturn(database, organisation, new Quarter(2019, QuarterType.Q2), FacilityType.Aatf);
                var @return4 = CreateReturn(database, organisation, new Quarter(2019, QuarterType.Q3), FacilityType.Aatf);
                var @return5 = CreateReturn(database, organisation, new Quarter(2019, QuarterType.Q4), FacilityType.Aatf);
                var @return6 = CreateReturn(database, organisation, new Quarter(2018, QuarterType.Q1), FacilityType.Aatf);
                var @return7 = CreateReturn(database, organisation2);
                var @return8 = CreateReturn(database, organisation, new Quarter(2019, QuarterType.Q1), FacilityType.Ae);

                var dataAccess = new ReturnDataAccess(database.WeeeContext);

                await dataAccess.Submit(@return1);

                await dataAccess.Submit(@return2);

                await dataAccess.Submit(@return3);

                await dataAccess.Submit(@return4);

                await dataAccess.Submit(@return5);

                await dataAccess.Submit(@return6);

                await dataAccess.Submit(@return7);

                await dataAccess.Submit(@return8);

                var results = await dataAccess.GetByComplianceYearAndQuarter(@return1);

                results.Count.Should().Be(2);
                results.Count(r => r.Quarter.Year != 2019).Should().Be(0);
                results.Count(r => r.Id != @return1.Id && r.Id != @return2.Id).Should().Be(0);
                results.Count(r => r.Organisation.Id != @return1.Organisation.Id).Should().Be(0);
                results.Count(r => r.FacilityType != @return1.FacilityType).Should().Be(0);
            }
        }
예제 #4
0
        public async Task Submit_ReturnShouldBeSubmitted()
        {
            using (var database = new DatabaseWrapper())
            {
                var helper       = new ModelHelper(database.Model);
                var domainHelper = new DomainHelper(database.WeeeContext);

                var @return = CreateReturn(database);

                var dataAccess = new ReturnDataAccess(database.WeeeContext);

                var result = await dataAccess.Submit(@return);

                result.Should().NotBeEmpty();
            }
        }
예제 #5
0
        public async Task GetById_GivenValidReturnId_ReturnIsReturned()
        {
            using (var database = new DatabaseWrapper())
            {
                var modelHelper = new ModelHelper(database.Model);

                var @return = CreateReturn(database);

                var dataAccess = new ReturnDataAccess(database.WeeeContext);

                var id = await dataAccess.Submit(@return);

                var result = await dataAccess.GetById(id);

                result.Should().NotBeNull();
                result.Organisation.Should().NotBeNull();
            }
        }