public IChangeToken Watch(string filter)
            {
                var result = new TestChangeToken();

                Tokens.Add(result);
                return(result);
            }
Пример #2
0
 public void HasChangeFiresChange()
 {
     var token = new TestChangeToken();
     bool fired = false;
     ChangeToken.OnChange(() => token, () => fired = true);
     Assert.False(fired);
     token.Changed();
     Assert.True(fired);
 }
Пример #3
0
        public void HasChangeFiresChange()
        {
            var  token = new TestChangeToken();
            bool fired = false;

            ChangeToken.OnChange(() => token, () => fired = true);
            Assert.False(fired);
            token.Changed();
            Assert.True(fired);
        }
Пример #4
0
 public void HasChangeFiresChangeWithState()
 {
     var token = new TestChangeToken();
     object state = new object();
     object callbackState = null;
     ChangeToken.OnChange(() => token, s => callbackState = s, state);
     Assert.Null(callbackState);
     token.Changed();
     Assert.Equal(state, callbackState);
 }
Пример #5
0
        public void HasChangeFiresChangeWithState()
        {
            var    token         = new TestChangeToken();
            object state         = new object();
            object callbackState = null;

            ChangeToken.OnChange(() => token, s => callbackState = s, state);
            Assert.Null(callbackState);
            token.Changed();
            Assert.Equal(state, callbackState);
        }
Пример #6
0
        public void ChangesFireAfterExceptions()
        {
            TestChangeToken token = null;
            var             count = 0;

            ChangeToken.OnChange(() => token = new TestChangeToken(), () =>
            {
                count++;
                throw new Exception();
            });
            Assert.Throws <Exception>(() => token.Changed());
            Assert.Equal(1, count);
            Assert.Throws <Exception>(() => token.Changed());
            Assert.Equal(2, count);
        }
Пример #7
0
        public void DisposesChangeTokenRegistrationsOnDispose()
        {
            var changeToken  = new TestChangeToken();
            var providerMock = new Mock <IConfigurationProvider>();

            providerMock.Setup(p => p.GetReloadToken()).Returns(changeToken);

            var config = new ConfigurationManager();

            ((IConfigurationBuilder)config).Add(new TestConfigurationSource(providerMock.Object));

            Assert.NotEmpty(changeToken.Callbacks);

            config.Dispose();

            Assert.Empty(changeToken.Callbacks);
        }
Пример #8
0
        public void DisposesChangeTokenRegistrationsOnRemoval()
        {
            var changeToken  = new TestChangeToken();
            var providerMock = new Mock <IConfigurationProvider>();

            providerMock.Setup(p => p.GetReloadToken()).Returns(changeToken);

            var source = new TestConfigurationSource(providerMock.Object);

            var config = new ConfigurationManager();
            IConfigurationBuilder builder = config;

            builder.Add(source);

            Assert.NotEmpty(changeToken.Callbacks);

            builder.Sources.Remove(source);

            Assert.Empty(changeToken.Callbacks);
        }
Пример #9
0
        public void ChangesFireAfterExceptionsWithState()
        {
            TestChangeToken token         = null;
            var             count         = 0;
            object          state         = new object();
            object          callbackState = null;

            ChangeToken.OnChange(() => token = new TestChangeToken(), s =>
            {
                callbackState = s;
                count++;
                throw new Exception();
            }, state);
            Assert.Throws <Exception>(() => token.Changed());
            Assert.Equal(1, count);
            Assert.NotNull(callbackState);
            Assert.Throws <Exception>(() => token.Changed());
            Assert.Equal(2, count);
            Assert.NotNull(callbackState);
        }
 public TestChangeTokenSource()
 {
     _changeToken = new TestChangeToken();
 }