2012-09-24 13:07:11 -06:00
|
|
|
/*
|
2016-02-23 12:58:39 +01:00
|
|
|
* Copyright (C) 2009-2016 Lightbend Inc. <http://www.lightbend.com>
|
2012-09-24 13:07:11 -06:00
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
package akka.cluster
|
|
|
|
|
|
2014-12-12 11:49:32 -06:00
|
|
|
// TODO remove metrics
|
|
|
|
|
|
2012-11-24 22:01:27 +01:00
|
|
|
import org.scalatest.WordSpec
|
2013-12-17 14:25:56 +01:00
|
|
|
import org.scalatest.Matchers
|
2012-09-24 13:07:11 -06:00
|
|
|
import akka.actor.Address
|
|
|
|
|
|
2013-12-17 14:25:56 +01:00
|
|
|
class NodeMetricsSpec extends WordSpec with Matchers {
|
2012-09-24 13:07:11 -06:00
|
|
|
|
2013-01-24 04:28:21 -08:00
|
|
|
val node1 = Address("akka.tcp", "sys", "a", 2554)
|
|
|
|
|
val node2 = Address("akka.tcp", "sys", "a", 2555)
|
2012-09-24 13:07:11 -06:00
|
|
|
|
|
|
|
|
"NodeMetrics must" must {
|
|
|
|
|
|
|
|
|
|
"return correct result for 2 'same' nodes" in {
|
2015-01-16 11:09:59 +01:00
|
|
|
(NodeMetrics(node1, 0) sameAs NodeMetrics(node1, 0)) should ===(true)
|
2012-09-24 13:07:11 -06:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
"return correct result for 2 not 'same' nodes" in {
|
2015-01-16 11:09:59 +01:00
|
|
|
(NodeMetrics(node1, 0) sameAs NodeMetrics(node2, 0)) should ===(false)
|
2012-09-24 13:07:11 -06:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
"merge 2 NodeMetrics by most recent" in {
|
2012-11-24 22:01:27 +01:00
|
|
|
val sample1 = NodeMetrics(node1, 1, Set(Metric.create("a", 10, None), Metric.create("b", 20, None)).flatten)
|
|
|
|
|
val sample2 = NodeMetrics(node1, 2, Set(Metric.create("a", 11, None), Metric.create("c", 30, None)).flatten)
|
2012-09-24 13:07:11 -06:00
|
|
|
|
|
|
|
|
val merged = sample1 merge sample2
|
2015-01-16 11:09:59 +01:00
|
|
|
merged.timestamp should ===(sample2.timestamp)
|
|
|
|
|
merged.metric("a").map(_.value) should ===(Some(11))
|
|
|
|
|
merged.metric("b").map(_.value) should ===(Some(20))
|
|
|
|
|
merged.metric("c").map(_.value) should ===(Some(30))
|
2012-09-24 13:07:11 -06:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
"not merge 2 NodeMetrics if master is more recent" in {
|
2012-11-24 22:01:27 +01:00
|
|
|
val sample1 = NodeMetrics(node1, 1, Set(Metric.create("a", 10, None), Metric.create("b", 20, None)).flatten)
|
|
|
|
|
val sample2 = NodeMetrics(node1, 0, Set(Metric.create("a", 11, None), Metric.create("c", 30, None)).flatten)
|
2012-09-24 13:07:11 -06:00
|
|
|
|
2012-11-24 22:01:27 +01:00
|
|
|
val merged = sample1 merge sample2 // older and not same
|
2015-01-16 11:09:59 +01:00
|
|
|
merged.timestamp should ===(sample1.timestamp)
|
|
|
|
|
merged.metrics should ===(sample1.metrics)
|
2012-09-24 13:07:11 -06:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|