public void AddFailsWithInvalidGenre() { //Arrange GenreBindingModel genre = null; //Act Action action = () => this.genreService.Add(genre); //Assert Assert.ThrowsException <InvalidOperationException>(action); }
public void AddReturnsCorrectType() { //Arrange var genre = new GenreBindingModel { Description = "genre one" }; //Act var result = this.genreService.Add(genre); //Assert Assert.IsInstanceOfType(result, typeof(GenreBindingModel)); }
public GenreBindingModel GetGenreById(int id) { var genre = new GenreBindingModel(); var genreDb = DbContext.Genres.Find(id); if (genreDb == null) { genre.SetError("No such genre in database"); return(genre); } genre = Mapper.Map <GenreBindingModel>(genreDb); return(genre); }
public void EditWorksCorrectlyWithNonExistentId() { //Arrange var invalidModel = new GenreBindingModel { Id = 0, Description = "invalid" }; //Act var result = this.genreService.EditGenre(invalidModel); //Assert Assert.IsTrue(result.HasError); Assert.AreEqual(result.Message, "No such genre in database"); }
public GenreBindingModel Add(GenreBindingModel model) { if (DbContext.Genres.Any(g => g.Description == model.Description)) { model.SetError("Genre already exists"); return(model); } var genre = Mapper.Map <Genre>(model); DbContext.Genres.Add(genre); DbContext.SaveChanges(); Mapper.Map(genre, model); return(model); }
public GenreBindingModel DeleteGenre(int id) { var model = new GenreBindingModel(); var genre = DbContext.Genres.Find(id); if (genre == null) { model.SetError("No such genre in database"); return(model); } DbContext.Genres.Remove(genre); DbContext.SaveChanges(); Mapper.Map(genre, model); return(model); }
public void EditWorksCorrectlyWithValidModel() { //Arrange this.dbContext.Genres.Add(new Genre { Description = "genre one" }); this.dbContext.SaveChanges(); var editedGenre = new GenreBindingModel { Id = 1, Description = "edited" }; //Act var result = this.genreService.EditGenre(editedGenre); //Assert Assert.AreEqual("edited", result.Description); }
public void AddWorksCorrectlyWithDuplicateGenre() { //Arrange this.dbContext.Genres.Add(new Genre { Description = "genre one" }); this.dbContext.SaveChanges(); var duplicateGenre = new GenreBindingModel { Description = "genre one" }; //Act var result = this.genreService.Add(duplicateGenre); //Assert Assert.IsTrue(result.HasError); Assert.AreEqual(result.Message, "Genre already exists"); }
public void AddWorksCorrectlyWithValidGenre() { //Arrange var genre = new GenreBindingModel { Description = "genre one" }; //Act this.genreService.Add(genre); //Assert Assert.AreEqual(1, this.dbContext.Genres.Count()); var genreDb = this.dbContext.Genres.FirstOrDefault(); Assert.IsNotNull(genreDb); Assert.AreEqual("genre one", genreDb.Description); }
public IActionResult Edit(GenreBindingModel model) { if (!ModelState.IsValid) { return(this.View(model)); } var result = this.genreService.EditGenre(model); LogResult(result); if (result.HasError) { SetMessage(MessageType.Danger, result.Message); return(this.View(result)); } SetMessage(MessageType.Success, $"Genre {model.Description} edited successfully"); return(this.RedirectToAction("All")); }
public GenreBindingModel EditGenre(GenreBindingModel model) { var genre = DbContext.Genres.Find(model.Id); if (genre == null) { model.SetError("No such genre in database"); return(model); } if (DbContext.Genres.Any(g => g.Id != model.Id && g.Description == model.Description)) { model.SetError("Genre already exists"); return(model); } Mapper.Map(model, genre); DbContext.Genres.Update(genre); DbContext.SaveChanges(); Mapper.Map(genre, model); return(model); }