Activate ChangeToken when Ocelot's configuration changes #1037

* Add configuration change token (#1036)

* Add IOptionsMonitor<IInternalConfiguration>

* Activate change token from *ConfigurationRepository instead of FileAndInternalConfigurationSetter; add acceptance & integration tests

* Update documentation

* Use IWebHostEnvironment as IHostingEnvironment deprecated

Co-authored-by: Chris Swinchatt <chrisswinchatt@gmail.com>
This commit is contained in:
Tom Pallister
2020-02-04 20:50:40 +00:00
committed by GitHub
parent 473d50ff36
commit 86e8d66daf
17 changed files with 1546 additions and 1111 deletions

View File

@ -1,4 +1,6 @@
namespace Ocelot.AcceptanceTests
using Ocelot.Configuration.ChangeTracking;
namespace Ocelot.AcceptanceTests
{
using Caching;
using Configuration.Repository;
@ -54,6 +56,7 @@
private IWebHostBuilder _webHostBuilder;
private WebHostBuilder _ocelotBuilder;
private IWebHost _ocelotHost;
private IOcelotConfigurationChangeTokenSource _changeToken;
public Steps()
{
@ -216,6 +219,11 @@
_ocelotClient = _ocelotServer.CreateClient();
}
public void GivenIHaveAChangeToken()
{
_changeToken = _ocelotServer.Host.Services.GetRequiredService<IOcelotConfigurationChangeTokenSource>();
}
/// <summary>
/// This is annoying cos it should be in the constructor but we need to set up the file before calling startup so its a step.
/// </summary>
@ -1123,6 +1131,11 @@
_ocelotClient = _ocelotServer.CreateClient();
}
public void TheChangeTokenShouldBeActive(bool itShouldBeActive)
{
_changeToken.ChangeToken.HasChanged.ShouldBe(itShouldBeActive);
}
public void GivenOcelotIsRunningWithLogger()
{
_webHostBuilder = new WebHostBuilder();