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
        }