/// <summary>
        /// Inserts an uncategorized movie into the repository.
        /// </summary>
        /// <param name="movie">The uncategorized movie to insert.</param>
        public void Insert(UncategorizedMovie movie)
        {
            if (movie == null)
                throw new ArgumentNullException("movie");

            CurrentSession.Save(movie);
        }
        public void ShouldRemoveMovie()
        {
            var movie = new UncategorizedMovie {EncodedFile = "encoded", OriginalFile = "original"};
            using (var transaction = InMemorySession.BeginTransaction())
            {
                InMemorySession.Save(movie);
                transaction.Commit();
            }

            using (var transaction = InMemorySession.BeginTransaction())
            {
                _sut.Remove(movie.ID);
                transaction.Commit();
            }

            Assert.AreEqual(0, InMemorySession.Query<UncategorizedMovie>().Count());
        }
        public void ShouldRetrieveInsertedUncategorizedMovieAfterInsert()
        {
            var uncategorizedMovie = new UncategorizedMovie {EncodedFile = "bromance", OriginalFile = "orig"};
            _sut.Insert(uncategorizedMovie);

            var retrieved = InMemorySession.Query<UncategorizedMovie>().ToArray();
            Assert.AreEqual(retrieved.Length, 1);
            Assert.AreEqual(retrieved.First().EncodedFile, uncategorizedMovie.EncodedFile);
        }
        public void ShouldRetrievePreviouslyInsertedUncategorizedMoviesOnGetAll()
        {
            var uncategorizedMovie = new UncategorizedMovie { EncodedFile = "bromance", OriginalFile = "orig"};
            using (var transaction = InMemorySession.BeginTransaction())
            {
                InMemorySession.Save(uncategorizedMovie);
                transaction.Commit();
            }

            var retrieved = _sut.GetAll().ToArray();
            Assert.AreEqual(retrieved.Length, 1);
            Assert.AreEqual(retrieved.First().EncodedFile, uncategorizedMovie.EncodedFile);
        }