val expected StatusCode = Status.BadRequest
s"return$expectedStatusCode"in{ forAll("id") { id: ProductId =>
Uri.fromString("/product/" + id.toString) match {
case Left(_) => fail("Could not generate valid URI!") case Right(u) =>
def service: HttpRoutes[IO] =
Router("/" -> new ProductRoutes(emptyRepository).routes)
val payload = scala.util.Random.alphanumeric.take(256).mkString val response: IO[Response[IO]] = service.orNotFound.run(
Request(method = Method.PUT, uri = u) .withEntity(payload.asJson.noSpaces)
)
val result = response.unsafeRunSync
result.status must be(expectedStatusCode) result.body.compile.toVector.unsafeRunSync must be(empty)
}
}