diff options
Diffstat (limited to 'kamon-newrelic/src/test/scala')
-rw-r--r-- | kamon-newrelic/src/test/scala/kamon/newrelic/CustomMetricExtractorSpec.scala | 45 | ||||
-rw-r--r-- | kamon-newrelic/src/test/scala/kamon/newrelic/MetricsSubscriptionSpec.scala | 54 |
2 files changed, 99 insertions, 0 deletions
diff --git a/kamon-newrelic/src/test/scala/kamon/newrelic/CustomMetricExtractorSpec.scala b/kamon-newrelic/src/test/scala/kamon/newrelic/CustomMetricExtractorSpec.scala new file mode 100644 index 00000000..5ab21655 --- /dev/null +++ b/kamon-newrelic/src/test/scala/kamon/newrelic/CustomMetricExtractorSpec.scala @@ -0,0 +1,45 @@ +/* + * ========================================================================================= + * Copyright © 2013-2014 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.newrelic + +import org.scalatest.{ Matchers, WordSpecLike } + +/** + * @since 21.04.2015 + */ +class CustomMetricExtractorSpec extends WordSpecLike with Matchers { + + val cme = CustomMetricExtractor + + "the CustomMetricExtractor" should { + "have a normalize method" which { + "is ok with an empty string" in { + cme.normalize("") should be("") + } + "is ok with normal '/'" in { + cme.normalize("akka/dispatcher/string") should be("akka#dispatcher#string") + } + "is ok with multiple '//'" in { + cme.normalize("akka///dispatcher//string") should be("akka###dispatcher##string") + } + "is ok with other special symbols" in { + cme.normalize("][|*akka*dispatcher|string[") should be("____akka_dispatcher_string_") + } + } + } +} + diff --git a/kamon-newrelic/src/test/scala/kamon/newrelic/MetricsSubscriptionSpec.scala b/kamon-newrelic/src/test/scala/kamon/newrelic/MetricsSubscriptionSpec.scala new file mode 100644 index 00000000..13e52b19 --- /dev/null +++ b/kamon-newrelic/src/test/scala/kamon/newrelic/MetricsSubscriptionSpec.scala @@ -0,0 +1,54 @@ +/* + * ========================================================================================= + * Copyright © 2013-2014 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.newrelic + +import akka.event.NoLogging +import com.typesafe.config.ConfigFactory +import org.scalatest._ + +import scala.collection.JavaConversions._ + +/** + * @since 21.04.2015 + */ +class MetricsSubscriptionSpec extends WordSpecLike with Matchers { + + val instance = new MetricsSubscription { + override def log = NoLogging + } + + val metrics = Seq("user-metrics", "trace", "akka-dispatcher", "akka-actor").zipWithIndex + val metricsStr = metrics map { m ⇒ m._1 + " = \"" + "*" * (m._2 + 1) + "\"" } mkString "\n" + val fullConfig = ConfigFactory.parseString(s"kamon.newrelic.custom-metric-subscriptions { $metricsStr }") + + "the MetricsSubscription" should { + + "read correct subscriptions from full configuration" in { + val cfg = instance.subscriptions(fullConfig) + cfg.entrySet().size should be(4) + cfg.entrySet().foreach { metric ⇒ + val idx = metrics.indexWhere(_._1 == metric.getKey) + metric.getValue.unwrapped().toString should be("*" * (idx + 1)) + } + } + "filter correct subscriptions" in { + val keys = instance.subscriptionKeys(fullConfig) + keys.size should be(3) + keys.contains("trace") shouldBe false + } + } +} |