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);
        }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 7
0
        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);
        }