public void BoundFakesyncedAction_Invoked_DoesNotUseSyncObject()
 {
     using (CallbackContext context = new CallbackContext())
     {
         var syncObject = new FakeActionSynchronizingObject(false);
         var action     = context.Bind(() => { }, syncObject);
         action();
         Assert.IsFalse(syncObject.sawInvoke, "Bound action did run through synchronizing object");
     }
 }
 public void BoundObjectsyncedAction_Invoked_UsesSyncObject()
 {
     using (CallbackContext context = new CallbackContext())
     {
         var syncObject = new FakeActionSynchronizingObject(true);
         var action     = context.Bind(() => { }, syncObject);
         action();
         Assert.IsTrue(syncObject.sawInvoke, "Bound action did not run through synchronizing object");
     }
 }
        public void BoundFakesyncedAction_Invoked_DoesNotSynchronizeWithSyncObject()
        {
            int sawActionThread = Thread.CurrentThread.ManagedThreadId;

            using (CallbackContext context = new CallbackContext())
            {
                var syncObject = new FakeActionSynchronizingObject(false);
                var action     = context.Bind(() => { sawActionThread = Thread.CurrentThread.ManagedThreadId; }, syncObject);
                action();
                Assert.AreEqual(Thread.CurrentThread.ManagedThreadId, sawActionThread, "Bound action was not run inline");
            }
        }
        public void BoundFakesyncedAction_Invoked_Executes()
        {
            bool sawAction = false;

            using (CallbackContext context = new CallbackContext())
            {
                var syncObject = new FakeActionSynchronizingObject(false);
                var action     = context.Bind(() => { sawAction = true; }, syncObject);
                action();
                Assert.IsTrue(sawAction, "Bound action did not run");
            }
        }
        public void InvalidBoundObjectsyncedAction_Invoked_DoesNotExecute()
        {
            int sawActionThread = Thread.CurrentThread.ManagedThreadId;

            using (CallbackContext context = new CallbackContext())
            {
                var syncObject = new FakeActionSynchronizingObject(true);
                var action     = context.Bind(() => { sawActionThread = Thread.CurrentThread.ManagedThreadId; }, syncObject);
                context.Reset();
                action();
                Assert.AreEqual(Thread.CurrentThread.ManagedThreadId, sawActionThread, "Bound action was executed");
            }
        }
 public void InvalidBoundObjectsyncedAction_Invoked_SynchronizesWithSyncObject()
 {
     using (CallbackContext context = new CallbackContext())
     {
         var syncObject = new FakeActionSynchronizingObject(true);
         var action = context.Bind(() => { }, syncObject);
         context.Reset();
         action();
         Assert.IsTrue(syncObject.sawInvoke, "Bound action did not run through synchronizing object");
     }
 }
        public void InvalidBoundObjectsyncedAction_Invoked_DoesNotExecute()
        {
            int sawActionThread = Thread.CurrentThread.ManagedThreadId;

            using (CallbackContext context = new CallbackContext())
            {
                var syncObject = new FakeActionSynchronizingObject(true);
                var action = context.Bind(() => { sawActionThread = Thread.CurrentThread.ManagedThreadId; }, syncObject);
                context.Reset();
                action();
                Assert.AreEqual(Thread.CurrentThread.ManagedThreadId, sawActionThread, "Bound action was executed");
            }
        }
        public void BoundObjectsyncedAction_Invoked_Executes()
        {
            bool sawAction = false;

            using (CallbackContext context = new CallbackContext())
            {
                var syncObject = new FakeActionSynchronizingObject(true);
                var action = context.Bind(() => { sawAction = true; }, syncObject);
                action();
                Assert.IsTrue(sawAction, "Bound action did not run");
            }
        }
 public void BoundFakesyncedAction_Invoked_DoesNotUseSyncObject()
 {
     using (CallbackContext context = new CallbackContext())
     {
         var syncObject = new FakeActionSynchronizingObject(false);
         var action = context.Bind(() => { }, syncObject);
         action();
         Assert.IsFalse(syncObject.sawInvoke, "Bound action did run through synchronizing object");
     }
 }
        public void BoundFakesyncedAction_Invoked_DoesNotSynchronizeWithSyncObject()
        {
            int sawActionThread = Thread.CurrentThread.ManagedThreadId;

            using (CallbackContext context = new CallbackContext())
            {
                var syncObject = new FakeActionSynchronizingObject(false);
                var action = context.Bind(() => { sawActionThread = Thread.CurrentThread.ManagedThreadId; }, syncObject);
                action();
                Assert.AreEqual(Thread.CurrentThread.ManagedThreadId, sawActionThread, "Bound action was not run inline");
            }
        }