aboutsummaryrefslogtreecommitdiff
path: root/kamon-core/src/test/scala/kamon/context/ThreadLocalStorageSpec.scala
diff options
context:
space:
mode:
authorIvan Topolnjak <ivantopo@gmail.com>2017-08-14 23:28:52 +0200
committerGitHub <noreply@github.com>2017-08-14 23:28:52 +0200
commita949c875684d78818224cd2ca7aaf79aa7878724 (patch)
treece84ab802ba3c543b4b107e32b7cac4dea610fc4 /kamon-core/src/test/scala/kamon/context/ThreadLocalStorageSpec.scala
parent18b9fc25d556fef50c5033f8880fab2594783caa (diff)
parent3144a04ea42a4e333b7a608597c07c0458c9f147 (diff)
downloadKamon-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.scala41
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)
+}