public async Task HandleAsync_NoExternalAccess_ThrowsSecurityException()
        {
            var authorization = new AuthorizationBuilder().DenyExternalAreaAccess().Build();

            handler = new AddReturnReportOnHandler(authorization, A.Dummy <IGenericDataAccess>(), context);

            Func <Task> action = async() => await handler.HandleAsync(A.Dummy <AddReturnReportOn>());

            await action.Should().ThrowAsync <SecurityException>();
        }
        public AddReturnReportOnHandlerTests()
        {
            var weeeAuthorization = A.Fake <IWeeeAuthorization>();

            context    = A.Fake <WeeeContext>();
            dataAccess = A.Fake <IGenericDataAccess>();
            fixture    = new Fixture();

            handler = new AddReturnReportOnHandler(weeeAuthorization, dataAccess, context);
        }
示例#3
0
        public async Task DeselectedOptionAndDataIsDeleted()
        {
            using (var database = new DatabaseWrapper())
            {
                var context    = database.WeeeContext;
                var dataAccess = new GenericDataAccess(context);

                var organisation = ObligatedWeeeIntegrationCommon.CreateOrganisation();
                var @return      = await CreateReturn(context, database, organisation);

                var country = await context.Countries.SingleAsync(c => c.Name == "France");

                var questions = context.ReportOnQuestions.ToList();

                var returnReportOn = new List <ReturnReportOn>();

                foreach (var question in questions)
                {
                    returnReportOn.Add(new ReturnReportOn(@return.Id, question.Id));
                }

                var aatf = await CreateAatf(database, @return);

                var scheme = await CreateScheme(context, organisation);

                var sentOnSiteAddress = await CreateAddress(database);

                var sentOnSOperatorAddress = await CreateAddress(database);

                var reusedSiteAddress = await CreateAddress(database);

                await dataAccess.AddMany <ReturnReportOn>(returnReportOn);

                await CreateWeeeReusedAmounts(new ObligatedReusedDataAccess(context), new AatfSiteDataAccess(context, dataAccess), @return, aatf, reusedSiteAddress);
                await CreateWeeeReceivedAmounts(new ObligatedReceivedDataAccess(context), new ReturnSchemeDataAccess(context), @return, aatf, scheme);
                await CreateWeeeSentOnAmounts(new ObligatedSentOnDataAccess(context), @return, aatf, sentOnSiteAddress, sentOnSOperatorAddress);
                await CreateNonObligatedWeee(new NonObligatedDataAccess(context), @return);

                var submittedReturnOptions = context.ReturnReportOns.Where(r => r.ReturnId == @return.Id).ToList();

                var(submittedWeeeReused, submittedWeeeReusedAddresses, submittedWeeeReusedAmounts, submittedWeeeReusedSites) = await RetrieveSubmittedWeeeReusedData(context, @return, dataAccess);

                var(submittedWeeeReceived, submittedWeeeReturnScheme, submittedWeeeReceivedAmounts) = await RetrieveSubmittedWeeeReceivedData(context, @return, dataAccess);

                var(submittedWeeeSentOn, submittedWeeeSentOnAddresses, submittedWeeeSentOnAmounts) = await RetrieveSubmittedWeeeSentOnData(context, @return, dataAccess);

                var submittedNonObligatedWeee = context.NonObligatedWeee.Where(w => w.ReturnId == @return.Id).ToList();

                var handler = new AddReturnReportOnHandler(A.Fake <IWeeeAuthorization>(), dataAccess, context);

                var deselectOptions = new List <int>()
                {
                    1, 2, 3, 4, 5
                };
                var coreReportOnQuestions = CreateReportQuestions();

                var request = new AddReturnReportOn()
                {
                    DeselectedOptions = deselectOptions, Options = coreReportOnQuestions, ReturnId = @return.Id, SelectedOptions = new List <int>()
                };

                await handler.HandleAsync(request);

                AssertWeeeReceivedDeletion(context, submittedWeeeReceived, submittedWeeeReturnScheme, submittedWeeeReceivedAmounts);
                AssertWeeeReusedDeletion(context, submittedWeeeReused, submittedWeeeReusedAddresses, submittedWeeeReusedAmounts, submittedWeeeReusedSites);
                AssertWeeeSentOnDeletion(context, submittedWeeeSentOn, submittedWeeeSentOnAddresses, submittedWeeeSentOnAmounts);
                AssertNonObligatedWeeeDeletion(context, submittedNonObligatedWeee);
            }
        }