diff options
Diffstat (limited to 'tests/src/test/scala/com/softwaremill/sttp/streaming/AkkaStreamingTests.scala')
-rw-r--r-- | tests/src/test/scala/com/softwaremill/sttp/streaming/AkkaStreamingTests.scala | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/tests/src/test/scala/com/softwaremill/sttp/streaming/AkkaStreamingTests.scala b/tests/src/test/scala/com/softwaremill/sttp/streaming/AkkaStreamingTests.scala new file mode 100644 index 0000000..53fe63e --- /dev/null +++ b/tests/src/test/scala/com/softwaremill/sttp/streaming/AkkaStreamingTests.scala @@ -0,0 +1,29 @@ +package com.softwaremill.sttp.streaming + +import akka.NotUsed +import akka.actor.ActorSystem +import akka.stream.Materializer +import akka.stream.scaladsl.Source +import akka.util.ByteString +import com.softwaremill.sttp.{ForceWrappedValue, SttpHandler} +import com.softwaremill.sttp.akkahttp.AkkaHttpSttpHandler + +import scala.concurrent.Future + +class AkkaStreamingTests(actorSystem: ActorSystem)( + implicit materializer: Materializer) + extends TestStreamingHandler[Future, Source[ByteString, Any]] { + + override implicit val handler: SttpHandler[Future, Source[ByteString, Any]] = + AkkaHttpSttpHandler.usingActorSystem(actorSystem) + + override implicit val forceResponse: ForceWrappedValue[Future] = + ForceWrappedValue.future + + override def bodyProducer(body: String): Source[ByteString, NotUsed] = + Source.single(ByteString(body)) + + override def bodyConsumer(stream: Source[ByteString, Any]): Future[String] = + stream.map(_.utf8String).runReduce(_ + _) + +} |