public async Task Update_given_existing_character_Updates_properties() { var context = new Mock <IFuturamaContext>(); var entity = new Character { Id = 42 }; context.Setup(c => c.Characters.FindAsync(42)).ReturnsAsync(entity); using (var repository = new EntityFrameworkCharacterRepository(context.Object)) { var character = new CharacterUpdateDTO { Id = 42, ActorId = 12, Name = "Name", Species = "Species", Planet = "Planet", Image = "Image" }; await repository.UpdateAsync(character); } Assert.Equal(12, entity.ActorId); Assert.Equal("Name", entity.Name); Assert.Equal("Species", entity.Species); Assert.Equal("Planet", entity.Planet); Assert.Equal("Image", entity.Image); }
public async Task Delete_given_valid_character_returns_NoContent() { var repository = new Mock <ICharacterRepository>(); repository.Setup(r => r.DeleteAsync(42)).ReturnsAsync(true); var controller = new CharactersController(repository.Object); var character = new CharacterUpdateDTO(); var result = await controller.Delete(42); Assert.IsType <NoContentResult>(result); }
public async Task Put_given_valid_character_calls_UpdateAsync() { var repository = new Mock <ICharacterRepository>(); var controller = new CharactersController(repository.Object); var character = new CharacterUpdateDTO { Id = 42 }; await controller.Put(42, character); repository.Verify(r => r.UpdateAsync(character)); }
public async Task Delete_given_non_existing_character_returns_NotFound() { var repository = new Mock <ICharacterRepository>(); repository.Setup(r => r.DeleteAsync(42)).ReturnsAsync(false); var controller = new CharactersController(repository.Object); var character = new CharacterUpdateDTO(); var result = await controller.Delete(42); Assert.IsType <NotFoundResult>(result); }
public async Task Put_given_invalid_character_does_not_call_UpdateAsync() { var repository = new Mock <ICharacterRepository>(); var controller = new CharactersController(repository.Object); controller.ModelState.AddModelError(string.Empty, "Error"); var character = new CharacterUpdateDTO(); await controller.Put(42, character); repository.Verify(r => r.UpdateAsync(It.IsAny <CharacterUpdateDTO>()), Times.Never); }
public async Task Put_given_id_not_equal_to_character_id_returns_BadRequest() { var repository = new Mock <ICharacterRepository>(); var controller = new CharactersController(repository.Object); var customer = new CharacterUpdateDTO { Id = 42 }; var result = await controller.Put(0, customer); Assert.IsType <BadRequestObjectResult>(result); }
public async Task Put_given_valid_character_returns_NoContent() { var repository = new Mock <ICharacterRepository>(); repository.Setup(r => r.UpdateAsync(It.IsAny <CharacterUpdateDTO>())).ReturnsAsync(true); var controller = new CharactersController(repository.Object); var character = new CharacterUpdateDTO { Id = 42 }; var result = await controller.Put(42, character); Assert.IsType <NoContentResult>(result); }
public async Task Put_given_invalid_character_returns_BadRequest() { var repository = new Mock <ICharacterRepository>(); var controller = new CharactersController(repository.Object); controller.ModelState.AddModelError(string.Empty, "Error"); var character = new CharacterUpdateDTO { Id = 42 }; var result = await controller.Put(42, character); Assert.IsType <BadRequestObjectResult>(result); }
public async Task <bool> UpdateAsync(CharacterUpdateDTO character) { var entity = await _context.Characters.FindAsync(character.Id); if (entity == null) { return(false); } entity.ActorId = character.ActorId; entity.Name = character.Name; entity.Species = character.Species; entity.Planet = character.Planet; entity.Image = character.Image; await _context.SaveChangesAsync(); return(true); }
public async Task <IActionResult> Put(int id, [FromBody] CharacterUpdateDTO character) { if (id != character.Id) { ModelState.AddModelError(string.Empty, "id must match character.id"); } if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var updated = await _repository.UpdateAsync(character); if (!updated) { return(NotFound()); } return(NoContent()); }
public async Task Update_given_non_existing_character_does_not_SaveChangesAsync() { var context = new Mock <IFuturamaContext>(); context.Setup(c => c.Characters.FindAsync(42)).ReturnsAsync(default(Character)); using (var repository = new EntityFrameworkCharacterRepository(context.Object)) { var character = new CharacterUpdateDTO { Id = 42, Name = "Name", Species = "Species", }; await repository.UpdateAsync(character); } context.Verify(c => c.SaveChangesAsync(default(CancellationToken)), Times.Never); }
public async Task Update_given_non_existing_character_returns_false() { var context = new Mock <IFuturamaContext>(); context.Setup(c => c.Characters.FindAsync(42)).ReturnsAsync(default(Character)); using (var repository = new EntityFrameworkCharacterRepository(context.Object)) { var character = new CharacterUpdateDTO { Id = 42, Name = "Name", Species = "Species", }; var result = await repository.UpdateAsync(character); Assert.False(result); } }
public async Task <bool> UpdateAsync(CharacterUpdateDTO character) { var response = await _client.PutAsync($"api/characters/{character.Id}", character.ToHttpContent()); return(response.IsSuccessStatusCode); }