public void ShouldSetLocalProvider()
        {
            // arrange
            this.provider.LocalProvider.Returns(Substitute.For <ThreadLocal <ProviderBase> >());

            // act
            var swithcer = new SampleThreadLocalProviderSwithcer <ProviderBase>(this.provider, this.behavior);

            // assert
            swithcer.Provider.Should().Be(this.provider);
            swithcer.Provider.LocalProvider.Value.Should().Be(this.behavior);
        }
        public void ShouldResetLocalProviderOnDispose()
        {
            // arrange
            this.provider.LocalProvider.Returns(Substitute.For <ThreadLocal <ProviderBase> >());

            var swithcer = new SampleThreadLocalProviderSwithcer <ProviderBase>(this.provider, this.behavior);

            // act
            swithcer.Dispose();

            // assert
            swithcer.Provider.LocalProvider.Value.Should().BeNull();
        }