public IEnumerable <BattleModel> Get([FromBody] BattleRequest request)
 {
     using (var db = new ZkDataContext())
     {
         return(db.SpringBattles.Where(x => request.battleIds.Contains(x.SpringBattleID)).Include(x => x.SpringBattlePlayers).ToList().Select(bat => new BattleModel(bat)).ToList());
     }
 }
Example #2
0
        public void ReturnError_WhenVillainNameIsEmpty()
        {
            var request = new BattleRequest {
                Hero = "hero", Villain = string.Empty
            };
            var validationResult = _sut.Validate(request);

            Assert.True(validationResult.Errors.Count > 0);
        }
Example #3
0
        public void Validate_WhenRequestIsValid()
        {
            var request = new BattleRequest {
                Hero = "hero", Villain = "villain"
            };
            var validationResult = _sut.Validate(request);

            Assert.True(validationResult.Errors.Count == 0);
        }
        public async Task ReturnBadRequest_WhenBatmanChallengesSuperman()
        {
            var request = new BattleRequest {
                Hero = "Batman", Villain = "Superman"
            };
            var response = await _battleHandler.HandleAsync(request);

            var expectedResult = new BadRequestObjectResult("The villain you're looking for could not be found!");

            Assert.IsType <BadRequestObjectResult>(response);
            Assert.Matches(((BadRequestObjectResult)response).Value.ToString(), expectedResult.Value.ToString());
        }
        public async Task ReturnSupermanAsWinner_WhenBattleWithLexLuthor()
        {
            var request = new BattleRequest {
                Hero = "Superman", Villain = "Lex Luthor"
            };
            var response = await _battleHandler.HandleAsync(request);

            var expectedWinner = await _characterProvider.GetCharacter("Superman", "hero");

            Assert.IsType <OkObjectResult>(response);
            Assert.Same(((OkObjectResult)response).Value, expectedWinner);
        }
        public async Task ReturnJokerAsWinner_WhenBattleWithBatman()
        {
            var request = new BattleRequest {
                Hero = "Batman", Villain = "Joker"
            };
            var response = await _battleHandler.HandleAsync(request);

            var expectedWinner = await _characterProvider.GetCharacter("Joker", "villain");

            Assert.IsType <OkObjectResult>(response);
            Assert.Same(((OkObjectResult)response).Value, expectedWinner);
        }
        public async Task ReturnBadRequest_WhenNoHeroFoundWithGivenName()
        {
            var request = new BattleRequest {
                Hero = "He-man", Villain = "Joker"
            };
            var response = await _battleHandler.HandleAsync(request);

            var expectedResult = new BadRequestObjectResult("The hero you're looking for could not be found!");

            Assert.IsType <BadRequestObjectResult>(response);
            Assert.Matches(((BadRequestObjectResult)response).Value.ToString(), expectedResult.Value.ToString());
        }
Example #8
0
        public async Task <ActionResult <BattleRequest> > SimulateBattle(BattleRequest battleRequest)
        {
            if (battleRequest.Team1TankIds.Length == 0 || battleRequest.Team2TankIds.Length == 0)
            {
                return(BadRequest());
            }

            BattleManager battleManager = new BattleManager(_dbContext, battleRequest);

            Battle battle = await battleManager.SimulateAsync();

            return(CreatedAtAction(nameof(GetBattleResult), new { id = battle.Id }, battle));
        }