Пример #1
0
        internal void OnHandlerRaised(DatabaseActionEvent e, DatabaseActionHandler eventhandler)
        {
            var handler = HandlerRaised;

            if (handler != null)
            {
                handler(this, e, eventhandler);
            }
        }
Пример #2
0
        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;
            }
        }