Skip to content

Commit

Permalink
Fix: update implementation of FromAsciiString.encode (#1175)
Browse files Browse the repository at this point in the history
* fix: update implementation of `FromAsciiString.encode`

* Add test for toHttp FromASCIIString

Co-authored-by: amitsingh <amitksingh1490@gmail.com>
  • Loading branch information
tusharmath and amitksingh1490 committed Apr 3, 2022
1 parent 5412967 commit 7059b2e
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 3 deletions.
6 changes: 4 additions & 2 deletions zio-http/src/main/scala/zhttp/http/HttpData.scala
Original file line number Diff line number Diff line change
Expand Up @@ -174,11 +174,13 @@ object HttpData {

private[zhttp] case class FromAsciiString(asciiString: AsciiString) extends Complete {

private def encode: ByteBuf = Unpooled.wrappedBuffer(asciiString.array())

/**
* Encodes the HttpData into a ByteBuf. Takes in ByteBufConfig to have a
* more fine grained control over the encoding.
*/
override def toByteBuf(config: ByteBufConfig): Task[ByteBuf] = Task(Unpooled.wrappedBuffer(asciiString.array()))
override def toByteBuf(config: ByteBufConfig): Task[ByteBuf] = Task(encode)

/**
* Encodes the HttpData into a Stream of ByteBufs. Takes in ByteBufConfig to
Expand All @@ -192,7 +194,7 @@ object HttpData {
* in certain cases. Takes in ByteBufConfig to have a more fine grained
* control over the encoding.
*/
override def toHttp(config: ByteBufConfig): Http[Any, Throwable, Any, ByteBuf] = ???
override def toHttp(config: ByteBufConfig): Http[Any, Throwable, Any, ByteBuf] = Http.attempt(encode)
}

private[zhttp] final case class BinaryChunk(data: Chunk[Byte]) extends Complete {
Expand Down
9 changes: 8 additions & 1 deletion zio-http/src/test/scala/zhttp/service/ServerSpec.scala
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package zhttp.service

import io.netty.util.AsciiString
import zhttp.html._
import zhttp.http._
import zhttp.internal.{DynamicServer, HttpGen, HttpRunnableSpec}
Expand Down Expand Up @@ -267,7 +268,13 @@ object ServerSpec extends HttpRunnableSpec {
equalTo(c),
)
}
}
} +
testM("FromASCIIString: toHttp") {
checkAllM(Gen.anyASCIIString) { payload =>
val res = HttpData.fromAsciiString(AsciiString.cached(payload)).toHttp.map(_.toString(HTTP_CHARSET))
assertM(res.run())(equalTo(payload))
}
}
}

def serverErrorSpec = suite("ServerErrorSpec") {
Expand Down

0 comments on commit 7059b2e

Please sign in to comment.