public void Should_not_stack_if_switchers_throw_on_dispose() { var tasks = new List <Task>(); for (var i = 0; i < 2; i++) { tasks.Add(Task.Run(() => { try { using (var env = new FakeHostEnvironment()) { var disposable = Substitute.For <IDisposable>(); disposable.When(x => x.Dispose()).Throw <Exception>(); env.Switchers.Add(disposable); } } catch { // ignored } })); } // Act && Assert Task.WaitAll(tasks.ToArray(), TimeSpan.FromSeconds(2)).Should().BeTrue(); }
public void Should_initialize_config_map_path() { // Act using (var fakeEnvironment = new FakeHostEnvironment()) { // Assert fakeEnvironment.Switchers.Should().Contain( x => x is PrivateFieldSwitcher && ((PrivateFieldSwitcher)x).FieldName == "_configMapPath" && ((PrivateFieldSwitcher)x).NewValue is FakeConfigMapPath); } }
public void Should_set_appPhisicalPath() { // Act using (var fakeEnvironment = new FakeHostEnvironment()) { // Assert fakeEnvironment.Switchers.Should() .Contain( x => x is PrivateFieldSwitcher && ((PrivateFieldSwitcher)x).FieldName == "_appPhysicalPath" && (string)((PrivateFieldSwitcher)x).NewValue == AppDomain.CurrentDomain.BaseDirectory); } }
public void Should_initialize_app_domain_data() { // Act using (var fakeEnvironment = new FakeHostEnvironment()) { // Assert fakeEnvironment.Switchers.Should() .Contain( x => x is AppDomainDataSwitcher && (string)((AppDomainDataSwitcher)x).FakeLocalStore[".appPath"][0] == AppDomain.CurrentDomain.BaseDirectory && (string)((AppDomainDataSwitcher)x).FakeLocalStore[".appDomain"][0] == "*" && (string)((AppDomainDataSwitcher)x).FakeLocalStore[".appVPath"][0] == "/"); } }
public void Should_not_swallow_disposal_exception() { // Arrange Action action = () => { // Act using (var env = new FakeHostEnvironment()) { var disposable = Substitute.For <IDisposable>(); disposable.When(x => x.Dispose()).Throw <Exception>(); env.Switchers.Add(disposable); } }; // Assert action.ShouldThrow <Exception>(); }
public async Task be_not_active_if_current_environment_is_not_configured() { var toggle = Build .Toggle <HostEnvironmentToggle>() .AddParameter(Environments, Production) .Build(); var feature = Build .Feature(Constants.FeatureName) .AddOne(toggle) .Build(); var hostEnvironment = new FakeHostEnvironment(Development); var active = await new HostEnvironmentToggle(hostEnvironment).IsActiveAsync( ToggleExecutionContext.FromToggle( feature.Name, EsquioConstants.DEFAULT_PRODUCT_NAME, EsquioConstants.DEFAULT_DEPLOYMENT_NAME, toggle)); active.Should().BeFalse(); }