Cleanup tests for Oracle

This commit is contained in:
Rob Bygrave
2018-02-02 23:17:03 +13:00
parent b2bbb05b83
commit 823cb45221
12 changed files with 131 additions and 24 deletions
@@ -10,11 +10,11 @@ import io.ebean.RawSql;
import io.ebean.RawSqlBuilder;
import io.ebean.annotation.IgnorePlatform;
import io.ebean.annotation.Platform;
import org.junit.Assert;
import org.junit.Test;
import org.tests.model.basic.Customer;
import org.tests.model.basic.Order;
import org.tests.model.basic.ResetBasicData;
import org.junit.Assert;
import org.junit.Test;
import java.util.List;
import java.util.concurrent.ExecutionException;
@@ -23,6 +23,7 @@ import static org.assertj.core.api.Assertions.assertThat;
public class TestRawSqlOrmQuery extends BaseTestCase {
@IgnorePlatform(Platform.ORACLE)
@Test
public void testNamed() {
@@ -168,11 +169,14 @@ public class TestRawSqlOrmQuery extends BaseTestCase {
if (isSqlServer()) {
assertThat(query.getGeneratedSql()).contains("top 100 ");
assertThat(query.getGeneratedSql()).contains("order by o.ship_date desc, o.id");
} else if (isOracle()) {
assertThat(query.getGeneratedSql()).contains("a where rownum <= 100 )");
} else {
assertThat(query.getGeneratedSql()).contains("order by o.ship_date desc, o.id limit 100");
}
}
@IgnorePlatform(Platform.ORACLE)
@Test
public void testPaging_when_setOrderBy_expect_id_appendToOrderBy() {
@@ -227,6 +231,8 @@ public class TestRawSqlOrmQuery extends BaseTestCase {
if (isSqlServer()) {
assertThat(sqlOf(query)).contains("select top 100 ");
assertThat(sqlOf(query)).contains("order by o.id desc");
} else if (isOracle()) {
assertThat(sqlOf(query)).contains("a where rownum <= 100 )");
} else {
assertThat(sqlOf(query)).contains("order by o.id desc limit 100");
}
@@ -7,6 +7,7 @@ import io.ebean.EbeanServer;
import io.ebean.Query;
import io.ebean.annotation.IgnorePlatform;
import io.ebean.annotation.Platform;
import org.ebeantest.LoggedSqlCollector;
import org.junit.Test;
import org.tests.model.basic.Customer;
import org.tests.model.basic.Order;
@@ -107,8 +108,11 @@ public class TestNativeSqlBasic extends BaseTestCase {
}
}
/**
* Oracle does not support getTableName() via JDBC resultSet meta data
*/
@Test
@IgnorePlatform(Platform.SQLSERVER) // does only work in 'cursor' mode!
@IgnorePlatform({Platform.SQLSERVER, Platform.ORACLE}) // does only work in 'cursor' mode!
public void partialAssoc() {
ResetBasicData.reset();
@@ -126,6 +130,36 @@ public class TestNativeSqlBasic extends BaseTestCase {
}
}
@Test
public void partialAssocIncludingOracle() {
ResetBasicData.reset();
EbeanServer server = Ebean.getDefaultServer();
String nativeSql = "select o.id, o.status, o.kcustomer_id from o_order o";
List<Order> orders = server.findNative(Order.class, nativeSql)
.findList();
LoggedSqlCollector.start();
for (Order order : orders) {
order.getStatus();
}
List<String> sql = LoggedSqlCollector.current();
assertThat(sql).isEmpty();
for (Order order : orders) {
order.getCustomer().getName();
}
sql = LoggedSqlCollector.stop();
assertThat(sql).hasSize(1);
assertThat(sql.get(0)).contains(" from o_customer t0 where ");
}
@Test
public void fetchQuery() {