diff options
author | Ivan Topolnjak <ivantopo@gmail.com> | 2017-08-14 23:28:52 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-08-14 23:28:52 +0200 |
commit | a949c875684d78818224cd2ca7aaf79aa7878724 (patch) | |
tree | ce84ab802ba3c543b4b107e32b7cac4dea610fc4 /kamon-core/src/test/scala/kamon/context/ThreadLocalStorageSpec.scala | |
parent | 18b9fc25d556fef50c5033f8880fab2594783caa (diff) | |
parent | 3144a04ea42a4e333b7a608597c07c0458c9f147 (diff) | |
download | Kamon-a949c875684d78818224cd2ca7aaf79aa7878724.tar.gz Kamon-a949c875684d78818224cd2ca7aaf79aa7878724.tar.bz2 Kamon-a949c875684d78818224cd2ca7aaf79aa7878724.zip |
Merge pull request #1 from ivantopo/wip/context-management-reloaded
remove context management from the Tracer
Diffstat (limited to 'kamon-core/src/test/scala/kamon/context/ThreadLocalStorageSpec.scala')
-rw-r--r-- | kamon-core/src/test/scala/kamon/context/ThreadLocalStorageSpec.scala | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/kamon-core/src/test/scala/kamon/context/ThreadLocalStorageSpec.scala b/kamon-core/src/test/scala/kamon/context/ThreadLocalStorageSpec.scala new file mode 100644 index 00000000..39f316ba --- /dev/null +++ b/kamon-core/src/test/scala/kamon/context/ThreadLocalStorageSpec.scala @@ -0,0 +1,41 @@ +package kamon.context + + +import org.scalatest.{Matchers, WordSpec} + +class ThreadLocalStorageSpec extends WordSpec with Matchers { + + "the Storage.ThreadLocal implementation of Context storage" should { + "return a empty context when no context has been set" in { + TLS.current() shouldBe Context.Empty + } + + "return the empty value for keys that have not been set in the context" in { + TLS.current().get(TestKey) shouldBe 42 + TLS.current().get(AnotherKey) shouldBe 99 + TLS.current().get(BroadcastKey) shouldBe "i travel around" + + ScopeWithKey.get(TestKey) shouldBe 43 + ScopeWithKey.get(AnotherKey) shouldBe 99 + ScopeWithKey.get(BroadcastKey) shouldBe "i travel around" + } + + "allow setting a context as current and remove it when closing the Scope" in { + TLS.current() shouldBe Context.Empty + + val scope = TLS.store(ScopeWithKey) + TLS.current() shouldBe theSameInstanceAs(ScopeWithKey) + scope.close() + + TLS.current() shouldBe Context.Empty + } + + + } + + val TLS: Storage = new Storage.ThreadLocal + val TestKey = Key.local("test-key", 42) + val AnotherKey = Key.local("another-key", 99) + val BroadcastKey = Key.broadcast("broadcast", "i travel around") + val ScopeWithKey = Context.create().withKey(TestKey, 43) +} |