Exemplo n.º 1
0
        public async Task AddPreEvolution_Should_Return_200_Status_Code_With_Valid_ViewModel()
        {
            // Arrange
            var rnd = new Random();
            var id  = rnd.Next(1, 151);

            var data = new EvolutionViewModel()
            {
                pokemonId          = id,
                pokemonEvolutionId = id + 1
            };

            var result = BogusViewModel.PokemonViewModelFaker();

            result.Abilities = null;
            result.Stats     = null;

            pokemonServices.Setup(x => x.AddPokemonPreEvolution(data)).ReturnsAsync(
                result
                );

            var pokemonController = new PokemonController(pokemonServices.Object);

            // Act
            var response = await pokemonController.AddPreEvolution(data);

            // Assert
            Assert.NotNull(response);
            Assert.IsType <OkObjectResult>(response.Result);
        }
Exemplo n.º 2
0
        public async Task <ActionResult <PokemonViewModel> > AddEvolution(
            [FromBody] EvolutionViewModel data
            )
        {
            data.Validate();

            if (data.Invalid)
            {
                return(BadRequest(data.Notifications));
            }

            var response = await pokemonServices.AddPokemonEvolution(data);

            return(Ok(response));
        }
Exemplo n.º 3
0
 private async Task <HttpResponseMessage> PerformRequest(
     HttpClient client,
     EvolutionViewModel data
     )
 {
     return(await client.PatchAsync("/v1/pokemon/add-pre-evolution", new StringContent(
                                        JsonConvert.SerializeObject(data),
                                        Encoding.UTF8
                                        ) {
         Headers =
         {
             ContentType = new MediaTypeHeaderValue("application/json")
         }
     }));
 }
Exemplo n.º 4
0
        public async Task Should_Return_401_Status_Code_If_Admin_Not_Authenticated()
        {
            // Arrange
            var client = factory.CreateClient();

            var data = new EvolutionViewModel()
            {
                pokemonId          = 2,
                pokemonEvolutionId = 1,
            };

            // Act
            var response = await PerformRequest(client, data);

            // Assert
            Assert.NotNull(response);
            Assert.Equal(HttpStatusCode.Unauthorized, response.StatusCode);
        }
Exemplo n.º 5
0
        public async Task Should_Return_200_Status_Code_If_Pre_Evolution_Added()
        {
            // Arrange
            var client = factory.CreateClient();
            await factory.AuthenticateAsync(client);

            var data = new EvolutionViewModel()
            {
                pokemonId          = 2,
                pokemonEvolutionId = 1,
            };

            // Act
            var response = await PerformRequest(client, data);

            // Assert
            Assert.NotNull(response);
            Assert.Equal(HttpStatusCode.OK, response.StatusCode);
        }
        public async Task <PokemonViewModel> AddPokemonPreEvolution(EvolutionViewModel data)
        {
            await CheckPokemonExists(data.pokemonId);
            await CheckPokemonExists(data.pokemonEvolutionId);

            var pokemon = await pokemonRepository.FindById(data.pokemonId);

            if (pokemon.PreEvolutionId != null)
            {
                throw new PokemonException("Pokemon can have only one pre-evolution", 400);
            }

            var preEvolutionPokemon = await pokemonRepository.FindById(data.pokemonEvolutionId);

            pokemon.PreEvolutionId = preEvolutionPokemon.Id;
            pokemon.PreEvolution   = preEvolutionPokemon;

            await pokemonRepository.SaveChangesToDatabase();

            return(mapper.Map <PokemonViewModel>(pokemon));
        }
Exemplo n.º 7
0
        public async Task AddPreEvolution_Should_Return_400_Status_Code_If_Invalid_ViewModel(
            int pokemonId,
            int pokemonEvolutionId
            )
        {
            // Arrange
            var data = new EvolutionViewModel()
            {
                pokemonId          = pokemonId,
                pokemonEvolutionId = pokemonEvolutionId
            };

            var pokemonController = new PokemonController(pokemonServices.Object);

            // Act
            var response = await pokemonController.AddPreEvolution(data);

            // Assert
            Assert.NotNull(response);
            Assert.IsType <BadRequestObjectResult>(response.Result);
        }
Exemplo n.º 8
0
        public async Task Should_Return_400_Status_Code_If_Invalid_ViewModel(
            int pokemonId,
            int pokemonEvolutionId
            )
        {
            // Arrange
            var client = factory.CreateClient();
            await factory.AuthenticateAsync(client);

            var data = new EvolutionViewModel()
            {
                pokemonId          = pokemonId,
                pokemonEvolutionId = pokemonEvolutionId,
            };

            // Act
            var response = await PerformRequest(client, data);

            // Assert
            Assert.NotNull(response);
            Assert.Equal(HttpStatusCode.BadRequest, response.StatusCode);
        }
Exemplo n.º 9
0
        public EvolutionPage(EvolutionViewModel viewModel)
        {
            InitializeComponent();

            BindingContext = this.viewModel = viewModel;
        }
 public async Task <PokemonViewModel> AddPokemonEvolution(EvolutionViewModel data)
 {
     return(new PokemonViewModel());
 }