Example #1
0
        protected void ActAndAssert <T>(IInvokeSetup <T> setup, ref IDbHook registeredHook, IDbEntityEntry dbEntityEntry, bool shouldInvokeHook) where T : class
        {
            setup.Do(
                s =>
            {
                if (shouldInvokeHook)
                {
                    Assert.Pass("Hook invoked");
                }
                else
                {
                    Assert.Fail("Hook invoked");
                }
            });

            Assert.That(registeredHook, Is.Not.Null, "Hook not registered");

            registeredHook.HookEntry(dbEntityEntry);

            if (!shouldInvokeHook)
            {
                Assert.Pass("Hook not invoked");
            }
            else
            {
                Assert.Fail("Hook not invoked");
            }
        }
Example #2
0
        public void ShouldNotInvokeHook_IfNotAcceptedEntityType()
        {
            IDbHook registeredHook = null;

            var registrar = Substitute.For <IDbHookRegistrar>();

            SetupRegisterHook(registrar, hook => registeredHook = hook);

            var dbEntityEntry = SetupDbEntityEntry(() => new BarEntity(), EntityState.Unchanged);
            var setup         = CreateTypedHookSetup <FooEntity>(registrar);

            ActAndAssert(setup, ref registeredHook, dbEntityEntry, false);
        }
        public void ShouldNotInvokeHook_IfNotAcceptedEntityState(EntityState acceptableState, EntityState entityState)
        {
            IDbHook registeredHook = null;

            var registrar = Substitute.For <IDbHookRegistrar>();

            SetupRegisterHook(registrar, hook => registeredHook = hook);

            var dbEntityEntry = SetupDbEntityEntry(() => new FooEntity(), entityState);
            var setup         = CreateConditionalSetup <FooEntity>(registrar, foo => true, acceptableState);

            ActAndAssert(setup, ref registeredHook, dbEntityEntry, false);
        }
        private void RegisterVoidHook(IDbHook hook, Type entityType, EntityState entityState, HookStage stage)
        {
            var hookType = hook.GetType();

            // Unregister from request cache (if cached)
            _hooksRequestCache.Remove(new RequestHookKey(entityType, entityState, stage, false), hook);
            _hooksRequestCache.Remove(new RequestHookKey(entityType, entityState, stage, true), hook);

            lock (_lock)
            {
                // Add to static void hooks set
                _voidHooks.Add(new HookKey(hookType, entityType, entityState, stage));
            }
        }
        public void ShouldNotInvokeHook_IfEntityNotSatisfiesCondition()
        {
            IDbHook registeredHook = null;

            var registrar = Substitute.For <IDbHookRegistrar>();

            SetupRegisterHook(registrar, hook => registeredHook = hook);

            var dbEntityEntry = SetupDbEntityEntry(() => new FooEntity {
                Foo = 0
            }, EntityState.Unchanged);
            var setup = CreateConditionalSetup <FooEntity>(registrar, foo => foo.Foo == 42, EntityState.Unchanged | EntityState.Modified | EntityState.Deleted | EntityState.Added);

            ActAndAssert(setup, ref registeredHook, dbEntityEntry, false);
        }
Example #6
0
 /// <summary>
 /// Registers a hook to run before save data occurs.
 /// </summary>
 /// <param name="dbHook">The hook to register.</param>
 void IDbHookRegistrar.RegisterSaveHook(IDbHook dbHook)
 {
     RegisterPreSaveHook(dbHook);
 }
Example #7
0
 /// <summary>
 /// Registers a hook to run after save data occurs.
 /// </summary>
 /// <param name="dbHook">The hook to register.</param>
 protected void RegisterPostSaveHook(IDbHook dbHook)
 {
     _postSaveHooks.Add(dbHook);
 }
Example #8
0
 /// <summary>
 /// Registers a hook to run before save data occurs.
 /// </summary>
 /// <param name="dbHook">The hook to register.</param>
 protected void RegisterPreSaveHook(IDbHook dbHook)
 {
     _preSaveHooks.Add(dbHook);
 }
Example #9
0
 /// <summary>
 /// Registers a hook to run on object materialization stage.
 /// </summary>
 /// <param name="dbHook">The hook to register.</param>
 protected void RegisterLoadHook(IDbHook dbHook)
 {
     _loadHooks.Add(dbHook);
 }
 protected override void RegisterPreSaveHook(IDbHook hook)
 {
     _dbContextHooker.RegisterSaveHook(hook);
 }
 protected override void RegisterLoadHook(IDbHook hook)
 {
     _dbContextHooker.RegisterLoadHook(hook);
 }
Example #12
0
 /// <summary>
 /// Registers the hook.
 /// </summary>
 /// <param name="dbHookRegistrar">The database hook registrar.</param>
 /// <param name="hook">The hook.</param>
 protected abstract void RegisterHook(IDbHookRegistrar dbHookRegistrar, IDbHook hook);
 /// <summary>
 /// Registers a hook to run on object materialization stage.
 /// </summary>
 /// <param name="dbHook">The hook to register.</param>
 public void RegisterLoadHook(IDbHook dbHook)
 {
     _loadHooks.Add(dbHook);
 }
Example #14
0
 public void AddPreSaveHook(IDbHook dbHook)
 {
     RegisterPreSaveHook(dbHook);
 }
Example #15
0
 protected abstract void RegisterPreSaveHook(IDbHook hook);
Example #16
0
 protected abstract void RegisterLoadHook(IDbHook hook);
Example #17
0
 public void SetUp()
 {
     _hook1 = Substitute.For <IDbHook>();
     _hook2 = Substitute.For <IDbHook>();
 }
 public void SetUp()
 {
     _registrar    = Substitute.For <IDbHookRegistrar>();
     _hook         = Substitute.For <IDbHook>();
     _hookAttacher = new SaveHookAttacher(_registrar);
 }
Example #19
0
 /// <summary>
 /// Registers a hook to run on object materialization stage.
 /// </summary>
 /// <param name="dbHook">The hook to register.</param>
 void IDbHookRegistrar.RegisterLoadHook(IDbHook dbHook)
 {
     RegisterLoadHook(dbHook);
 }
Example #20
0
 protected override void RegisterPreSaveHook(IDbHook hook)
 {
     _dbHookContext.AddPreSaveHook(hook);
 }
Example #21
0
 public void AddLoadHook(IDbHook dbHook)
 {
     RegisterLoadHook(dbHook);
 }
 /// <summary>
 /// Registers the hook.
 /// </summary>
 /// <param name="dbHookRegistrar">The database hook registrar.</param>
 /// <param name="hook">The hook.</param>
 protected override void RegisterHook(IDbHookRegistrar dbHookRegistrar, IDbHook hook)
 {
     dbHookRegistrar.RegisterLoadHook(hook);
 }
Example #23
0
 public void AddPostSaveHook(IDbHook dbHook)
 {
     RegisterPostSaveHook(dbHook);
 }
Example #24
0
 /// <summary>
 /// Attaches the specified hook to be called for every entity save.
 /// </summary>
 /// <param name="hook">The hook.</param>
 /// <returns>
 /// This instance.
 /// </returns>
 public ISaveHookAttacher Attach(IDbHook hook)
 {
     _dbHookRegistrar.RegisterSaveHook(hook);
     return(this);
 }
 /// <summary>
 /// Registers a hook to run before save data occurs.
 /// </summary>
 /// <param name="dbHook">The hook to register.</param>
 public void RegisterSaveHook(IDbHook dbHook)
 {
     _saveHooks.Add(dbHook);
 }
Example #26
0
 protected override void RegisterLoadHook(IDbHook hook)
 {
     _dbHookContext.AddLoadHook(hook);
 }