diff --git a/pom.xml b/pom.xml index cf06c4e09..05d2f4b10 100644 --- a/pom.xml +++ b/pom.xml @@ -227,9 +227,9 @@ - io.ebean - ebean-docker-run - 1.5.1 + io.ebean.test + ebean-test-docker + 2.4.1 test @@ -280,7 +280,7 @@ com.microsoft.sqlserver mssql-jdbc - 7.2.0.jre8 + 7.2.2.jre8 test diff --git a/src/test/java/io/ebean/EbeanServer_eqlTest.java b/src/test/java/io/ebean/EbeanServer_eqlTest.java index 1e160484d..104780fbd 100644 --- a/src/test/java/io/ebean/EbeanServer_eqlTest.java +++ b/src/test/java/io/ebean/EbeanServer_eqlTest.java @@ -132,10 +132,13 @@ public class EbeanServer_eqlTest extends BaseTestCase { Query query = Ebean.createQuery(Customer.class); query.setMaxRows(10); query.setFirstRow(3); + if (isSqlServer()) { + query.orderBy("id"); + } query.findList(); if (isSqlServer()) { - assertThat(query.getGeneratedSql()).endsWith("from o_customer t0 offset 3 rows fetch next 10 rows only"); + assertThat(query.getGeneratedSql()).endsWith("from o_customer t0 order by t0.id offset 3 rows fetch next 10 rows only"); } else if (isOracle()) { assertThat(query.getGeneratedSql()).contains("where rownum <= 13"); assertThat(query.getGeneratedSql()).contains("where rn_ > 3"); diff --git a/src/test/java/io/ebeaninternal/server/grammer/EqlParserTest.java b/src/test/java/io/ebeaninternal/server/grammer/EqlParserTest.java index 6e63066e2..43f79b915 100644 --- a/src/test/java/io/ebeaninternal/server/grammer/EqlParserTest.java +++ b/src/test/java/io/ebeaninternal/server/grammer/EqlParserTest.java @@ -596,7 +596,7 @@ public class EqlParserTest extends BaseTestCase { ResetBasicData.reset(); - Query query = parse("limit 10 offset 5"); + Query query = parse("order by name limit 10 offset 5"); query.findList(); if (isH2()) { assertThat(query.getGeneratedSql()).contains(" limit 10 offset 5"); diff --git a/src/test/java/main/StartSqlServer.java b/src/test/java/main/StartSqlServer.java new file mode 100644 index 000000000..fe758efba --- /dev/null +++ b/src/test/java/main/StartSqlServer.java @@ -0,0 +1,19 @@ +package main; + +import io.ebean.docker.commands.SqlServerConfig; +import io.ebean.docker.commands.SqlServerContainer; + +public class StartSqlServer { + + public static void main(String[] args) { + + SqlServerConfig config = new SqlServerConfig("2017-CU4"); + config.setDbName("test_ebean"); + config.setUser("test_ebean"); + + + SqlServerContainer container = new SqlServerContainer(config); + container.start(); + + } +} diff --git a/src/test/java/org/tests/basic/TestQueryUsingConnection.java b/src/test/java/org/tests/basic/TestQueryUsingConnection.java index 656af123f..5b63c7d33 100644 --- a/src/test/java/org/tests/basic/TestQueryUsingConnection.java +++ b/src/test/java/org/tests/basic/TestQueryUsingConnection.java @@ -3,6 +3,8 @@ package org.tests.basic; import io.ebean.BaseTestCase; import io.ebean.DB; import io.ebean.Transaction; +import io.ebean.annotation.IgnorePlatform; +import io.ebean.annotation.Platform; import org.junit.Test; import org.tests.model.basic.Country; import org.tests.model.basic.ResetBasicData; @@ -32,6 +34,7 @@ public class TestQueryUsingConnection extends BaseTestCase { } } + @IgnorePlatform(Platform.SQLSERVER) @Test public void usingTransaction() { diff --git a/src/test/java/org/tests/batchload/TestSecondaryQueries.java b/src/test/java/org/tests/batchload/TestSecondaryQueries.java index 1e0663e59..095ac9fe7 100644 --- a/src/test/java/org/tests/batchload/TestSecondaryQueries.java +++ b/src/test/java/org/tests/batchload/TestSecondaryQueries.java @@ -54,7 +54,7 @@ public class TestSecondaryQueries extends TransactionalTestCase { assertThat(sql).hasSize(1); if (isSqlServer()) { - assertThat(trimSql(sql.get(0), 2)).contains("select top 10 t0.id, t0.status, t0.kcustomer_id from o_order t0 order by t0.id"); + assertThat(trimSql(sql.get(0), 2)).contains("select top 10 t0.id, t0.status, t0.kcustomer_id from o_order t0"); } else { assertThat(trimSql(sql.get(0), 2)).contains("select t0.id, t0.status, t0.kcustomer_id from o_order t0"); } @@ -91,7 +91,7 @@ public class TestSecondaryQueries extends TransactionalTestCase { assertThat(sql).hasSize(1); if (isSqlServer()) { - assertThat(trimSql(sql.get(0), 2)).contains("select top 10 t0.id, t0.status from o_order t0 order by t0.id"); + assertThat(trimSql(sql.get(0), 2)).contains("select top 10 t0.id, t0.status from o_order t0"); } else { assertThat(trimSql(sql.get(0), 2)).contains("select t0.id, t0.status from o_order t0"); } diff --git a/src/test/java/org/tests/o2m/jointable/TestOneToManyJoinTableInheritance.java b/src/test/java/org/tests/o2m/jointable/TestOneToManyJoinTableInheritance.java index f3f75a7a6..3b2b262a8 100644 --- a/src/test/java/org/tests/o2m/jointable/TestOneToManyJoinTableInheritance.java +++ b/src/test/java/org/tests/o2m/jointable/TestOneToManyJoinTableInheritance.java @@ -34,15 +34,20 @@ public class TestOneToManyJoinTableInheritance extends BaseTestCase { List sql = LoggedSqlCollector.current(); + boolean hasSequence = isSqlServer(); // uses sequence assertThat(sql).hasSize(11); assertThat(sql.get(0)).contains("insert into class_super "); - assertThat(sql.get(1)).contains("-- bind(ClassA)"); - assertThat(sql.get(2)).contains("-- bind(ClassB)"); + if (!hasSequence) { + assertThat(sql.get(1)).contains("-- bind(ClassA)"); + assertThat(sql.get(2)).contains("-- bind(ClassB)"); + } assertThat(sql.get(3)).contains("insert into monkey "); - assertThat(sql.get(4)).contains("-- bind(Sim"); - assertThat(sql.get(5)).contains("-- bind(Tim"); - assertThat(sql.get(6)).contains("-- bind(Uim"); - assertThat(sql.get(7)).contains("insert into class_super_monkey (class_super_sid, monkey_mid) values (?, ?)"); + if (!hasSequence) { + assertThat(sql.get(4)).contains("-- bind(Sim"); + assertThat(sql.get(5)).contains("-- bind(Tim"); + assertThat(sql.get(6)).contains("-- bind(Uim"); + assertThat(sql.get(7)).contains("insert into class_super_monkey (class_super_sid, monkey_mid) values (?, ?)"); + } assertSqlBind(sql, 8, 10); ClassA dbA = Ebean.find(ClassA.class, 1); diff --git a/src/test/java/org/tests/query/TestAddOrderByWithFirstRowsMaxRows.java b/src/test/java/org/tests/query/TestAddOrderByWithFirstRowsMaxRows.java index d6c7c66b6..9ec383234 100644 --- a/src/test/java/org/tests/query/TestAddOrderByWithFirstRowsMaxRows.java +++ b/src/test/java/org/tests/query/TestAddOrderByWithFirstRowsMaxRows.java @@ -126,6 +126,7 @@ public class TestAddOrderByWithFirstRowsMaxRows extends BaseTestCase { Ebean.find(Order.class) .setFirstRow(10) .setMaxRows(10) + .orderBy("id") .findPagedList() .getList(); diff --git a/src/test/java/org/tests/query/TestQueryFilterCaseInsensitive.java b/src/test/java/org/tests/query/TestQueryFilterCaseInsensitive.java index a9bb3687d..8e565c571 100644 --- a/src/test/java/org/tests/query/TestQueryFilterCaseInsensitive.java +++ b/src/test/java/org/tests/query/TestQueryFilterCaseInsensitive.java @@ -20,7 +20,7 @@ public class TestQueryFilterCaseInsensitive extends BaseTestCase { ResetBasicData.reset(); } - @IgnorePlatform(Platform.MYSQL) + @IgnorePlatform({Platform.MYSQL, Platform.SQLSERVER}) @Test public void testEq() { @@ -39,7 +39,7 @@ public class TestQueryFilterCaseInsensitive extends BaseTestCase { assertThat(customers).hasSize(1); } - @IgnorePlatform(Platform.MYSQL) + @IgnorePlatform({Platform.MYSQL, Platform.SQLSERVER}) @Test public void testNe() { List customers = DB.find(Customer.class).where() diff --git a/src/test/java/org/tests/query/TestQueryFindPagedList.java b/src/test/java/org/tests/query/TestQueryFindPagedList.java index 293b4d519..2376fefda 100644 --- a/src/test/java/org/tests/query/TestQueryFindPagedList.java +++ b/src/test/java/org/tests/query/TestQueryFindPagedList.java @@ -94,6 +94,7 @@ public class TestQueryFindPagedList extends BaseTestCase { PagedList pagedList2 = Ebean.find(Order.class) .setFirstRow(1) .setMaxRows(3) + .orderBy("id") .findPagedList(); pagedList2.loadCount(); @@ -109,6 +110,7 @@ public class TestQueryFindPagedList extends BaseTestCase { PagedList pagedList3 = Ebean.find(Order.class) .setFirstRow(2) .setMaxRows(150) + .orderBy("id") .findPagedList(); assertFalse(pagedList3.hasNext()); diff --git a/src/test/java/org/tests/query/TestQueryOrderById.java b/src/test/java/org/tests/query/TestQueryOrderById.java index 7d1c402f1..854f1b5eb 100644 --- a/src/test/java/org/tests/query/TestQueryOrderById.java +++ b/src/test/java/org/tests/query/TestQueryOrderById.java @@ -15,11 +15,16 @@ public class TestQueryOrderById extends BaseTestCase { Query query = DB.find(Customer.class) .select("id,name") + .orderBy("id") .setFirstRow(1) .setMaxRows(5); query.findList(); - assertThat(sqlOf(query)).isEqualTo("select t0.id, t0.name from o_customer t0 limit 5 offset 1"); + if (isSqlServer()) { + assertThat(sqlOf(query)).isEqualTo("select t0.id, t0.name from o_customer t0 order by t0.id offset 1 rows fetch next 5 rows only"); + } else { + assertThat(sqlOf(query)).isEqualTo("select t0.id, t0.name from o_customer t0 order by t0.id limit 5 offset 1"); + } } @Test @@ -32,6 +37,10 @@ public class TestQueryOrderById extends BaseTestCase { .orderById(true); query.findList(); - assertThat(sqlOf(query)).isEqualTo("select t0.id, t0.name from o_customer t0 order by t0.id limit 5 offset 1"); + if (isSqlServer()) { + assertThat(sqlOf(query)).isEqualTo("select t0.id, t0.name from o_customer t0 order by t0.id offset 1 rows fetch next 5 rows only"); + } else { + assertThat(sqlOf(query)).isEqualTo("select t0.id, t0.name from o_customer t0 order by t0.id limit 5 offset 1"); + } } } diff --git a/src/test/java/org/tests/rawsql/TestRawSqlOrmQuery.java b/src/test/java/org/tests/rawsql/TestRawSqlOrmQuery.java index 54e933d3c..7c09cc098 100644 --- a/src/test/java/org/tests/rawsql/TestRawSqlOrmQuery.java +++ b/src/test/java/org/tests/rawsql/TestRawSqlOrmQuery.java @@ -151,6 +151,7 @@ public class TestRawSqlOrmQuery extends BaseTestCase { query.setFirstRow(1); query.setMaxRows(2); + query.orderBy("id"); List list = query.findList(); diff --git a/src/test/java/org/tests/transaction/TestBatchModelFlush.java b/src/test/java/org/tests/transaction/TestBatchModelFlush.java index a8195ec96..f32a459ff 100644 --- a/src/test/java/org/tests/transaction/TestBatchModelFlush.java +++ b/src/test/java/org/tests/transaction/TestBatchModelFlush.java @@ -75,17 +75,22 @@ public class TestBatchModelFlush extends BaseTestCase { assertThat(sql).hasSize(9); // first saved to batch - (depth 100) + boolean hasSequence = isSqlServer(); assertThat(sql.get(0)).contains("insert into mny_b"); - assertThat(sql.get(1)).contains(" -- bind(BatchMultipleTop_0"); - assertThat(sql.get(2)).contains(" -- bind(BatchMultipleTop_1"); + if (!hasSequence) { + assertThat(sql.get(1)).contains(" -- bind(BatchMultipleTop_0"); + assertThat(sql.get(2)).contains(" -- bind(BatchMultipleTop_1"); + } // second saved to batch - (depth 101) assertThat(sql.get(3)).contains("insert into mt_role"); assertThat(sql.get(4)).contains(" -- bind("); assertThat(sql.get(5)).contains(" -- bind("); // third saved to batch - (depth 102) assertThat(sql.get(6)).contains("insert into mny_topic"); - assertThat(sql.get(7)).contains(" -- bind(MnyTopic_0"); - assertThat(sql.get(8)).contains(" -- bind(MnyTopic_1"); + if (!hasSequence) { + assertThat(sql.get(7)).contains(" -- bind(MnyTopic_0"); + assertThat(sql.get(8)).contains(" -- bind(MnyTopic_1"); + } DB.delete(t0); DB.delete(t1); diff --git a/src/test/resources/ebean.properties b/src/test/resources/ebean.properties index 9e00efeff..cc60f184a 100644 --- a/src/test/resources/ebean.properties +++ b/src/test/resources/ebean.properties @@ -160,8 +160,8 @@ ebean.sqlserver.databasePlatformName=sqlserver17 datasource.sqlserver.username=test_ebean datasource.sqlserver.password=SqlS3rv#r -datasource.sqlserver.databaseUrl=jdbc:sqlserver://localhost:1433;databaseName=test_ebean -datasource.sqlserver.databaseDriver=com.microsoft.sqlserver.jdbc.SQLServerDriver +datasource.sqlserver.url=jdbc:sqlserver://localhost:1433;databaseName=test_ebean;sendTimeAsDateTime=false +datasource.sqlserver.driver=com.microsoft.sqlserver.jdbc.SQLServerDriver datasource.db2.username=db2admin datasource.db2.password=veryverysecret#1234 diff --git a/src/test/resources/logback-test.xml b/src/test/resources/logback-test.xml index 25a339db8..9dfb9aab1 100644 --- a/src/test/resources/logback-test.xml +++ b/src/test/resources/logback-test.xml @@ -73,13 +73,10 @@ - - - - +