All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.fintrospect.testing.TestingFintrospectRoute.scala Maven / Gradle / Ivy

There is a newer version: 12.21.1
Show newest version
package io.fintrospect.testing

import java.util.concurrent.TimeUnit

import com.twitter.finagle.http.path.Root
import com.twitter.finagle.http.{Request, Response}
import com.twitter.util.Await
import io.fintrospect.renderers.simplejson.SimpleJson
import io.fintrospect.{ModuleSpec, ServerRoute}

import scala.concurrent.duration.Duration

/**
 * Mixin this and provide the route under test.
 */
trait TestingFintrospectRoute {
  val route: ServerRoute[Request, Response]

  /**
   * get the response from the Route under test for this response. Default timeout is massively generous
   * @param request to apply
   * @param timeout defaults to 1s.
   * @return response
   */
  def responseFor(request: Request, timeout: Duration = Duration(1, TimeUnit.SECONDS)): Response = {
    Await.result(ModuleSpec(Root, SimpleJson()).withRoute(route).toService.apply(request))
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy