public void PostedCallbacksTriggerActions()
        {
            var callback = new CallbackForTest {
                UniqueID = Guid.NewGuid()
            };

            var numCallbacksRun             = 0;
            Action <CallbackForTest> action = delegate(CallbackForTest cb)
            {
                Assert.Equal(callback.UniqueID, cb.UniqueID);
                numCallbacksRun++;
            };

            using (mgr.Subscribe(action))
            {
                for (var i = 0; i < 10; i++)
                {
                    client.PostCallback(callback);
                }

                mgr.RunWaitAllCallbacks(TimeSpan.Zero);
                Assert.Equal(10, numCallbacksRun);

                // Callbacks should have been freed.
                mgr.RunWaitAllCallbacks(TimeSpan.Zero);
                Assert.Equal(10, numCallbacksRun);
            }
        }
Example #2
0
        public void SubscribedFunctionDoesNotRunWhenSubscriptionIsDisposed()
        {
            var callback = new CallbackForTest();

            var callCount = 0;
            Action <CallbackForTest> action = delegate(CallbackForTest cb)
            {
                callCount++;
            };

            using (mgr.Subscribe(action))
            {
                PostAndRunCallback(callback);
            }
            PostAndRunCallback(callback);

            Assert.Equal(1, callCount);
        }
Example #3
0
        public void PostedCallbackTriggersAction()
        {
            var callback = new CallbackForTest { UniqueID = Guid.NewGuid() };

            var didCall = false;
            Action<CallbackForTest> action = delegate(CallbackForTest cb)
            {
                Assert.Equal(callback.UniqueID, cb.UniqueID);
                didCall = true;
            };

            using (new Callback<CallbackForTest>(action, mgr))
            {
                PostAndRunCallback(callback);
            }

            Assert.True(didCall);
        }
Example #4
0
        public void PostedCallbackDoesNotTriggerJobCallback()
        {
            var callback = new CallbackForTest {
                UniqueID = Guid.NewGuid()
            };

            var didCall = false;
            Action <CallbackForTest, JobID> action = delegate(CallbackForTest cb, JobID jid)
            {
                didCall = true;
            };

            using (new JobCallback <CallbackForTest>(action, mgr))
            {
                PostAndRunCallback(callback);
            }

            Assert.False(didCall);
        }
Example #5
0
        public void PostedCallbackTriggersAction_CatchAll()
        {
            var callback = new CallbackForTest { UniqueID = Guid.NewGuid() };

            var didCall = false;
            Action<CallbackMsg> action = delegate(CallbackMsg cb)
            {
                Assert.IsType<CallbackForTest>(cb);
                var cft = (CallbackForTest)cb;
                Assert.Equal(callback.UniqueID, cft.UniqueID);
                didCall = true;
            };

            using (new Callback<CallbackMsg>(action, mgr))
            {
                PostAndRunCallback(callback);
            }

            Assert.True(didCall);
        }
Example #6
0
        public void PostedCallbackTriggersActionForExplicitJobIDInvalid()
        {
            var jobID = new JobID(123456);
            var callback = new CallbackForTest { JobID = jobID, UniqueID = Guid.NewGuid() };

            var didCall = false;
            Action<CallbackForTest> action = delegate(CallbackForTest cb)
            {
                Assert.Equal(callback.UniqueID, cb.UniqueID);
                Assert.Equal(jobID, cb.JobID);
                didCall = true;
            };

            using (new Callback<CallbackForTest>(action, mgr, JobID.Invalid))
            {
                PostAndRunCallback(callback);
            }

            Assert.True(didCall);
        }
Example #7
0
        public void PostedCallbackTriggersAction()
        {
            var callback = new CallbackForTest {
                UniqueID = Guid.NewGuid()
            };

            var didCall = false;
            Action <CallbackForTest> action = delegate(CallbackForTest cb)
            {
                Assert.Equal(cb.UniqueID, callback.UniqueID);
                didCall = true;
            };

            using (new Callback <CallbackForTest>(action, mgr))
            {
                PostAndRunCallback(callback);
            }

            Assert.True(didCall);
        }
Example #8
0
        public void PostedCallbackDoesNotTriggerActionForWrongJobID()
        {
            var jobID    = new JobID(123456);
            var callback = new CallbackForTest {
                JobID = jobID, UniqueID = Guid.NewGuid()
            };

            var didCall = false;
            Action <CallbackForTest> action = delegate(CallbackForTest cb)
            {
                didCall = true;
            };

            using (new Callback <CallbackForTest>(action, mgr, new JobID(123)))
            {
                PostAndRunCallback(callback);
            }

            Assert.False(didCall);
        }
Example #9
0
        public void PostedJobCallbackTriggersAction()
        {
            var callback = new CallbackForTest { UniqueID = Guid.NewGuid() };
            var jobID = new JobID(123456);
            var jobCallback = new SteamClient.JobCallback<CallbackForTest>(jobID, callback);

            var didCall = false;
            Action<CallbackForTest, JobID> action = delegate(CallbackForTest cb, JobID jid)
            {
                Assert.Equal(cb.UniqueID, callback.UniqueID);
                Assert.Equal(jobID, jid);
                didCall = true;
            };

            using (new JobCallback<CallbackForTest>(action, mgr))
            {
                PostAndRunCallback(jobCallback);
            }

            Assert.True(didCall);
        }
Example #10
0
        public void PostedJobCallbackDoesNotTriggerCallback()
        {
            var callback = new CallbackForTest {
                UniqueID = Guid.NewGuid()
            };
            var jobID       = new JobID(123456);
            var jobCallback = new SteamClient.JobCallback <CallbackForTest>(jobID, callback);

            var didCall = false;
            Action <CallbackForTest> action = delegate(CallbackForTest cb)
            {
                didCall = true;
            };

            using (new Callback <CallbackForTest>(action, mgr))
            {
                PostAndRunCallback(jobCallback);
            }

            Assert.False(didCall);
        }
Example #11
0
        public void PostedCallbackTriggersActionForExplicitJobIDInvalid()
        {
            var jobID    = new JobID(123456);
            var callback = new CallbackForTest {
                JobID = jobID, UniqueID = Guid.NewGuid()
            };

            var didCall = false;
            Action <CallbackForTest> action = delegate(CallbackForTest cb)
            {
                Assert.Equal(callback.UniqueID, cb.UniqueID);
                Assert.Equal(jobID, cb.JobID);
                didCall = true;
            };

            using (new Callback <CallbackForTest>(action, mgr, JobID.Invalid))
            {
                PostAndRunCallback(callback);
            }

            Assert.True(didCall);
        }
Example #12
0
        public void PostedCallbackTriggersAction_CatchAll()
        {
            var callback = new CallbackForTest {
                UniqueID = Guid.NewGuid()
            };

            var didCall = false;
            Action <CallbackMsg> action = delegate(CallbackMsg cb)
            {
                Assert.IsType <CallbackForTest>(cb);
                var cft = (CallbackForTest)cb;
                Assert.Equal(callback.UniqueID, cft.UniqueID);
                didCall = true;
            };

            using (new Callback <CallbackMsg>(action, mgr))
            {
                PostAndRunCallback(callback);
            }

            Assert.True(didCall);
        }
Example #13
0
        public void PostedCallbackWithJobIDTriggersCallbackForJobID()
        {
            var jobID    = new JobID(123456);
            var callback = new CallbackForTest {
                JobID = jobID, UniqueID = Guid.NewGuid()
            };

            var didCall = false;
            Action <CallbackForTest> action = delegate(CallbackForTest cb)
            {
                Assert.Equal(callback.UniqueID, cb.UniqueID);
                Assert.Equal(jobID, cb.JobID);
                didCall = true;
            };

            using (mgr.Subscribe(123456, action))
            {
                PostAndRunCallback(callback);
            }

            Assert.True(didCall);
        }
Example #14
0
        public void PostedCallbackWithJobIDTriggersActionWhenNoJobIDSpecified()
        {
            var jobID    = new JobID(123456);
            var callback = new CallbackForTest {
                JobID = jobID, UniqueID = Guid.NewGuid()
            };

            var didCall = false;
            Action <CallbackForTest> action = delegate(CallbackForTest cb)
            {
                Assert.Equal(callback.UniqueID, cb.UniqueID);
                Assert.Equal(jobID, cb.JobID);
                didCall = true;
            };

            using (new Callback <CallbackForTest>(action, mgr))
            {
                PostAndRunCallback(callback);
            }

            Assert.True(didCall);
        }
Example #15
0
        public void PostedJobCallbackDoesNotTriggerActionForWrongJobID()
        {
            var callback = new CallbackForTest {
                UniqueID = Guid.NewGuid()
            };
            var jobID       = new JobID(123456);
            var jobCallback = new SteamClient.JobCallback <CallbackForTest>(jobID, callback);

            var didCall = false;
            Action <CallbackForTest, JobID> action = delegate(CallbackForTest cb, JobID jid)
            {
                Assert.Equal(jobID, jid);
                didCall = true;
            };

            using (new JobCallback <CallbackForTest>(action, mgr, new JobID(123)))
            {
                PostAndRunCallback(jobCallback);
            }

            Assert.False(didCall);
        }
Example #16
0
        public void PostedCallbackDoesNotTriggerJobCallback()
        {
            var callback = new CallbackForTest { UniqueID = Guid.NewGuid() };

            var didCall = false;
            Action<CallbackForTest, JobID> action = delegate(CallbackForTest cb, JobID jid)
            {
                didCall = true;
            };

            using (new JobCallback<CallbackForTest>(action, mgr))
            {
                PostAndRunCallback(callback);
            }

            Assert.False(didCall);
        }
Example #17
0
        public void PostedCallbackWithJobIDTriggersActionWhenNoJobIDSpecified()
        {
            var jobID = new JobID(123456);
            var callback = new CallbackForTest { JobID = jobID, UniqueID = Guid.NewGuid() };

            var didCall = false;
            Action<CallbackForTest> action = delegate(CallbackForTest cb)
            {
                Assert.Equal(callback.UniqueID, cb.UniqueID);
                Assert.Equal(jobID, cb.JobID);
                didCall = true;
            };

            using (new Callback<CallbackForTest>(action, mgr))
            {
                PostAndRunCallback(callback);
            }

            Assert.True(didCall);
        }
Example #18
0
        public void PostedJobCallbackDoesNotTriggerCallback()
        {
            var callback = new CallbackForTest { UniqueID = Guid.NewGuid() };
            var jobID = new JobID(123456);
            var jobCallback = new SteamClient.JobCallback<CallbackForTest>(jobID, callback);

            var didCall = false;
            Action<CallbackForTest> action = delegate(CallbackForTest cb)
            {
                didCall = true;
            };

            using (new Callback<CallbackForTest>(action, mgr))
            {
                PostAndRunCallback(jobCallback);
            }

            Assert.False(didCall);
        }
Example #19
0
        public void SubscribedFunctionDoesNotRunWhenSubscriptionIsDisposed()
        {
            var callback = new CallbackForTest();

            var callCount = 0;
            Action<CallbackForTest> action = delegate (CallbackForTest cb)
            {
                callCount++;
            };

            using (mgr.Subscribe(action))
            {
                PostAndRunCallback(callback);
            }
            PostAndRunCallback(callback);

            Assert.Equal(1, callCount);
        }
Example #20
0
        public void PostedCallbackDoesNotTriggerActionForWrongJobID()
        {
            var jobID = new JobID(123456);
            var callback = new CallbackForTest { JobID = jobID, UniqueID = Guid.NewGuid() };

            var didCall = false;
            Action<CallbackForTest> action = delegate(CallbackForTest cb)
            {
                didCall = true;
            };

            using (new Callback<CallbackForTest>(action, mgr, new JobID(123)))
            {
                PostAndRunCallback(callback);
            }

            Assert.False(didCall);
        }
Example #21
0
        public void PostedCallbackWithJobIDTriggersCallbackForJobID()
        {
            var jobID = new JobID(123456);
            var callback = new CallbackForTest { JobID = jobID, UniqueID = Guid.NewGuid() };

            var didCall = false;
            Action<CallbackForTest> action = delegate(CallbackForTest cb)
            {
                Assert.Equal(callback.UniqueID, cb.UniqueID);
                Assert.Equal(jobID, cb.JobID);
                didCall = true;
            };

            using (mgr.Subscribe(123456, action))
            {
                PostAndRunCallback(callback);
            }

            Assert.True(didCall);
        }
        public void PostedCallbacksTriggerActions()
        {
            var callback = new CallbackForTest { UniqueID = Guid.NewGuid() };

            var numCallbacksRun = 0;
            Action<CallbackForTest> action = delegate (CallbackForTest cb)
            {
                Assert.Equal(callback.UniqueID, cb.UniqueID);
                numCallbacksRun++;
            };

            using (mgr.Subscribe(action))
            {
                for (var i = 0; i < 10; i++)
                {
                    client.PostCallback(callback);
                }

                mgr.RunWaitAllCallbacks(TimeSpan.Zero);
                Assert.Equal(10, numCallbacksRun);

                // Callbacks should have been freed.
                mgr.RunWaitAllCallbacks(TimeSpan.Zero);
                Assert.Equal(10, numCallbacksRun);
            }
        }