Ejemplo n.º 1
0
        public void VerifyExceptionHandlerCanWrapExceptions()
        {
            var jetApi = this.mocks.Stub <IJetApi>();

            Api.Impl = jetApi;

            SetupResult.For(
                jetApi.JetBeginTransaction(JET_SESID.Nil))
            .IgnoreArguments()
            .Return((int)JET_err.TransTooDeep);
            this.mocks.ReplayAll();

            Api.ErrorHandler handler = ex =>
            {
                throw new InvalidOperationException("test");
            };

            try
            {
                Api.HandleError += handler;
                Api.JetBeginTransaction(JET_SESID.Nil);
                Assert.Fail("Expected an invalid operation exception");
            }
            catch (InvalidOperationException)
            {
            }

            Api.HandleError -= handler;
        }
Ejemplo n.º 2
0
        public void VerifyErrorHandlerIsInvokedOnException()
        {
            var jetApi = this.mocks.Stub <IJetApi>();

            Api.Impl = jetApi;

            SetupResult.For(
                jetApi.JetBeginTransaction(JET_SESID.Nil))
            .IgnoreArguments()
            .Return((int)JET_err.TransTooDeep);
            this.mocks.ReplayAll();

            bool    eventWasCalled = false;
            JET_err error          = JET_err.Success;

            Api.ErrorHandler handler = errArg =>
            {
                eventWasCalled = true;
                error          = errArg;
            };

            try
            {
                Api.HandleError += handler;
                Api.JetBeginTransaction(JET_SESID.Nil);
            }
            catch (EsentErrorException)
            {
            }

            Api.HandleError -= handler;
            Assert.IsTrue(eventWasCalled);
            Assert.AreEqual(JET_err.TransTooDeep, error);
        }