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); }
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)); }
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") } })); }
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); }
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)); }
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); }
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); }
public EvolutionPage(EvolutionViewModel viewModel) { InitializeComponent(); BindingContext = this.viewModel = viewModel; }
public async Task <PokemonViewModel> AddPokemonEvolution(EvolutionViewModel data) { return(new PokemonViewModel()); }