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 @@
-
-
-
-
+