Пример #1
0
        public async Task SavingChangesAsync_CallsHooks()
        {
            // Arrange
            var hook  = new UntypedDbContextHook();
            var hooks = new IDbContextHook[]
            {
                hook
            };
            var services        = new ServiceCollection().AddEntityFrameworkInMemoryDatabase();
            var serviceProvider = services.BuildServiceProvider();
            var options         = new DbContextOptionsBuilder <ExtendedDbContext>()
                                  .UseInMemoryDatabase()
                                  .UseInternalServiceProvider(serviceProvider)
                                  .Options;
            var context = new TestExtendedDbContext(hooks, options);

            // Act
            var product = new Product {
            };

            context.Add(product);
            await context.SaveChangesAsync();

            // Assert
            Assert.Equal(true, hook.SavingChangesAsyncCalled);
            Assert.Equal(true, hook.SavedChangesAsyncCalled);
        }
Пример #2
0
        public void UpdateEntity_CallsHooks()
        {
            // Arrange
            var hook  = new UntypedDbContextHook();
            var hooks = new IDbContextHook[]
            {
                hook
            };
            var services        = new ServiceCollection().AddEntityFrameworkInMemoryDatabase();
            var serviceProvider = services.BuildServiceProvider();
            var options         = new DbContextOptionsBuilder <ExtendedDbContext>()
                                  .UseInMemoryDatabase()
                                  .UseInternalServiceProvider(serviceProvider)
                                  .Options;
            var context = new TestExtendedDbContext(hooks, options);

            // Act
            var product = new Product {
                Id = 1
            };

            context.Update(product);

            // Assert
            Assert.Equal(true, hook.UpdatingEntryCalled);
            Assert.Equal(true, hook.UpdatedEntryCalled);
        }
Пример #3
0
        public void OnModelCreating_CallsHooks()
        {
            // Arrange
            var hook  = new UntypedDbContextHook();
            var hooks = new IDbContextHook[]
            {
                hook
            };
            var services        = new ServiceCollection().AddEntityFrameworkInMemoryDatabase();
            var serviceProvider = services.BuildServiceProvider();
            var options         = new DbContextOptionsBuilder <ExtendedDbContext>()
                                  .UseInMemoryDatabase()
                                  .UseInternalServiceProvider(serviceProvider)
                                  .Options;
            var context = new TestExtendedDbContext(hooks, options);

            // Act
            var product = new Product {
            };

            // MA - Services are lazily initiated so we need to perform an operation to set them.
            context.Add(product);

            // Assert
            Assert.Equal(true, hook.OnModelCreatingCalled);
        }
Пример #4
0
        public void DbContextType_AppliedToHooks()
        {
            // Arrange
            var untypedHook = new UntypedDbContextHook();
            var hooks       = new IDbContextHook[]
            {
                untypedHook
            };
            var services        = new ServiceCollection().AddEntityFrameworkInMemoryDatabase();
            var serviceProvider = services.BuildServiceProvider();
            var options         = new DbContextOptionsBuilder <ExtendedDbContext>()
                                  .UseInMemoryDatabase()
                                  .UseInternalServiceProvider(serviceProvider)
                                  .Options;

            // Act
            var context = new TestExtendedDbContext(hooks, options);

            // Assert
            Assert.Equal(typeof(TestExtendedDbContext), untypedHook.DbContextType);
        }
Пример #5
0
        public void Supports_UntypedHooks()
        {
            // Arrange
            var untypedHook = new UntypedDbContextHook();
            var hooks       = new IDbContextHook[]
            {
                untypedHook
            };
            var services        = new ServiceCollection().AddEntityFrameworkInMemoryDatabase();
            var serviceProvider = services.BuildServiceProvider();
            var options         = new DbContextOptionsBuilder <ExtendedDbContext>()
                                  .UseInMemoryDatabase()
                                  .UseInternalServiceProvider(serviceProvider)
                                  .Options;
            var context = new TestExtendedDbContext(hooks, options);

            // Act
            // MA - Services are lazily initiated so we need to perform an operation to set them.
            context.SaveChanges();


            // Assert
            Assert.Equal(true, untypedHook.OnConfiguringCalled);
        }