internal void OnHandlerRaised(DatabaseActionEvent e, DatabaseActionHandler eventhandler) { var handler = HandlerRaised; if (handler != null) { handler(this, e, eventhandler); } }
public void TestEvent(Action <DatabaseActionHandler> eventType, Action shouldRaiseEvent, bool shouldInvoke) { var riseFlag = false; var eventDone = new AutoResetEvent(false); DatabaseActionHandler handler = (sender, eventx) => { Assert.That(riseFlag, Is.False, "The wrong event or the wrong ammount of events are risen. Raise: " + DbAccess.RaiseEvents); riseFlag = true; eventDone.Set(); }; var setState = new OnDatabaseActionHandler((sender, evenat, handlerDone) => { eventDone.Set(); }); try { DbAccess.RaiseEvents = true; DbAccess.HandlerRaised += setState; eventType(handler); shouldRaiseEvent(); Assert.That(eventDone.WaitOne(TimeSpan.FromSeconds(20)), Is.True, "The eventhandler did not respond in a timely manner"); Assert.That(riseFlag, Is.EqualTo(shouldInvoke), "First call should be succeed but did not"); DbAccess.RaiseEvents = false; riseFlag = false; shouldRaiseEvent(); Assert.That(riseFlag, Is.EqualTo(false), "Last call should not succeed but did"); } finally { DbAccess.OnSelect -= handler; DbAccess.OnDelete -= handler; DbAccess.OnInsert -= handler; DbAccess.OnUpdate -= handler; DbAccess.HandlerRaised -= setState; } }