Beispiel #1
0
        public void DisposingChangeTokenRegistrationDoesNotRaiseConsumerCallbackStateOverload()
        {
            var provider = new ResettableChangeTokenProvider();
            var count    = 0;
            var reg      = ChangeToken.OnChange <object>(provider.GetChangeToken, state =>
            {
                count++;
            },
                                                         null);

            for (int i = 0; i < 5; i++)
            {
                provider.Changed();
            }

            Assert.Equal(5, count);

            reg.Dispose();

            for (int i = 0; i < 5; i++)
            {
                provider.Changed();
            }

            Assert.Equal(5, count);
        }
Beispiel #2
0
        public void DisposingChangeTokenRegistrationDuringCallbackWorks()
        {
            var provider = new ResettableChangeTokenProvider();
            var count    = 0;

            IDisposable reg = null;

            reg = ChangeToken.OnChange <object>(provider.GetChangeToken, state =>
            {
                count++;
                reg.Dispose();
            },
                                                null);

            provider.Changed();

            Assert.Equal(1, count);

            provider.Changed();

            Assert.Equal(1, count);
        }