aboutsummaryrefslogtreecommitdiff
path: root/kamon-core/src/test/scala/kamon/instrumentation/MessageQueueInstrumentationSpec.scala
diff options
context:
space:
mode:
Diffstat (limited to 'kamon-core/src/test/scala/kamon/instrumentation/MessageQueueInstrumentationSpec.scala')
-rw-r--r--kamon-core/src/test/scala/kamon/instrumentation/MessageQueueInstrumentationSpec.scala53
1 files changed, 53 insertions, 0 deletions
diff --git a/kamon-core/src/test/scala/kamon/instrumentation/MessageQueueInstrumentationSpec.scala b/kamon-core/src/test/scala/kamon/instrumentation/MessageQueueInstrumentationSpec.scala
new file mode 100644
index 00000000..cc55ec92
--- /dev/null
+++ b/kamon-core/src/test/scala/kamon/instrumentation/MessageQueueInstrumentationSpec.scala
@@ -0,0 +1,53 @@
+package kamon.instrumentation
+
+import org.scalatest.WordSpec
+import com.codahale.metrics.{ExponentiallyDecayingReservoir, Histogram}
+import java.util.concurrent.ConcurrentLinkedQueue
+import akka.dispatch.{UnboundedMessageQueueSemantics, QueueBasedMessageQueue, Envelope}
+import java.util.Queue
+import akka.actor.{ActorSystem, Actor}
+
+class MessageQueueInstrumentationSpec(val actorSystem: ActorSystem) extends WordSpec {
+ def this() = this(ActorSystem("MessageQueueInstrumentationSpec"))
+
+
+ /*"A MonitoredMessageQueue" should {
+ "update the related histogram when a message is enqueued" in {
+ new PopulatedMessageQueueFixture {
+
+ assert(histogram.getSnapshot.getMax === 0)
+
+ for(i <- 1 to 3) { enqueueDummyMessage }
+
+ assert(histogram.getCount === 3)
+ assert(histogram.getSnapshot.getMax === 3)
+ assert(histogram.getSnapshot.getMin === 1)
+ }
+ }
+
+ "update the related histogram when a message is dequeued" in {
+ new PopulatedMessageQueueFixture {
+ for(i <- 1 to 3) { enqueueDummyMessage }
+ assert(histogram.getSnapshot.getMax === 3)
+
+ messageQueue.dequeue()
+ messageQueue.dequeue()
+
+ assert(histogram.getCount === 5)
+ assert(histogram.getSnapshot.getMax === 3)
+ assert(histogram.getSnapshot.getMin === 1)
+ }
+ }
+ }
+
+ trait PopulatedMessageQueueFixture {
+
+ val histogram = new Histogram(new ExponentiallyDecayingReservoir())
+/* val delegate = new ConcurrentLinkedQueue[Envelope]() with QueueBasedMessageQueue with UnboundedMessageQueueSemantics {
+ final def queue: Queue[Envelope] = this
+ }*/
+ val messageQueue = new MonitoredMessageQueue(delegate, histogram)
+
+ def enqueueDummyMessage = messageQueue.enqueue(Actor.noSender, Envelope("", Actor.noSender, actorSystem))
+ }*/
+}