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 remove_restaurant_using_EFContext_should_delete_restaurantContactDetail()
        {
            //Arrange
            Restaurant restaurantToRemove;
            int contactDetailsCountBefore;
            using (var context = new MiamDbContext())
            {
                restaurantToRemove = context.Restaurants.First(r => r.Name == TestData.Restaurant1.Name);
                contactDetailsCountBefore = context.RestaurantContactDetails.Count(c => c.RestaurantId == restaurantToRemove.Id);

            }

            //Action

            using (var context = new MiamDbContext())
            {
                context.Restaurants.Attach(restaurantToRemove);
                context.Restaurants.Remove(restaurantToRemove);
                context.SaveChanges();
            }

            //Assert
            using (var context = new MiamDbContext())
            {
                var contactDetailsCountAfter = context.RestaurantContactDetails.Count(c => c.RestaurantId == restaurantToRemove.Id);
                Assert.AreEqual(contactDetailsCountBefore - 1, contactDetailsCountAfter);
            }
        }
        public void add_restaurant_using_EFContext()
        {
            //Arrange
            const string RESTAURANT_NAME = "Le lapin grillé";
            var          restaurantToAdd = new Restaurant()
            {
                City    = "Quebec",
                Name    = RESTAURANT_NAME,
                Country = "Canada"
            };

            //Action
            using (var context = new MiamDbContext())
            {
                context.Restaurants.Add(restaurantToAdd);
                context.SaveChanges();
            }

            //Assert
            using (var context = new MiamDbContext())
            {
                var restaurantInDatabase = context.Restaurants.FirstOrDefault(x => x.Name == RESTAURANT_NAME);
                Assert.IsNotNull(restaurantInDatabase);
            }
        }
        public void remove_restaurant_using_EFContext_should_delete_restaurantContactDetail()
        {
            //Arrange
            Restaurant restaurantToRemove;
            int        contactDetailsCountBefore;

            using (var context = new MiamDbContext())
            {
                restaurantToRemove        = context.Restaurants.First(r => r.Name == TestData.Restaurant1.Name);
                contactDetailsCountBefore = context.RestaurantContactDetails.Count(c => c.RestaurantId == restaurantToRemove.Id);
            }

            //Action

            using (var context = new MiamDbContext())
            {
                context.Restaurants.Attach(restaurantToRemove);
                context.Restaurants.Remove(restaurantToRemove);
                context.SaveChanges();
            }

            //Assert
            using (var context = new MiamDbContext())
            {
                var contactDetailsCountAfter = context.RestaurantContactDetails.Count(c => c.RestaurantId == restaurantToRemove.Id);
                Assert.AreEqual(contactDetailsCountBefore - 1, contactDetailsCountAfter);
            }
        }
        public void remove_restaurant_using_EFContext()
        {
            //Arrange
            Restaurant restaurantToRemove;

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

            //Action
            using (var context = new MiamDbContext())
            {
                context.Restaurants.Attach(restaurantToRemove);
                context.Restaurants.Remove(restaurantToRemove);
                context.SaveChanges();
            }

            //Assert
            using (var context = new MiamDbContext())
            {
                var restaurantAfter = context.Restaurants.FirstOrDefault(r => r.Name == TestData.Restaurant1.Name);
                Assert.IsNull(restaurantAfter);
            }
        }
        public void add_restaurant_using_EFContext()
        {
            //Arrange
            const string RESTAURANT_NAME = "Le lapin grillé";
            var restaurantToAdd = new Restaurant()
                                 {
                                     City = "Quebec",
                                     Name = RESTAURANT_NAME,
                                     Country = "Canada"
                                 };

            //Action
            using (var context = new MiamDbContext())
            {
                context.Restaurants.Add(restaurantToAdd);
                context.SaveChanges();
            }

            //Assert
            using (var context = new MiamDbContext())
            {
                var restaurantInDatabase = context.Restaurants.FirstOrDefault(x => x.Name == RESTAURANT_NAME);
                Assert.IsNotNull(restaurantInDatabase);
            }
        }
        public void TestInitialize()
        {
            _dataBaseHelper = new EfDatabaseHelper();
            _dataBaseHelper.DropCreateDatabaseIfModelChanges();
            _dataBaseHelper.DeleteAll();

            _dataBaseTestHelper = new DataBaseTestHelper();
            _dataBaseTestHelper.SeedTables();

            _miamDbContextBefore = new MiamDbContext();
            _miamDbContextAfter = new MiamDbContext();
            _restaurantRepository = new EfEntityRepository<Restaurant>();

            _fixture = new Fixture();
            _fixture.Customizations.Add(new VirtualMembersOmitter());
        }
示例#8
0
        public void TestInitialize()
        {
            _dataBaseHelper = new EfDatabaseHelper();
            _dataBaseHelper.MigrateDatabaseToLatestVersion();
            _dataBaseHelper.ClearAllTables();

            _dataBaseTestHelper = new DataBaseTestHelper();
            _dataBaseTestHelper.SeedTables();

            _miamDbContextBefore  = new MiamDbContext();
            _miamDbContextAfter   = new MiamDbContext();
            _restaurantRepository = new EfEntityRepository <Restaurant>();

            _fixture = new Fixture();
            _fixture.Customizations.Add(new VirtualMembersOmitter());
        }
示例#9
0
        public void ClearAllTables()
        {
            var context = new MiamDbContext();

            context.Writers.RemoveRange(context.Writers);
            context.Restaurants.RemoveRange(context.Restaurants);
            context.Reviews.RemoveRange(context.Reviews);
            context.RestaurantTags.RemoveRange(context.RestaurantTags);
            context.Users.RemoveRange(context.Users);
            context.Roles.RemoveRange(context.Roles);
            context.SaveChanges();

             //Autre méthode pour tout effacer: supprimer la BD et la recréer, mais est plus lent.
            //SqlConnection.ClearAllPools();
            //context.Database.Initialize(false);
            //context.Database.Delete();
            //context.Database.CreateIfNotExists();
            //context.SaveChanges();
        }
示例#10
0
        public void ClearAllTables()
        {
            var context = new MiamDbContext();

            context.Writers.RemoveRange(context.Writers);
            context.Restaurants.RemoveRange(context.Restaurants);
            context.Reviews.RemoveRange(context.Reviews);
            context.RestaurantTags.RemoveRange(context.RestaurantTags);
            context.Users.RemoveRange(context.Users);
            context.Roles.RemoveRange(context.Roles);
            context.SaveChanges();


            //Autre méthode pour tout effacer: supprimer la BD et la recréer, mais est plus lent.
            //SqlConnection.ClearAllPools();
            //context.Database.Initialize(false);
            //context.Database.Delete();
            //context.Database.CreateIfNotExists();
            //context.SaveChanges();
        }
示例#11
0
        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);
            }
        }
示例#12
0
        public void remove_restaurant_using_EFContext()
        {
            //Arrange
            Restaurant restaurantToRemove;
            using (var context = new MiamDbContext())
            {
                restaurantToRemove = context.Restaurants.First(r => r.Name == TestData.Restaurant1.Name);
            }

            //Action
            using (var context = new MiamDbContext())
            {
                context.Restaurants.Attach(restaurantToRemove);
                context.Restaurants.Remove(restaurantToRemove);
                context.SaveChanges();
            }

            //Assert
            using (var context = new MiamDbContext())
            {
                var restaurantAfter = context.Restaurants.FirstOrDefault(r => r.Name == TestData.Restaurant1.Name);
                Assert.IsNull(restaurantAfter);
            }
        }
示例#13
0
 public EfUnitOfWork()
 {
     _dbContext = new MiamDbContext();
 }
示例#14
0
        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);
            }
        }
示例#15
0
        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);
            }
        }
示例#16
0
 public EfApplicationDatabase(MiamDbContext miamDbContext)
 {
     _context = miamDbContext;
 }
示例#17
0
        public void TestInitialize()
        {
            _dataBaseHelper = new EfDatabaseHelper();
            _dataBaseHelper.MigrateDatabaseToLatestVersion();
            _dataBaseHelper.ClearAllTables();

            _dataBaseTestHelper = new DataBaseTestHelper();
            _dataBaseTestHelper.SeedTables();

            _miamDbContextBefore = new MiamDbContext();
            _miamDbContextAfter = new MiamDbContext();
            _restaurantRepository = new EfEntityRepository<Restaurant>();

            _fixture = new Fixture();
            _fixture.Customizations.Add(new VirtualMembersOmitter());
        }
示例#18
0
 public EfEntityRepository(MiamDbContext dbContext)
 {
     _context = dbContext;
 }
示例#19
0
 public TestDataSeeder()
 {
     _dbContext = new MiamDbContext();
 }
示例#20
0
 public EfUnitOfWork()
 {
     _dbContext = new MiamDbContext();
 }
示例#21
0
 public EfApplicationDatabase(MiamDbContext miamDbContext)
 {
     _context = miamDbContext;
 }