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"); } }
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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
public void AddPreSaveHook(IDbHook dbHook) { RegisterPreSaveHook(dbHook); }
protected abstract void RegisterPreSaveHook(IDbHook hook);
protected abstract void RegisterLoadHook(IDbHook hook);
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); }
/// <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); }
protected override void RegisterPreSaveHook(IDbHook hook) { _dbHookContext.AddPreSaveHook(hook); }
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); }
public void AddPostSaveHook(IDbHook dbHook) { RegisterPostSaveHook(dbHook); }
/// <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); }
protected override void RegisterLoadHook(IDbHook hook) { _dbHookContext.AddLoadHook(hook); }