aboutsummaryrefslogtreecommitdiff
path: root/kamon-core-tests
diff options
context:
space:
mode:
authorIvan Topolnjak <ivantopo@gmail.com>2018-04-06 01:47:40 +0200
committerIvan Topolnjak <ivantopo@gmail.com>2018-04-06 01:47:40 +0200
commit13f87299a11f14333268670a3d677358ebf2d178 (patch)
treea67c6a523e80bba83e99ed80215bd0d3c329b096 /kamon-core-tests
parent2f05b3b4823f98a94de5c4b49fb5efeb0f2b0e2d (diff)
downloadKamon-13f87299a11f14333268670a3d677358ebf2d178.tar.gz
Kamon-13f87299a11f14333268670a3d677358ebf2d178.tar.bz2
Kamon-13f87299a11f14333268670a3d677358ebf2d178.zip
add the EnvironmentTagBuilder utility class
Diffstat (limited to 'kamon-core-tests')
-rw-r--r--kamon-core-tests/src/test/scala/kamon/util/EnvironmentTagBuilderSpec.scala104
1 files changed, 104 insertions, 0 deletions
diff --git a/kamon-core-tests/src/test/scala/kamon/util/EnvironmentTagBuilderSpec.scala b/kamon-core-tests/src/test/scala/kamon/util/EnvironmentTagBuilderSpec.scala
new file mode 100644
index 00000000..5b7d6262
--- /dev/null
+++ b/kamon-core-tests/src/test/scala/kamon/util/EnvironmentTagBuilderSpec.scala
@@ -0,0 +1,104 @@
+/* =========================================================================================
+ * Copyright © 2013-2017 the kamon project <http://kamon.io/>
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the
+ * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
+ * either express or implied. See the License for the specific language governing permissions
+ * and limitations under the License.
+ * =========================================================================================
+ */
+
+package kamon
+package util
+
+import com.typesafe.config.ConfigFactory
+import org.scalatest.{Matchers, WordSpec}
+
+class EnvironmentTagBuilderSpec extends WordSpec with Matchers {
+ private val testEnv = Environment.fromConfig(ConfigFactory.parseString(
+ """
+ |kamon.environment {
+ | service = environment-spec
+ | host = my-hostname
+ | instance = my-instance-name
+ |
+ | tags {
+ | env = staging
+ | region = asia-1
+ | }
+ |}
+ """.stripMargin
+ ).withFallback(ConfigFactory.defaultReference()))
+
+ "the EnvironmentTagBuilder" should {
+
+ "build the tags from a configuration using the current Environment" in {
+ val config = ConfigFactory.parseString(
+ """
+ |service = yes
+ |host = yes
+ |instance = yes
+ |blacklisted-tags = []
+ """.stripMargin)
+
+ val env = Kamon.environment
+ val tags = EnvironmentTagBuilder.create(config)
+ tags("service") shouldBe env.service
+ tags("host") shouldBe env.host
+ tags("instance") shouldBe env.instance
+ }
+
+ "build tags from a custom Environment" in {
+ val config = ConfigFactory.parseString(
+ """
+ |service = yes
+ |host = yes
+ |instance = yes
+ |blacklisted-tags = []
+ """.stripMargin)
+
+ val tags = EnvironmentTagBuilder.create(testEnv, config)
+ tags("service") shouldBe testEnv.service
+ tags("host") shouldBe testEnv.host
+ tags("instance") shouldBe testEnv.instance
+ tags("env") shouldBe "staging"
+ tags("region") shouldBe "asia-1"
+
+ }
+
+ "remove blacklisted tags" in {
+ val config = ConfigFactory.parseString(
+ """
+ |service = yes
+ |host = yes
+ |instance = yes
+ |blacklisted-tags = [ "region" ]
+ """.stripMargin)
+
+ val tags = EnvironmentTagBuilder.create(testEnv, config)
+ tags("service") shouldBe testEnv.service
+ tags("host") shouldBe testEnv.host
+ tags("instance") shouldBe testEnv.instance
+ tags("env") shouldBe "staging"
+ tags.get("region") shouldBe empty
+ }
+
+ "remove all disabled elements" in {
+ val config = ConfigFactory.parseString(
+ """
+ |service = no
+ |host = no
+ |instance = no
+ |blacklisted-tags = [ "region", "env" ]
+ """.stripMargin)
+
+ val tags = EnvironmentTagBuilder.create(testEnv, config)
+ tags shouldBe empty
+ }
+ }
+}