Merge pull request #24070 from akka/wip-SendQueueSpec-patriknw
additional test of SendQueue
This commit is contained in:
commit
f890bc6abf
1 changed files with 62 additions and 0 deletions
|
|
@ -13,6 +13,7 @@ import akka.stream.ActorMaterializer
|
|||
import akka.stream.ActorMaterializerSettings
|
||||
import akka.stream.scaladsl.Keep
|
||||
import akka.stream.scaladsl.Source
|
||||
import akka.stream.testkit.TestSubscriber
|
||||
import akka.stream.testkit.scaladsl.TestSink
|
||||
import akka.testkit.AkkaSpec
|
||||
import akka.testkit.ImplicitSender
|
||||
|
|
@ -147,6 +148,67 @@ class SendQueueSpec extends AkkaSpec("akka.actor.serialize-messages = off") with
|
|||
downstream.cancel()
|
||||
}
|
||||
|
||||
"deliver first message" in {
|
||||
|
||||
def test(f: (ManyToOneConcurrentArrayQueue[String], SendQueue.QueueValue[String], TestSubscriber.Probe[String]) ⇒ Unit): Unit = {
|
||||
|
||||
(1 to 100).foreach { n ⇒
|
||||
val queue = new ManyToOneConcurrentArrayQueue[String](16)
|
||||
val (sendQueue, downstream) = Source.fromGraph(new SendQueue[String])
|
||||
.toMat(TestSink.probe)(Keep.both).run()
|
||||
|
||||
f(queue, sendQueue, downstream)
|
||||
downstream.expectNext("a")
|
||||
|
||||
sendQueue.offer("b")
|
||||
downstream.expectNext("b")
|
||||
sendQueue.offer("c")
|
||||
sendQueue.offer("d")
|
||||
downstream.expectNext("c")
|
||||
downstream.expectNext("d")
|
||||
downstream.cancel()
|
||||
}
|
||||
}
|
||||
|
||||
test { (queue, sendQueue, downstream) ⇒
|
||||
queue.offer("a")
|
||||
downstream.request(10)
|
||||
sendQueue.inject(queue)
|
||||
}
|
||||
test { (queue, sendQueue, downstream) ⇒
|
||||
sendQueue.inject(queue)
|
||||
queue.offer("a")
|
||||
downstream.request(10)
|
||||
}
|
||||
|
||||
test { (queue, sendQueue, downstream) ⇒
|
||||
queue.offer("a")
|
||||
sendQueue.inject(queue)
|
||||
downstream.request(10)
|
||||
}
|
||||
test { (queue, sendQueue, downstream) ⇒
|
||||
downstream.request(10)
|
||||
queue.offer("a")
|
||||
sendQueue.inject(queue)
|
||||
}
|
||||
|
||||
test { (queue, sendQueue, downstream) ⇒
|
||||
sendQueue.inject(queue)
|
||||
downstream.request(10)
|
||||
sendQueue.offer("a")
|
||||
}
|
||||
test { (queue, sendQueue, downstream) ⇒
|
||||
downstream.request(10)
|
||||
sendQueue.inject(queue)
|
||||
sendQueue.offer("a")
|
||||
}
|
||||
test { (queue, sendQueue, downstream) ⇒
|
||||
sendQueue.inject(queue)
|
||||
sendQueue.offer("a")
|
||||
downstream.request(10)
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue