示例#1
0
        private AccountSignUpStrategy MockAccountSignUpStrategyResult(AccountSignUpResult evaluatedResult, Member member)
        {
            var strategy = AccountSignUpStrategyDataBuilder.CreateAccountSignUpStrategy(1);

            _accountSignUpStrategyDataAccessor.GetDefaultStrategy().Returns(strategy);
            _accountSignUpService.Evaluate(member, strategy).Returns(evaluatedResult);
            return(strategy);
        }
        public void GivenAccountSignUpService_WhenCallMethodEvaluate_IfNoGuardFailed_ShouldReturnSuccessResult()
        {
            var serviceCollection = new ServiceCollection();

            serviceCollection.TryAddEnumerable(ServiceDescriptor.Singleton <IAccountSignUpGuard, AlwaysSuccessGuard>());

            using (var provider = serviceCollection.BuildServiceProvider())
            {
                var accountSignUpService = new AccountSignUpService(provider.GetService <IEnumerable <IAccountSignUpGuard> >());
                var member   = MemberDataBuilder.CreateMember(1, new List <MemberAccount>(), null, null);
                var strategy = AccountSignUpStrategyDataBuilder.CreateAccountSignUpStrategy(1);
                var result   = accountSignUpService.Evaluate(member, strategy);
                result.IsSuccess.ShouldBeTrue();
            }
        }
        public void GivenMonthNetIncomeGuard_WhenCallCanSignUp_ShouldReturnResult(decimal monthlySalary, decimal monthlyExpense, decimal monthNetIncomeLimit, bool canSignUp)
        {
            // assign

            var memberId        = 1;
            var memberExpensive = MemberDataBuilder.CreateMemberExpense(1, memberId, FrequencyIds.Month, monthlyExpense);
            var memberSalary    = MemberDataBuilder.CreateMemberSalary(1, memberId, FrequencyIds.Month, monthlySalary);
            var member          = MemberDataBuilder.CreateMember(1, new List <MemberAccount>(), memberExpensive, memberSalary);
            var strategy        = AccountSignUpStrategyDataBuilder.CreateAccountSignUpStrategy(1, true, monthNetIncomeLimit);

            // act
            var result = _accountSignUpGuard.CanSignUp(member, strategy);

            // assert
            result.IsSuccess.ShouldBe(canSignUp);
        }
示例#4
0
        public async Task GivenQueryExtension_WhenWhereValueExists_ShouldReturn(string criteria, int expectedRecordNumber)
        {
            using (var context = await InMemoryDbContextFactory.CreateUserContext())
            {
                // assign
                context.AccountSignUpStrategies.Add(AccountSignUpStrategyDataBuilder.CreateAccountSignUpStrategy(10, name: "One"));
                await context.SaveChangesAsync();

                // act
                var result = await context.AccountSignUpStrategies
                             .WhereWhenValueNotNull(criteria, a => a.Name == criteria)
                             .ToListAsync();

                // assert
                result.Count.ShouldBe(expectedRecordNumber);
            }
        }
示例#5
0
        public async Task GivenQueryExtension_WhenCallListByPaging_IfDataSetIsNotEmpty_ShouldReturnPaginationResponse(
            int pageSize, int pageNumber, int totalPageNumber, string[] expectedResult)
        {
            using (var context = await InMemoryDbContextFactory.CreateUserContext())
            {
                // assign
                context.AccountSignUpStrategies.Add(AccountSignUpStrategyDataBuilder.CreateAccountSignUpStrategy(10, name: "One"));
                context.AccountSignUpStrategies.Add(AccountSignUpStrategyDataBuilder.CreateAccountSignUpStrategy(11, name: "Two"));
                context.AccountSignUpStrategies.Add(AccountSignUpStrategyDataBuilder.CreateAccountSignUpStrategy(12, name: "Three"));
                context.AccountSignUpStrategies.Add(AccountSignUpStrategyDataBuilder.CreateAccountSignUpStrategy(13, name: "Four"));
                context.AccountSignUpStrategies.Add(AccountSignUpStrategyDataBuilder.CreateAccountSignUpStrategy(14, name: "Five"));
                await context.SaveChangesAsync();

                // act
                var result = await context.AccountSignUpStrategies
                             .OrderBy(a => a.Id)
                             .ListByPaging(pageSize, pageNumber);

                // assert
                result.TotalPageNumber.ShouldBe(totalPageNumber);
                result.Data.Count().ShouldBe(expectedResult.Length);
                result.Data.Select(a => a.Name).Intersect(expectedResult).Count().ShouldBe(expectedResult.Length);
            }
        }