diff --git a/querydsl-scala/src/test/scala/com/mysema/query/scala/CompileTestUtils.scala b/querydsl-scala/src/test/scala/com/mysema/query/scala/CompileTestUtils.scala index 28d2fe021..4b1350dcd 100644 --- a/querydsl-scala/src/test/scala/com/mysema/query/scala/CompileTestUtils.scala +++ b/querydsl-scala/src/test/scala/com/mysema/query/scala/CompileTestUtils.scala @@ -2,12 +2,20 @@ package com.mysema.query.scala import scala.tools.nsc._ import scala.tools.nsc.InterpreterResults._ +import scala.io.Source.fromFile +import java.io.File trait CompileTestUtils { private def jarPathOfClass(className: String) = { Class.forName(className).getProtectionDomain.getCodeSource.getLocation } + def assertCompileSuccess(files: Traversable[File]): Unit = { + assertCompileSuccess(files + map (fromFile(_).mkString) + mkString ("\n")) + } + def assertCompileSuccess(source: String): Unit = { import java.io.File.pathSeparator @@ -25,7 +33,7 @@ trait CompileTestUtils { val interpreter = new Interpreter(env, interpreterWriter) try { - val result = interpreter.interpret(source.replace("package", "import")) + val result = interpreter.interpret(source.replaceAll("package", "import")) if (result != Success) { throw new AssertionError("Compile failed, interpreter output:\n" + out.toString("utf-8")) } diff --git a/querydsl-scala/src/test/scala/com/mysema/query/scala/sql/JDBCIntegrationTest.scala b/querydsl-scala/src/test/scala/com/mysema/query/scala/sql/JDBCIntegrationTest.scala index d8ec430a5..550f5b82b 100644 --- a/querydsl-scala/src/test/scala/com/mysema/query/scala/sql/JDBCIntegrationTest.scala +++ b/querydsl-scala/src/test/scala/com/mysema/query/scala/sql/JDBCIntegrationTest.scala @@ -15,12 +15,14 @@ import org.junit.Assert._ import java.util.Arrays +import com.mysema.query.scala.CompileTestUtils + import com.mysema.query.scala.ScalaBeanSerializer import com.mysema.query.scala.ScalaTypeMappings import com.mysema.query.sql.dml._ -class JDBCIntegrationTest { +class JDBCIntegrationTest extends CompileTestUtils { val survey = new QSurvey("survey") val employee = new QEmployee("employee") @@ -33,8 +35,6 @@ class JDBCIntegrationTest { @Before def setUp() { -// Class.forName("org.hsqldb.jdbcDriver") -// val url = "jdbc:hsqldb:mem:testdb" Class.forName("org.h2.Driver") val url = "jdbc:h2:target/h2" @@ -45,20 +45,20 @@ class JDBCIntegrationTest { statement.execute("drop table date_test if exists") statement.execute("drop table date_time_test if exists") - statement.execute("create table survey (" - + "id int identity, " - + "name varchar(30))") + statement.execute("""create table survey ( + id int identity, + name varchar(30))""") statement.execute("insert into survey (name) values ('abc')") statement.execute("insert into survey (name) values ('def')") - statement.execute("create table employee(" - + "id INT identity, " - + "firstname VARCHAR(50), " - + "lastname VARCHAR(50), " - + "superior_id int, " - + "CONSTRAINT PK_employee PRIMARY KEY (id), " - + "CONSTRAINT FK_superior FOREIGN KEY (superior_id) REFERENCES employee(id))") + statement.execute("""create table employee( + id INT identity, + firstname VARCHAR(50), + lastname VARCHAR(50), + superior_id int, + CONSTRAINT PK_employee PRIMARY KEY (id), + CONSTRAINT FK_superior FOREIGN KEY (superior_id) REFERENCES employee(id))""") statement.execute("insert into employee (firstname, lastname) values ('Bob', 'Smith')") statement.execute("insert into employee (firstname, lastname) values ('John', 'Doe')") @@ -72,13 +72,22 @@ class JDBCIntegrationTest { val exporter = new MetaDataExporter() exporter.setNamePrefix("Q") exporter.setPackageName("test") - exporter.setTargetFolder(new File("target/gen1")) + val directory = new File("target/gen1") + exporter.setTargetFolder(directory) exporter.setSerializerClass(classOf[ScalaMetaDataSerializer]) exporter.setCreateScalaSources(true) exporter.setTypeMappings(ScalaTypeMappings.create) exporter.export(connection.getMetaData) - - // TODO : compile sources + + assertCompileSuccess(recursiveFileList(directory)) + } + + private def recursiveFileList(file: File): Array[File] = { + if (file.isDirectory) { + file.listFiles.flatMap(recursiveFileList(_)) + } else { + Array(file) + } } @Test @@ -99,8 +108,12 @@ class JDBCIntegrationTest { } @Test - def List { + def Populate_Bean { assertEquals(2, query from (survey) list (survey) size ()) + } + + @Test + def List { assertEquals(2, query from (survey) list (survey.id) size ()) assertEquals(2, query from (employee) list (employee.firstname) size ()) } @@ -112,7 +125,7 @@ class JDBCIntegrationTest { } @Test - def UniqueResult { + def Unique_Result { assertEquals("abc", query from survey where (survey.id eq 1) uniqueResult survey.name) assertEquals("def", query from survey where (survey.id eq 2) uniqueResult survey.name) assertEquals("Bob", query from employee where (employee.lastname eq "Smith") uniqueResult employee.firstname)