public async Task FetchObligatedWeeeForReturn_ReturnedListShouldContainAllTonnagesFromRequest()
        {
            using (var database = new DatabaseWrapper())
            {
                var          companyName = "Test Name" + Guid.NewGuid();
                var          tradingName = "Test Trading Name" + Guid.NewGuid();
                const string companyRegistrationNumber = "ABC12345";

                var organisation = Organisation.CreateRegisteredCompany(companyName, companyRegistrationNumber, tradingName);
                var @return      = new Return(organisation, new Quarter(2019, QuarterType.Q1), database.Model.AspNetUsers.First().Id, FacilityType.Aatf);
                var aatf         = ObligatedWeeeIntegrationCommon.CreateAatf(database, organisation);

                database.WeeeContext.Organisations.Add(organisation);
                database.WeeeContext.Aatfs.Add(aatf);
                database.WeeeContext.Returns.Add(@return);
                await database.WeeeContext.SaveChangesAsync();

                var addObligatedReusedDataAccess = new ObligatedReusedDataAccess(database.WeeeContext);

                var categoryValues = new List <ObligatedValue>();
                var weeeReused     = new WeeeReused(aatf.Id, @return.Id);

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

                var obligatedReusedRequest = new AddObligatedReused()
                {
                    AatfId         = aatf.Id,
                    ReturnId       = @return.Id,
                    OrganisationId = organisation.Id,
                    CategoryValues = categoryValues
                };

                var weeeReusedAmount = new List <WeeeReusedAmount>();

                foreach (var categoryValue in obligatedReusedRequest.CategoryValues)
                {
                    weeeReusedAmount.Add(new WeeeReusedAmount(weeeReused, categoryValue.CategoryId, categoryValue.HouseholdTonnage, categoryValue.NonHouseholdTonnage));
                }

                var obligateReusedDataAccess = new ObligatedReusedDataAccess(database.WeeeContext);
                await obligateReusedDataAccess.Submit(weeeReusedAmount);

                var fetchDataAccess = new FetchObligatedWeeeForReturnDataAccess(database.WeeeContext);

                var reusedTonnageList = await fetchDataAccess.FetchObligatedWeeeReusedForReturn(@return.Id);

                var reusedNonHouseholdList = reusedTonnageList.Select(t => t.NonHouseholdTonnage);
                var reusedHouseholdList    = reusedTonnageList.Select(t => t.HouseholdTonnage);

                foreach (var category in weeeReusedAmount)
                {
                    reusedNonHouseholdList.Should().Contain(category.NonHouseholdTonnage);
                    reusedHouseholdList.Should().Contain(category.HouseholdTonnage);
                }
            }
        }
示例#2
0
        public async void IndexPost_GivenValidViewModel_ApiSendShouldBeCalled()
        {
            var model   = new ObligatedViewModel(calculator);
            var request = new AddObligatedReused();

            A.CallTo(() => requestCreator.ViewModelToRequest(model)).Returns(request);

            await controller.Index(model);

            A.CallTo(() => weeeClient.SendAsync(A <string> ._, request)).MustHaveHappened(Repeated.Exactly.Once);
        }
        public async Task HandleAsync_WithValidInput_SubmittedIsCalledCorrectly()
        {
            var aatf       = A.Fake <Aatf>();
            var aatfReturn = ReturnHelper.GetReturn();

            var weeeReused = new WeeeReused(
                aatf.Id,
                aatfReturn.Id);
            var weeeReusedAmount = new List <WeeeReusedAmount>();

            var categoryValues = new List <ObligatedValue>();

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

            var obligatedWeeeRequest = new AddObligatedReused
            {
                AatfId         = aatf.Id,
                ReturnId       = aatfReturn.Id,
                OrganisationId = aatfReturn.Organisation.Id,
                CategoryValues = categoryValues
            };

            foreach (var categoryValue in obligatedWeeeRequest.CategoryValues)
            {
                weeeReusedAmount.Add(new WeeeReusedAmount(weeeReused, categoryValue.CategoryId, categoryValue.HouseholdTonnage, categoryValue.NonHouseholdTonnage));
            }

            var requestHandler = new AddObligatedReusedHandler(authorization, addObligatedReusedDataAccess);

            await requestHandler.HandleAsync(obligatedWeeeRequest);

            A.CallTo(() => addObligatedReusedDataAccess.Submit(A <List <WeeeReusedAmount> > .That.IsSameAs(weeeReusedAmount)));
        }
示例#4
0
        public async Task FetchObligatedWeeeForReturn_ReturnedListShouldContainAllTonnagesFromRequest()
        {
            using (var database = new DatabaseWrapper())
            {
                var          companyName = "Test Name" + Guid.NewGuid();
                var          tradingName = "Test Trading Name" + Guid.NewGuid();
                const string companyRegistrationNumber = "ABC12345";

                var organisation       = Organisation.CreateRegisteredCompany(companyName, companyRegistrationNumber, tradingName);
                var scheme             = new Scheme(organisation);
                var competentAuthority = database.WeeeContext.UKCompetentAuthorities.FirstOrDefault();
                var country            = await database.WeeeContext.Countries.SingleAsync(c => c.Name == "France");

                var contact = new AatfContact("First Name", "Last Name", "Manager", "1 Address Lane", "Address Ward", "Town", "County", "Postcode", country, "01234 567890", "*****@*****.**");
                var aatf    = ObligatedWeeeIntegrationCommon.CreateAatf(database, organisation);
                var @return = new Return(organisation, new Quarter(2019, QuarterType.Q1), database.Model.AspNetUsers.First().Id, FacilityType.Aatf);

                database.WeeeContext.Organisations.Add(organisation);
                database.WeeeContext.Schemes.Add(scheme);
                database.WeeeContext.Aatfs.Add(aatf);
                database.WeeeContext.Returns.Add(@return);
                await database.WeeeContext.SaveChangesAsync();

                var addObligatedReceivedDataAccess = new ObligatedReceivedDataAccess(database.WeeeContext);

                var categoryValues = new List <ObligatedValue>();
                var weeeReceived   = new WeeeReceived(scheme.Id, aatf.Id, @return.Id);

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

                var obligatedReceivedRequest = new AddObligatedReceived()
                {
                    ReturnId       = @return.Id,
                    AatfId         = aatf.Id,
                    SchemeId       = scheme.Id,
                    OrganisationId = organisation.Id,
                    CategoryValues = categoryValues
                };

                var obligatedReusedRequest = new AddObligatedReused()
                {
                    AatfId         = aatf.Id,
                    ReturnId       = @return.Id,
                    OrganisationId = organisation.Id,
                    CategoryValues = categoryValues
                };

                var weeeReceivedAmount = new List <WeeeReceivedAmount>();
                var weeeReusedAmount   = new List <WeeeReusedAmount>();

                foreach (var categoryValue in obligatedReceivedRequest.CategoryValues)
                {
                    weeeReceivedAmount.Add(new WeeeReceivedAmount(weeeReceived, categoryValue.CategoryId, categoryValue.HouseholdTonnage, categoryValue.NonHouseholdTonnage));
                }

                var obligateReceivedDataAccess = new ObligatedReceivedDataAccess(database.WeeeContext);
                await obligateReceivedDataAccess.Submit(weeeReceivedAmount);

                var fetchDataAccess = new FetchObligatedWeeeForReturnDataAccess(database.WeeeContext);

                var receivedTonnageList = await fetchDataAccess.FetchObligatedWeeeReceivedForReturn(@return.Id);

                var receivedNonHouseholdList = receivedTonnageList.Select(t => t.NonHouseholdTonnage);
                var receivedHouseholdList    = receivedTonnageList.Select(t => t.HouseholdTonnage);

                foreach (var category in weeeReceivedAmount)
                {
                    receivedNonHouseholdList.Should().Contain(category.NonHouseholdTonnage);
                    receivedHouseholdList.Should().Contain(category.HouseholdTonnage);
                }
            }
        }