public IChangeToken Watch(string filter) { var result = new TestChangeToken(); Tokens.Add(result); return(result); }
public void HasChangeFiresChange() { var token = new TestChangeToken(); bool fired = false; ChangeToken.OnChange(() => token, () => fired = true); Assert.False(fired); token.Changed(); Assert.True(fired); }
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); }
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); }
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); }
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); }
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(); }