diff options
author | Ivan Topolnjak <ivantopo@gmail.com> | 2018-04-10 13:05:12 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-04-10 13:05:12 +0200 |
commit | 84561e0805f20368a913fd29abc5e95baab6794a (patch) | |
tree | caa9bdfde1d19f0b1c0ed273e55ba7749fcda1db /kamon-core-tests/src/test/scala/kamon/util/EnvironmentTagBuilderSpec.scala | |
parent | 6a1e1b796cbd16ae861e447be1be58460b2b39aa (diff) | |
parent | 13f87299a11f14333268670a3d677358ebf2d178 (diff) | |
download | Kamon-84561e0805f20368a913fd29abc5e95baab6794a.tar.gz Kamon-84561e0805f20368a913fd29abc5e95baab6794a.tar.bz2 Kamon-84561e0805f20368a913fd29abc5e95baab6794a.zip |
Merge pull request #527 from ivantopo/environment-tag-builder
add the EnvironmentTagBuilder utility class
Diffstat (limited to 'kamon-core-tests/src/test/scala/kamon/util/EnvironmentTagBuilderSpec.scala')
-rw-r--r-- | kamon-core-tests/src/test/scala/kamon/util/EnvironmentTagBuilderSpec.scala | 104 |
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 + } + } +} |