Esempio n. 1
0
        private async Task ArrangeActAndCallAssertions(Action <Guid> assertions)
        {
            using (database = new DatabaseWrapper())
            {
                // Arrange
                var helper       = new ModelHelper(database.Model);
                var domainHelper = new DomainHelper(database.WeeeContext);
                var userContext  = A.Fake <IUserContext>();

                A.CallTo(() => userContext.UserId).Returns(Guid.Parse(database.Model.AspNetUsers.First().Id));

                await CreateReturnToCopy(DateTime.Now);

                var message = new CopyReturn(@return.Id);

                var authorization = new AuthorizationBuilder().AllowEverything().Build();

                handler = new CopyReturnHandler(authorization,
                                                database.WeeeContext,
                                                userContext,
                                                quarterWindowFactory);

                // Act
                var result = await handler.HandleAsync(message);

                @return      = database.WeeeContext.Returns.AsNoTracking().First(r => r.Id == message.ReturnId);
                copiedReturn = database.WeeeContext.Returns.First(r => r.Id == result);

                // Assert
                assertions(result);
            }
        }
Esempio n. 2
0
        private async Task ActionAndAssertApprovalDate(Action <Guid> assertion, DateTime?approvalDate, DateTime windowStartDate)
        {
            using (database = new DatabaseWrapper())
            {
                var helper       = new ModelHelper(database.Model);
                var domainHelper = new DomainHelper(database.WeeeContext);
                var userContext  = A.Fake <IUserContext>();

                A.CallTo(() => userContext.UserId).Returns(Guid.Parse(database.Model.AspNetUsers.First().Id));
                A.CallTo(() => quarterWindowFactory.GetQuarterWindow(A <Quarter> ._))
                .Returns(new Domain.DataReturns.QuarterWindow(windowStartDate, windowStartDate.AddDays(1), QuarterType.Q1));

                await CreateReturnToCopy(approvalDate);

                var message = new CopyReturn(@return.Id);

                var authorization = new AuthorizationBuilder().AllowEverything().Build();

                handler = new CopyReturnHandler(authorization,
                                                database.WeeeContext,
                                                userContext,
                                                quarterWindowFactory);

                var result = await handler.HandleAsync(message);

                @return      = database.WeeeContext.Returns.AsNoTracking().First(r => r.Id == message.ReturnId);
                copiedReturn = database.WeeeContext.Returns.First(r => r.Id == result);

                assertion(result);
            }
        }
Esempio n. 3
0
        public async Task HandleAsync_NoExternalAccess_ThrowsSecurityException()
        {
            var authorization = new AuthorizationBuilder().DenyExternalAreaAccess().Build();

            handler = new CopyReturnHandler(authorization,
                                            A.Dummy <WeeeContext>(),
                                            A.Dummy <IUserContext>(),
                                            quarterWindowFactory);

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

            await action.Should().ThrowAsync <SecurityException>();
        }
Esempio n. 4
0
        public async Task HandleAsync_NoReturnFound_ArgumentExceptionExpected()
        {
            using (database = new DatabaseWrapper())
            {
                var helper       = new ModelHelper(database.Model);
                var domainHelper = new DomainHelper(database.WeeeContext);

                var authorization = new AuthorizationBuilder().AllowEverything().Build();

                handler = new CopyReturnHandler(authorization,
                                                database.WeeeContext,
                                                A.Dummy <IUserContext>(),
                                                quarterWindowFactory);

                Func <Task> assertAction = async() => await handler.HandleAsync(new CopyReturn(Guid.NewGuid()));

                await assertAction.Should().ThrowAsync <ArgumentException>();
            }
        }
Esempio n. 5
0
        public async Task HandleAsync_NoOrganisationAccess_ThrowsSecurityException()
        {
            using (database = new DatabaseWrapper())
            {
                var helper       = new ModelHelper(database.Model);
                var domainHelper = new DomainHelper(database.WeeeContext);

                await CreateReturnToCopy();

                var authorization = new AuthorizationBuilder().DenyExternalAreaAccess().Build();

                handler = new CopyReturnHandler(authorization,
                                                database.WeeeContext,
                                                A.Dummy <IUserContext>(),
                                                quarterWindowFactory);

                Func <Task> action = async() => await handler.HandleAsync(new CopyReturn(@return.Id));

                await action.Should().ThrowAsync <SecurityException>();
            }
        }