public void update_restaurant_using_EFContext()
        {
            //Arrange
            const string NEW_RESTAURANT_NAME = "Le cochon choqué";
            Restaurant   restaurantToUpdate;

            using (var context = new MiamDbContext())
            {
                restaurantToUpdate = context.Restaurants.First(r => r.Name == TestData.Restaurant1.Name);
            }

            //Action
            using (var context = new MiamDbContext())
            {
                restaurantToUpdate.Name = NEW_RESTAURANT_NAME;
                context.Restaurants.Attach(restaurantToUpdate);
                context.Entry(restaurantToUpdate).State = EntityState.Modified;
                context.SaveChanges();
            }

            //Assert
            using (var context = new MiamDbContext())
            {
                var restaurantAfter = context.Restaurants.First(r => r.Name == NEW_RESTAURANT_NAME);
                Assert.IsNotNull(restaurantAfter);
            }
        }
        public void update_restaurant_by_adding_review_using_EFContext()
        {
            //Arrange
            int        reviewsCountBefore;
            Restaurant restaurantToUpdate;
            int        writerID;

            using (var context = new MiamDbContext())
            {
                restaurantToUpdate = context.Restaurants.First(r => r.Name == TestData.Restaurant1.Name);
                reviewsCountBefore = restaurantToUpdate.Reviews.Count();
                var writer = context.Writers.First();
                writerID = writer.Id;
            }
            var newReview = new Review()
            {
                Body     = "Ambiance décontractée. Service trop familier.",
                Rating   = 3,
                WriterId = writerID
            };

            //Action
            using (var context = new MiamDbContext())
            {
                context.Restaurants.Attach(restaurantToUpdate);
                restaurantToUpdate.Reviews.Add(newReview);
                context.Entry(restaurantToUpdate).State = EntityState.Modified;
                context.SaveChanges();
            }

            //Assert
            using (var context = new MiamDbContext())
            {
                var restaurantAfter   = context.Restaurants.First(r => r.Name == TestData.Restaurant1.Name);
                var reviewsCountAfter = restaurantAfter.Reviews.Count();
                Assert.AreEqual(reviewsCountBefore + 1, reviewsCountAfter);
            }
        }
        public void update_restaurant_using_EFContext()
        {
            //Arrange
            const string NEW_RESTAURANT_NAME = "Le cochon choqué";
            Restaurant restaurantToUpdate;

            using (var context = new MiamDbContext())
            {
                restaurantToUpdate = context.Restaurants.First(r => r.Name == TestData.Restaurant1.Name);
            }

            //Action
            using (var context = new MiamDbContext())
            {
                restaurantToUpdate.Name = NEW_RESTAURANT_NAME;
                context.Restaurants.Attach(restaurantToUpdate);
                context.Entry(restaurantToUpdate).State = EntityState.Modified;
                context.SaveChanges();
            }

            //Assert
            using (var context = new MiamDbContext())
            {
                var restaurantAfter = context.Restaurants.First(r => r.Name == NEW_RESTAURANT_NAME);
                Assert.IsNotNull(restaurantAfter);
            }
        }
        public void update_restaurant_by_adding_review_using_EFContext()
        {
            //Arrange
            int reviewsCountBefore;
            Restaurant restaurantToUpdate;
            int writerID;
            using (var context = new MiamDbContext())
            {
                restaurantToUpdate = context.Restaurants.First(r => r.Name == TestData.Restaurant1.Name);
                reviewsCountBefore = restaurantToUpdate.Reviews.Count();
                var writer = context.Writers.First();
                writerID = writer.Id;

            }
            var newReview = new Review()
                            {
                                Body = "Ambiance décontractée. Service trop familier.",
                                Rating = 3,
                                WriterId = writerID
                            };

            //Action
            using (var context = new MiamDbContext())
            {

                context.Restaurants.Attach(restaurantToUpdate);
                restaurantToUpdate.Reviews.Add(newReview);
                context.Entry(restaurantToUpdate).State = EntityState.Modified;
                context.SaveChanges();
            }

            //Assert
            using (var context = new MiamDbContext())
            {
                var restaurantAfter = context.Restaurants.First(r => r.Name == TestData.Restaurant1.Name);
                var reviewsCountAfter = restaurantAfter.Reviews.Count();
                Assert.AreEqual(reviewsCountBefore + 1, reviewsCountAfter);
            }
        }