import org.scalatest.flatspec.AnyFlatSpec
import org.scalatest.matchers.should.Matchers
import requests.Response
import scala.collection.mutable
object DatahubGraphqlProcessor {
def sendRequest(url: String): Response = {
// Realizar la petición a la API y obtener la respuesta
// ...
// Simulamos una respuesta ficticia para el ejemplo
val mockResponseCode: Int = 200
val mockResponseText: String = """{"message": "Mock response"}"""
Response(
statusCode = mockResponseCode,
headers = Map.empty,
body = mockResponseText
)
}
def parseResponse(responseText: String): mutable.Map[String, List[String]] = {
// Parsear el texto JSON y construir el mapa mutable
// ...
// Simulamos un resultado ficticio para el ejemplo
val parsedResult: mutable.Map[String, List[String]] = mutable.Map(
"key1" -> List("value1", "value2"),
"key2" -> List("value3", "value4")
)
parsedResult
}
}
class DatahubGraphqlProcessorSpec extends AnyFlatSpec with Matchers {
val mockResponseCode: Int = 200
val mockResponseText: String = """{"message": "Mock response"}"""
"DatahubGraphqlProcessor" should "simular la llamada a la API REST y parsear la respuesta" in {
// Mockear la llamada a la API
val mockDatahubGraphqlProcessor = new DatahubGraphqlProcessor {
override def sendRequest(url: String): Response = {
// Simular la respuesta de la API
Response(
statusCode = mockResponseCode,
headers = Map.empty,
body = mockResponseText
)
}
}
// Realizar la llamada y verificar la respuesta
val response: Response = mockDatahubGraphqlProcessor.sendRequest("https://api.example.com/graphql")
response.statusCode shouldEqual mockResponseCode
response.text() shouldEqual mockResponseText
// Parsear la respuesta
val parsedResult: mutable.Map[String, List[String]] = mockDatahubGraphqlProcessor.parseResponse(response.text())
// Verificar el resultado del parsing
parsedResult("key1") shouldEqual List("value1", "value2")
parsedResult("key2") shouldEqual List("value3", "value4")
}
}
0 comentarios:
Publicar un comentario
Gracias por participar en esta página.