public Movie GetMovieByOrderMovie(OrderMovie item)
 {
     using (Context mCon = new Context())
     {
         return mCon.OrderMovie.Include("Movie.Genres").Include("Order").Where(x => x.Id == item.Id).FirstOrDefault().Movie;
     }
 }
        public void OrderMovie_get_works_test()
        {
            Facade facade = new Facade();
            OrderMovie om = new OrderMovie() { Movie = SetMovie(), Order = SetOrder() };

            om = facade.GetOrderMovieRepo().Add(om);

            facade = new Facade();
            Assert.AreEqual(facade.GetOrderMovieRepo().Get(om.Id).Movie.Name, "The Martian");
        }
        public void OrderMovie_get_movie_by_om_returning_movie_test()
        {
            Facade facade = new Facade();
            Movie mov = facade.GetMovieRepo().Add(SetMovie());
            Order or1 = facade.GetOrderRepo().Add(SetOrder());
            OrderMovie om = new OrderMovie() { Movie = mov, Order = or1 };

            om = facade.GetOrderMovieRepo().Add(om);

            facade = new Facade();
            Assert.AreEqual(facade.GetOrderMovieRepo().GetMovieByOrderMovie(om).Name, mov.Name);
        }
        public OrderMovie Add(OrderMovie item)
        {
            if (item == null)
                throw new ArgumentNullException("Ordermovie can not be null");
            using (Context mCon = new Context())
            {
                item.Movie = mCon.Movies.Where(x => x.Id == item.Movie.Id).FirstOrDefault();
                item.Order = mCon.Orders.Where(x => x.Id == item.Order.Id).FirstOrDefault();

                item = mCon.OrderMovie.Add(item);
                mCon.SaveChanges();
            }
            return item;
        }
        public void OrderMovie_get_all_return_multiple_test()
        {
            Facade facade = new Facade();
            Movie mov = facade.GetMovieRepo().Add(SetMovie());
            Order or1 = facade.GetOrderRepo().Add(SetOrder());
            Order or2 = facade.GetOrderRepo().Add(SetOrder());
            OrderMovie om = new OrderMovie() { Movie = mov, Order = or1 };
            OrderMovie om2 = new OrderMovie() { Movie = mov, Order = or2 };

            facade.GetOrderMovieRepo().Add(om);
            facade.GetOrderMovieRepo().Add(om);

            facade = new Facade();
            Assert.GreaterOrEqual(facade.GetOrderMovieRepo().GetAll().ToList().Count, 2);
        }
 public bool Update(OrderMovie item)
 {
     if (item == null)
         throw new ArgumentNullException("OrderMovie is null");
     if (Get(item.Id) == null)
         return false;
     using (Context mCon = new Context())
     {
         OrderMovie temp = mCon.OrderMovie.FirstOrDefault(x => x.Id == item.Id);
         temp.Movie = item.Movie;
         temp.Order = item.Order;
         mCon.SaveChanges();
     }
     return true;
 }
        public void OrderMovie_getall_oms_by_order_test()
        {
            Facade facade = new Facade();
            Movie mov = facade.GetMovieRepo().Add(SetMovie());
            Movie mov2 = SetMovie();
            mov2.Name = "changed";
            mov2 = facade.GetMovieRepo().Add(mov2);
            Order or1 = facade.GetOrderRepo().Add(SetOrder());
            OrderMovie om = new OrderMovie() { Movie = mov, Order = or1 };
            OrderMovie om2 = new OrderMovie() { Movie = mov2, Order = or1 };

            om = facade.GetOrderMovieRepo().Add(om);
            om2 = facade.GetOrderMovieRepo().Add(om2);

            facade = new Facade();
            Assert.GreaterOrEqual(facade.GetOrderMovieRepo().GetAllOrderMoviesByOrder(or1).ToList().Count, 2);
        }
        public void Order_added_on_create_test()
        {
            Facade facade = new Facade();

            Customer cus = new Customer()
            {
                FirstName = "Test",
                Address = "TestAddress",
                BirthDate = DateTime.Now,
                Email = "TestEmail",
                PhoneNumber = 1234
            };
            cus = facade.GetCustomerRepo().Add(cus);
            Genre genre = new Genre() { Name = "TestGenre" };
            List<Genre> list = new List<Genre>();
            genre = facade.GetGenreRepo().Add(genre);
            list.Add(genre);
            Movie movie = new Movie()
            {
                Name = "TestName",
                Genres = list,
                Price = 123,
                TrailerURL = "TestURL"
            };
            movie = facade.GetMovieRepo().Add(movie);
            Order order = new Order()
            {
                Customer = cus,
                Date = DateTime.Now
            };
            OrderMovie om = new OrderMovie() { Movie = movie, Order = order };
            om = facade.GetOrderMovieRepo().Add(om);

            order.OrderMovie.Add(om);

            order = facade.GetOrderRepo().Add(order);

            facade = new Facade();

            Assert.AreEqual(order.Customer.FirstName, facade.GetOrderRepo().Get(order.Id).Customer.FirstName);
        }
        public void OrderMovie_remove_removes_from_db_test()
        {
            Facade facade = new Facade();
            Movie mov = facade.GetMovieRepo().Add(SetMovie());
            Order or1 = facade.GetOrderRepo().Add(SetOrder());
            OrderMovie om = new OrderMovie() { Movie = mov, Order = or1 };

            om = facade.GetOrderMovieRepo().Add(om);

            facade = new Facade();
            facade.GetOrderMovieRepo().Remove(om.Id);

            facade = new Facade();
            Assert.IsNull(facade.GetOrderMovieRepo().Get(om.Id));
        }
        public void OrderMovie_update_updates_in_db_test()
        {
            Facade facade = new Facade();
            Movie mov = facade.GetMovieRepo().Add(SetMovie());
            Movie mov2 = SetMovie();
            mov2.Name = "changed";
            mov2 = facade.GetMovieRepo().Add(mov2);
            Order or1 = facade.GetOrderRepo().Add(SetOrder());
            OrderMovie om = new OrderMovie() { Movie = mov, Order = or1 };

            om = facade.GetOrderMovieRepo().Add(om);

            facade = new Facade();
            om.Movie = mov2;

            Assert.IsTrue(facade.GetOrderMovieRepo().Update(om));

            facade = new Facade();
            Assert.AreEqual(mov2.Name, facade.GetOrderMovieRepo().Get(om.Id).Movie.Name);
        }