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); }
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); } }
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); } }