=str #16751 Update to reactive-streams 1.0-RC3
Changed rules: * 1.9 Always onSubscribe prior to any other signals * 1.9 NullPointerException if subscriber is null * 3.17 Long overflow, effectively unbounded instead of onError Fixed some more things: * fixed some FIXME * Long drop and take * memory leaks in tck tests, use BeforeClass to create ActorSystem use AfterClass to shutdown ActorSystem * more tck tests * don't emit OnComplete when substream is cancelled * work around for memory leak in PrefixAndTail
This commit is contained in:
parent
e3e01d2c9b
commit
23c533fdd5
79 changed files with 862 additions and 414 deletions
|
|
@ -16,6 +16,7 @@ import akka.testkit.TestLatch
|
|||
import akka.testkit.TestProbe
|
||||
import akka.stream.scaladsl.OperationAttributes.supervisionStrategy
|
||||
import akka.stream.Supervision.resumingDecider
|
||||
import akka.stream.impl.ReactiveStreamsCompliance
|
||||
|
||||
class FlowMapAsyncSpec extends AkkaSpec {
|
||||
|
||||
|
|
@ -137,6 +138,25 @@ class FlowMapAsyncSpec extends AkkaSpec {
|
|||
c.expectComplete()
|
||||
}
|
||||
|
||||
"signal NPE when future is completed with null" in {
|
||||
val c = StreamTestKit.SubscriberProbe[String]()
|
||||
val p = Source(List("a", "b")).mapAsync(elem ⇒ Future.successful(null)).to(Sink(c)).run()
|
||||
val sub = c.expectSubscription()
|
||||
sub.request(10)
|
||||
c.expectError.getMessage should be(ReactiveStreamsCompliance.ElementMustNotBeNullMsg)
|
||||
}
|
||||
|
||||
"resume when future is completed with null" in {
|
||||
val c = StreamTestKit.SubscriberProbe[String]()
|
||||
val p = Source(List("a", "b", "c")).section(supervisionStrategy(resumingDecider))(
|
||||
_.mapAsync(elem ⇒ if (elem == "b") Future.successful(null) else Future.successful(elem)))
|
||||
.to(Sink(c)).run()
|
||||
val sub = c.expectSubscription()
|
||||
sub.request(10)
|
||||
for (elem ← List("a", "c")) c.expectNext(elem)
|
||||
c.expectComplete()
|
||||
}
|
||||
|
||||
"should handle cancel properly" in {
|
||||
val pub = StreamTestKit.PublisherProbe[Int]()
|
||||
val sub = StreamTestKit.SubscriberProbe[Int]()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue