public void TestAddFilm() { var mockSet = new Mock<DbSet<Film>>(); var mockContext = new Mock<DVDRentalContext>(); mockContext.Setup(context => context.Films).Returns(mockSet.Object); repository = new FilmContext(mockContext.Object); repository.AddFilm(new Models.Film { Title = "Unit test paradise", Description = "Explaining art of unit testing", Length=102 }); mockSet.Verify(m => m.Add(It.IsAny<DatabaseClient.TableEntity.Film>()), Times.Once()); mockContext.Verify(m => m.SaveChanges(), Times.Once()); }
public void TestAddCategoryToFilm() { var mockSet = new Mock<DbSet<Film>>(); var mockContext = new Mock<DVDRentalContext>(); var mockTransaction = new Mock<ITransaction>(); mockContext.Setup(context => context.Films).Returns(mockSet.Object); mockContext.Setup(context => context.BeginTransaction()).Returns(mockTransaction.Object); repository = new FilmContext(mockContext.Object); repository.AddCategoryToFilm(3, 4); mockContext.Verify(context => context.ExecuteSqlCommand(false, It.IsAny<string>(), "3", "4")); mockContext.Verify(m => m.SaveChanges(), Times.Once()); mockTransaction.Verify(tran => tran.Commit(), Times.Once()); }
public void TestDeleteFilm() { var mockSet = new Mock<DbSet<Film>>(); var mockContext = new Mock<DVDRentalContext>(); var mockTransaction = new Mock<ITransaction>(); mockContext.Setup(context => context.Films).Returns(mockSet.Object); mockContext.Setup(context => context.BeginTransaction()).Returns(mockTransaction.Object); repository = new FilmContext(mockContext.Object); repository.DeleteFilm(4); mockSet.Verify(set => set.Find(4)); mockSet.Verify(set => set.Remove(It.IsAny<Film>())); mockContext.Verify(context => context.ExecuteSqlCommand(false, "delete from film_category where film_id = {0}", "4")); mockContext.Verify(context => context.ExecuteSqlCommand(false, "delete from film_actor where film_id = {0}", "4")); mockContext.Verify(m => m.SaveChanges(), Times.Once()); mockTransaction.Verify(tran => tran.Commit(), Times.Once()); }
public void TestUpdateFilm() { var updateToThis = new Models.Film { Description = "this movie change your life", Length = 109, ReleaseYear = 1999, Title = "Jumanji" }; var data = new List<DatabaseClient.TableEntity.Film> { new Film { description = "Wystraczy Cię na śmierć", film_id = 2, length = 97, release_year = 2001, title = "Jumanji" }, }.AsQueryable(); var mockSet = new Mock<DbSet<Film>>(); mockSet.As<IQueryable<Film>>().Setup(m => m.Provider).Returns(data.Provider); mockSet.As<IQueryable<Film>>().Setup(m => m.Expression).Returns(data.Expression); mockSet.As<IQueryable<Film>>().Setup(m => m.ElementType).Returns(data.ElementType); mockSet.As<IQueryable<Film>>().Setup(m => m.GetEnumerator()).Returns(data.GetEnumerator()); var mockContext = new Mock<DVDRentalContext>(); mockContext.Setup(context => context.Films).Returns(mockSet.Object); repository = new FilmContext(mockContext.Object); var updated = data.FirstOrDefault(); repository.UpdateFilm(updateToThis); Assert.AreEqual(updateToThis.Description, updated.description); Assert.AreEqual(updateToThis.ReleaseYear, updated.release_year); Assert.AreEqual(updateToThis.Length, updated.length); mockContext.Verify(m => m.SaveChanges(), Times.Once()); }
public void TestGetFilmById() { var filmData = new List<DatabaseClient.TableEntity.Film> { new Film { description = "Most anticipated film this year", film_id = 1, length = 47, release_year = 2015, title = "Brazzers best shots" }, new Film { description = "Wystraczy Cię na śmierć", film_id = 2, length = 97, release_year = 2001, title = "Jumanji" }, new Film { description = "Na faktach autentycznych", film_id = 3, length = 97, release_year = 2011, title = "Wysyp żywych trupów" } }.AsQueryable(); var filmSet = new Mock<DbSet<Film>>(); filmSet.As<IQueryable<Film>>().Setup(m => m.Provider).Returns(filmData.Provider); filmSet.As<IQueryable<Film>>().Setup(m => m.Expression).Returns(filmData.Expression); filmSet.As<IQueryable<Film>>().Setup(m => m.ElementType).Returns(filmData.ElementType); filmSet.As<IQueryable<Film>>().Setup(m => m.GetEnumerator()).Returns(filmData.GetEnumerator()); var categoryData = new List<DatabaseClient.TableEntity.Category> { new Category{category_id=11,last_update=DateTime.Now, name="Horror"}, new Category{category_id=4,last_update=DateTime.Now, name="Biography"} }.AsQueryable(); var categorySet = new Mock<DbSet<Category>>(); categorySet.As<IQueryable<Category>>().Setup(m => m.Provider).Returns(categoryData.Provider); categorySet.As<IQueryable<Category>>().Setup(m => m.Expression).Returns(categoryData.Expression); categorySet.As<IQueryable<Category>>().Setup(m => m.ElementType).Returns(categoryData.ElementType); categorySet.As<IQueryable<Category>>().Setup(m => m.GetEnumerator()).Returns(categoryData.GetEnumerator()); var mockContext = new Mock<DVDRentalContext>(); mockContext.Setup(context => context.Films).Returns(filmSet.Object); mockContext.Setup(context => context.Categorys).Returns(categorySet.Object); List<FilmToCategory> ftc = new List<FilmToCategory>() { new FilmToCategory{category_id=4,film_id=2}, new FilmToCategory{category_id=11,film_id=2} }; mockContext.Setup(context => context.FillEntity<FilmToCategory>(It.IsAny<string>())) .Returns(ftc); repository = new FilmContext(mockContext.Object); var result = repository.GetFilmById(2); var expectedFilm = filmData.ToList()[1]; Assert.AreEqual(expectedFilm.film_id, result.Id); Assert.AreEqual(expectedFilm.length, result.Length); Assert.AreEqual(expectedFilm.release_year, result.ReleaseYear); Assert.AreEqual(expectedFilm.title, result.Title); Assert.AreEqual(expectedFilm.description, result.Description); Assert.AreEqual(typeof(Models.Film), result.GetType()); // testowanie mapowania Assert.AreEqual(2, result.Categories.Count()); Assert.AreEqual(typeof(List<Models.Category>), result.Categories.ToList().GetType()); // testowanie mapowania }