diff --git a/jinja-sql-client/src/main/scala/raw/client/jinja/sql/JinjaSqlCompilerService.scala b/jinja-sql-client/src/main/scala/raw/client/jinja/sql/JinjaSqlCompilerService.scala index 1e356b7e7..cb8e394fc 100644 --- a/jinja-sql-client/src/main/scala/raw/client/jinja/sql/JinjaSqlCompilerService.scala +++ b/jinja-sql-client/src/main/scala/raw/client/jinja/sql/JinjaSqlCompilerService.scala @@ -21,7 +21,10 @@ class JinjaSqlCompilerService(maybeClassLoader: Option[ClassLoader] = None)(impl def eval(source: String, tipe: raw.client.api.RawType, environment: raw.client.api.ProgramEnvironment): raw.client.api.EvalResponse = ??? - def execute(source: String, environment: raw.client.api.ProgramEnvironment, maybeDecl: Option[String], outputStream: java.io.OutputStream): raw.client.api.ExecutionResponse = ??? + def execute(source: String, environment: raw.client.api.ProgramEnvironment, maybeDecl: Option[String], outputStream: java.io.OutputStream): raw.client.api.ExecutionResponse = { + logger.debug("execute") + ??? + } def formatCode(source: String, environment: raw.client.api.ProgramEnvironment, maybeIndent: Option[Int], maybeWidth: Option[Int]): raw.client.api.FormatCodeResponse = ??? diff --git a/jinja-sql-client/src/test/scala/PreprocessingTest.scala b/jinja-sql-client/src/test/scala/PreprocessingTest.scala index 260b39080..7f37cc41c 100644 --- a/jinja-sql-client/src/test/scala/PreprocessingTest.scala +++ b/jinja-sql-client/src/test/scala/PreprocessingTest.scala @@ -1,9 +1,40 @@ -import org.scalatest.funsuite.AnyFunSuite +import raw.client.api.{CompilerService, ExecutionSuccess, ProgramEnvironment, RawValue} +import raw.client.jinja.sql.JinjaSqlCompilerService +import raw.utils.{InteractiveUser, RawTestSuite, SettingsTestContext, TrainingWheelsContext, Uid} -class PreprocessingTest extends AnyFunSuite { +import java.io.ByteArrayOutputStream - test("1+1 works") { - assert(1 + 1 === 2) +class PreprocessingTest extends RawTestSuite + with SettingsTestContext + with TrainingWheelsContext +{ + + test("SELECT") { q => + val baos = new ByteArrayOutputStream() + val r = compilerService.execute(q.q, asJson(), None, baos) + assert(r == ExecutionSuccess) + } + + private var compilerService: CompilerService = _ + + private val database = "" + private val user = InteractiveUser(Uid(database), "fdw user", "email", Seq.empty) + + private def asJson(params: Map[String, RawValue] = Map.empty): ProgramEnvironment = { + if (params.isEmpty) ProgramEnvironment(user, None, Set.empty, Map("output-format" -> "json")) + else ProgramEnvironment(user, Some(params.toArray), Set.empty, Map("output-format" -> "json")) + } + + override def beforeAll(): Unit = { + super.beforeAll() + compilerService = new JinjaSqlCompilerService(None) + } + + override def afterAll(): Unit = { + if (compilerService != null) { + compilerService.stop() + compilerService = null + } } }