public void CurrentIsAvailableOnlyWithinScopeIfNoFallbackSet() { var threadStatic = new ThreadStatic<string>(); using (threadStatic.Use("abc")) Assert.AreEqual("abc", threadStatic.Current); Assert.IsFalse(threadStatic.HasCurrent); }
public void CurrentIsAvailableOutsideScopeIfFallbackSet() { var threadStatic = new ThreadStatic <Randomizer>(new PseudoRandom()); using (threadStatic.Use(new FixedRandom())) Assert.IsTrue(threadStatic.Current is FixedRandom); Assert.IsTrue(threadStatic.Current is PseudoRandom); }
public void CurrentIsAvailableOnlyWithinScopeIfNoFallbackSet() { var threadStatic = new ThreadStatic <string>(); using (threadStatic.Use("abc")) Assert.AreEqual("abc", threadStatic.Current); Assert.IsFalse(threadStatic.HasCurrent); }
public void CurrentIsAvailableOusideScopeIfFallbackSet() { var threadStatic = new ThreadStatic<Randomizer>(new PseudoRandom()); using (threadStatic.Use(new FixedRandom())) Assert.IsTrue(threadStatic.Current is FixedRandom); Assert.IsTrue(threadStatic.Current is PseudoRandom); }
public void NewThreadStaticVariableHasNoCurrentValue() { var threadStatic = new ThreadStatic <string>(); Assert.IsFalse(threadStatic.HasCurrent); Assert.Throws <ThreadStatic <string> .NoValueAvailable>( () => Assert.IsNotNull(threadStatic.Current)); }
private static void TestMidScope(ThreadStatic <int> threadStatic) { using (threadStatic.Use(2)) { Assert.AreEqual(2, threadStatic.Current); TestInnerScope(threadStatic); Assert.AreEqual(2, threadStatic.Current); } }
public void DisposingInnerScopeTwiceHasNoEffect() { var threadStatic = new ThreadStatic<int>(); threadStatic.Use(1); var innerScope = threadStatic.Use(2); Assert.AreEqual(2, threadStatic.Current); innerScope.Dispose(); innerScope.Dispose(); Assert.AreEqual(1, threadStatic.Current); }
public void DisposingMidScopeJumpsToOuterScope() { var threadStatic = new ThreadStatic<int>(); threadStatic.Use(1); var midScope = threadStatic.Use(2); threadStatic.Use(3); Assert.AreEqual(3, threadStatic.Current); midScope.Dispose(); Assert.AreEqual(1, threadStatic.Current); }
public void MultipleScopesPushAndPopCorrectly() { var threadStatic = new ThreadStatic<int>(); using (threadStatic.Use(1)) { Assert.AreEqual(1, threadStatic.Current); TestMidScope(threadStatic); Assert.AreEqual(1, threadStatic.Current); } }
public void MultipleScopesPushAndPopCorrectly() { var threadStatic = new ThreadStatic <int>(); using (threadStatic.Use(1)) { Assert.AreEqual(1, threadStatic.Current); TestMidScope(threadStatic); Assert.AreEqual(1, threadStatic.Current); } }
public void DisposingInnerScopeTwiceHasNoEffect() { var threadStatic = new ThreadStatic <int>(); threadStatic.Use(1); var innerScope = threadStatic.Use(2); Assert.AreEqual(2, threadStatic.Current); innerScope.Dispose(); innerScope.Dispose(); Assert.AreEqual(1, threadStatic.Current); }
public void DisposingMidScopeJumpsToOuterScope() { var threadStatic = new ThreadStatic <int>(); threadStatic.Use(1); var midScope = threadStatic.Use(2); threadStatic.Use(3); Assert.AreEqual(3, threadStatic.Current); midScope.Dispose(); Assert.AreEqual(1, threadStatic.Current); }
static void Main(string[] args) { IExample background = new BackgroundThreads(); // background.Run(); IExample parametrized = new ParametrizedThread(); // parametrized.Run(); IExample threadStatic = new ThreadStatic(); // threadStatic.Run(); // new ThreadPoolExample().Run(); new ParallelExample().Run(); }
private static void TestInnerScope(ThreadStatic<int> threadStatic) { using (threadStatic.Use(3)) Assert.AreEqual(3, threadStatic.Current); }
public void NewThreadStaticVariableHasNoCurrentValue() { var threadStatic = new ThreadStatic<string>(); Assert.IsFalse(threadStatic.HasCurrent); Assert.Throws<ThreadStatic<string>.NoValueAvailable>( () => Assert.IsNotNull(threadStatic.Current)); }
public void NewThreadStaticVariableHasADefaultValue() { var threadStatic = new ThreadStatic<int>(); Assert.AreEqual(0, threadStatic.CurrentOrDefault); }
private static void TestInnerScope(ThreadStatic <int> threadStatic) { using (threadStatic.Use(3)) Assert.AreEqual(3, threadStatic.Current); }
public void NewThreadStaticVariableHasADefaultValue() { var threadStatic = new ThreadStatic <int>(); Assert.AreEqual(0, threadStatic.CurrentOrDefault); }
private static void TestMidScope(ThreadStatic<int> threadStatic) { using (threadStatic.Use(2)) { Assert.AreEqual(2, threadStatic.Current); TestInnerScope(threadStatic); Assert.AreEqual(2, threadStatic.Current); } }