diff options
author | Ivan Topolnjak <ivantopo@gmail.com> | 2017-08-12 17:52:37 +0200 |
---|---|---|
committer | Ivan Topolnjak <ivantopo@gmail.com> | 2017-08-12 17:52:37 +0200 |
commit | a6113cf33ba1b98cc73d35176ccf8a2f76b77875 (patch) | |
tree | 782b8d0d0c6abb686c7d37d0585128606c1a49b8 /kamon-core/src/test/scala/kamon/context | |
parent | 18b9fc25d556fef50c5033f8880fab2594783caa (diff) | |
download | Kamon-a6113cf33ba1b98cc73d35176ccf8a2f76b77875.tar.gz Kamon-a6113cf33ba1b98cc73d35176ccf8a2f76b77875.tar.bz2 Kamon-a6113cf33ba1b98cc73d35176ccf8a2f76b77875.zip |
initial implementation of ThreadLocalStorage for Context
Diffstat (limited to 'kamon-core/src/test/scala/kamon/context')
-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) +} |