示例#1
0
        // Note that add and build operations need to be done in the same context to preserve
        // tracking:
        private async Task <CharacterBuildModel> AddAndBuildAsync(CharacterBuildService service, ClaimsPrincipal user, string name, int level, params string[] choices)
        {
            var model = await service.AddAsync(user, new NewCharacterModel { Name = name, Level = level });

            model.Should().NotBeNull();
            return(await BuildAsync(service, user, model, choices));
        }
示例#2
0
 private async Task <T> TestServiceAsync <T>(Func <CharacterBuildService, Task <T> > func)
 {
     using (var context = new ApplicationDbContext(dbOptions))
     {
         var service = new CharacterBuildService(buildDriver, context, logger, mapper, toastService, userManager);
         return(await func(service));
     }
 }
示例#3
0
 private async Task TestServiceAsync(Func <CharacterBuildService, Task> action)
 {
     using (var context = new ApplicationDbContext(dbOptions))
     {
         var service = new CharacterBuildService(buildDriver, context, logger, mapper, toastService, userManager);
         await action(service);
     }
 }
示例#4
0
        private async Task <CharacterBuildModel> BuildAsync(CharacterBuildService service, ClaimsPrincipal user, CharacterBuildModel model, params string[] choices)
        {
            if (choices.Length == 0)
            {
                return(model);
            }

            var newModel = await service.BuildAsync(user, model, choices[0]);

            newModel.Should().NotBeNull();
            return(await BuildAsync(service, user, newModel, choices.Skip(1).ToArray()));
        }