diff --git a/pom.xml b/pom.xml index c6317717d..806b1c7ea 100644 --- a/pom.xml +++ b/pom.xml @@ -90,7 +90,14 @@ 1.1.1 test - + + + org.avaje.ebeanorm + avaje-ebeanorm-agent + 3.2.1 + test + + com.h2database h2 diff --git a/src/main/java/com/avaje/ebean/config/ServerConfig.java b/src/main/java/com/avaje/ebean/config/ServerConfig.java index 4aae055b7..6f5445fa1 100644 --- a/src/main/java/com/avaje/ebean/config/ServerConfig.java +++ b/src/main/java/com/avaje/ebean/config/ServerConfig.java @@ -139,10 +139,6 @@ public class ServerConfig { private boolean ddlRun; - private boolean debugSql; - - private boolean debugLazyLoad; - private boolean useJtaTransactionManager; /** @@ -150,17 +146,6 @@ public class ServerConfig { */ private ExternalTransactionManager externalTransactionManager; - /** - * Set to true to log using java.util.logging and otherwise uses ebean - * transaction loggers. - */ - private boolean loggingToJavaLogger; - - /** - * The directory transaction logs go (when loggingToJavaLogger is false). - */ - private String loggingDirectory = "logs"; - /** * Used to unwrap PreparedStatements to perform JDBC Driver specific functions */ @@ -774,119 +759,6 @@ public class ServerConfig { this.dbEncrypt = dbEncrypt; } - /** - * Return true to get the generated SQL queries output to the console. - *

- * To get the SQL and bind variables for insert update delete statements you - * should use transaction logging. - *

- */ - public boolean isDebugSql() { - return debugSql; - } - - /** - * Set to true to get the generated SQL queries output to the console. - *

- * To get the SQL and bind variables for insert update delete statements you - * should use transaction logging. - *

- */ - public void setDebugSql(boolean debugSql) { - this.debugSql = debugSql; - } - - /** - * Return true if there is debug logging on lazy loading events. - */ - public boolean isDebugLazyLoad() { - return debugLazyLoad; - } - - /** - * Set to true to get debug logging on lazy loading events. - */ - public void setDebugLazyLoad(boolean debugLazyLoad) { - this.debugLazyLoad = debugLazyLoad; - } - - /** - * Return the directory where transaction logs go. - */ - public String getLoggingDirectory() { - return loggingDirectory; - } - - /** - * Return the transaction log directory substituting any expressions such as - * ${catalina.base} etc. - */ - public String getLoggingDirectoryWithEval() { - return GlobalProperties.evaluateExpressions(loggingDirectory); - } - - /** - * Set the directory that the transaction logs go in. - *

- * This will not be used if the transaction logging is going to java util - * logging (via {@link #setLoggingToJavaLogger(boolean)}). - *

- *

- * This can contain expressions like ${catalina.base} with environment - * variables, java system properties and entries in ebean.properties. - *

- *

- * e.g. ${catalina.base}/logs/trans - *

- * - * @param loggingDirectory - * the transaction log directory - */ - public void setLoggingDirectory(String loggingDirectory) { - this.loggingDirectory = loggingDirectory; - } - - /** - * Return true if you want to use a java.util.logging.Logger to log - * transaction statements, bind values etc. - *

- * If this is false then the default transaction logger is used which logs the - * transaction details to separate transaction log files. - *

- */ - @Deprecated - public boolean isLoggingToJavaLogger() { - return loggingToJavaLogger; - } - - /** - * Set this to true if you want transaction logging to use a - * java.util.logging.Logger to log the statements and bind variables etc - * rather than the default one which creates separate transaction log files. - */ - @Deprecated - public void setLoggingToJavaLogger(boolean transactionLogToJavaLogger) { - this.loggingToJavaLogger = transactionLogToJavaLogger; - } - - /** - * Deprecated - please use isTransactionLogToJavaLogger(); - * - * @deprecated - */ - public boolean isUseJuliTransactionLogger() { - return isLoggingToJavaLogger(); - } - - /** - * Deprecated - please use setTransactionLogToJavaLogger(); - * - * @deprecated - */ - public void setUseJuliTransactionLogger(boolean transactionLogToJavaLogger) { - setLoggingToJavaLogger(transactionLogToJavaLogger); - } - /** * Set to true to run the DDL generation on startup. */ @@ -1330,15 +1202,6 @@ public class ServerConfig { ddlGenerate = p.getBoolean("ddl.generate", false); ddlRun = p.getBoolean("ddl.run", false); - debugSql = p.getBoolean("debug.sql", false); - debugLazyLoad = p.getBoolean("debug.lazyload", false); - - String s = p.get("useJuliTransactionLogger", null); - s = p.get("loggingToJavaLogger", s); - loggingToJavaLogger = "true".equalsIgnoreCase(s); - - s = p.get("log.directory", "logs"); - loggingDirectory = p.get("logging.directory", s); classes = getClasses(p); } diff --git a/src/main/java/com/avaje/ebeaninternal/server/core/DebugLazyLoad.java b/src/main/java/com/avaje/ebeaninternal/server/core/DebugLazyLoad.java deleted file mode 100644 index d0d8db533..000000000 --- a/src/main/java/com/avaje/ebeaninternal/server/core/DebugLazyLoad.java +++ /dev/null @@ -1,111 +0,0 @@ -package com.avaje.ebeaninternal.server.core; - -import java.util.ArrayList; -import java.util.List; - -import com.avaje.ebean.config.GlobalProperties; - -/** - * Helper used in producing debug output on lazy loading. - */ -public class DebugLazyLoad { - - private final String[] ignoreList; - - private final boolean debug; - - public DebugLazyLoad(boolean lazyLoadDebug) { - ignoreList = buildLazyLoadIgnoreList(); - debug = lazyLoadDebug; - } - - /** - * Return true if debugging is on. - */ - public boolean isDebug() { - return debug; - } - - /** - * Return the StackTraceElement that is believed to be the line of code that - * triggered the lazy loading. - *

- * This is determined by going up the stack trace ignoring all the sections - * of java and Ebean code etc until you find code not in the ignore list - - * this is assumed to be your application code that triggered the lazy - * loading (it could be a third party layer such as a web template). - *

- */ - public StackTraceElement getStackTraceElement(Class beanType) { - - StackTraceElement[] stackTrace = Thread.currentThread().getStackTrace(); - for (int i = 0; i < stackTrace.length; i++) { - if (isStackLine(stackTrace[i], beanType)) { - return stackTrace[i]; - } - } - return null; - } - - /** - * Return true if the code is expected to be application code. - */ - private boolean isStackLine(StackTraceElement element, Class beanType) { - - String stackClass = element.getClassName(); - - if (isBeanClass(beanType, stackClass)) { - return false; - } - - for (int i = 0; i < ignoreList.length; i++) { - if (stackClass.startsWith(ignoreList[i])) { - return false; - } - } - return true; - } - - /** - * Recurse up the inheritance checking to see if the stackClass is - * this beanType (or a parent type). - */ - private boolean isBeanClass(Class beanType, String stackClass) { - if (stackClass.startsWith(beanType.getName())) { - return true; - } - Class superCls = beanType.getSuperclass(); - if (superCls.equals(Object.class)){ - return false; - } else { - return isBeanClass(superCls, stackClass); - } - } - - - /** - * Build list of prefixes used to find the application code that triggered - * the lazy loading. - */ - private String[] buildLazyLoadIgnoreList() { - - List ignore = new ArrayList(); - - // code that should be ignored when searching - // the stack trace elements - ignore.add("com.avaje.ebean"); - ignore.add("java"); - ignore.add("sun.reflect"); - ignore.add("org.codehaus.groovy.runtime."); - - String extraIgnore = GlobalProperties.get("debug.lazyload.ignore", null); - if (extraIgnore != null) { - String[] split = extraIgnore.split(","); - for (int i = 0; i < split.length; i++) { - ignore.add(split[i].trim()); - } - } - - return ignore.toArray(new String[ignore.size()]); - } -} diff --git a/src/main/java/com/avaje/ebeaninternal/server/core/InternalConfiguration.java b/src/main/java/com/avaje/ebeaninternal/server/core/InternalConfiguration.java index 8490a32cc..be07ad397 100644 --- a/src/main/java/com/avaje/ebeaninternal/server/core/InternalConfiguration.java +++ b/src/main/java/com/avaje/ebeaninternal/server/core/InternalConfiguration.java @@ -69,8 +69,6 @@ public class InternalConfiguration { private final BeanDescriptorManager beanDescriptorManager; - private final DebugLazyLoad debugLazyLoad; - private final TransactionManager transactionManager; private final TransactionScopeManager transactionScopeManager; @@ -115,23 +113,18 @@ public class InternalConfiguration { this.beanDescriptorManager = new BeanDescriptorManager(this); beanDescriptorManager.deploy(); - this.debugLazyLoad = new DebugLazyLoad(serverConfig.isDebugLazyLoad()); - this.transactionManager = new TransactionManager(clusterManager, backgroundExecutor, serverConfig, beanDescriptorManager, this.getBootupClasses()); - this.cQueryEngine = new CQueryEngine(serverConfig.getDatabasePlatform(), binder, - backgroundExecutor); + this.cQueryEngine = new CQueryEngine(serverConfig.getDatabasePlatform(), binder, backgroundExecutor); - ExternalTransactionManager externalTransactionManager = serverConfig - .getExternalTransactionManager(); + ExternalTransactionManager externalTransactionManager = serverConfig.getExternalTransactionManager(); if (externalTransactionManager == null && serverConfig.isUseJtaTransactionManager()) { externalTransactionManager = new JtaTransactionManager(); } if (externalTransactionManager != null) { externalTransactionManager.setTransactionManager(transactionManager); - this.transactionScopeManager = new ExternalTransactionScopeManager(transactionManager, - externalTransactionManager); + this.transactionScopeManager = new ExternalTransactionScopeManager(transactionManager, externalTransactionManager); logger.info("Using Transaction Manager [" + externalTransactionManager.getClass() + "]"); } else { this.transactionScopeManager = new DefaultTransactionScopeManager(transactionManager); @@ -170,7 +163,6 @@ public class InternalConfiguration { } public Persister createPersister(SpiEbeanServer server) { - return new DefaultPersister(server, binder, beanDescriptorManager, pstmtBatch); } @@ -246,10 +238,6 @@ public class InternalConfiguration { return clusterManager; } - public DebugLazyLoad getDebugLazyLoad() { - return debugLazyLoad; - } - public SpiBackgroundExecutor getBackgroundExecutor() { return backgroundExecutor; } diff --git a/src/test/java/com/avaje/ebean/BaseTestCase.java b/src/test/java/com/avaje/ebean/BaseTestCase.java index 16f208568..1f716aa7a 100644 --- a/src/test/java/com/avaje/ebean/BaseTestCase.java +++ b/src/test/java/com/avaje/ebean/BaseTestCase.java @@ -1,13 +1,18 @@ package com.avaje.ebean; import org.avaje.agentloader.AgentLoader; +import org.junit.BeforeClass; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; -import junit.framework.TestCase; - -public class BaseTestCase extends TestCase { +public class BaseTestCase { - static { - AgentLoader.loadAgentFromClasspath("avaje-ebeanorm-agent","debug=1"); + protected static Logger logger = LoggerFactory.getLogger(BaseTestCase.class); + + @BeforeClass + public static void preStart() { + logger.debug("... preStart"); + AgentLoader.loadAgentFromClasspath("avaje-ebeanorm-agent","debug=0"); } } diff --git a/src/test/java/com/avaje/ebean/TestRawSqlBuilder.java b/src/test/java/com/avaje/ebean/TestRawSqlBuilder.java index 69866cde7..41576cd1d 100644 --- a/src/test/java/com/avaje/ebean/TestRawSqlBuilder.java +++ b/src/test/java/com/avaje/ebean/TestRawSqlBuilder.java @@ -1,87 +1,96 @@ package com.avaje.ebean; import org.junit.Assert; +import org.junit.Test; import com.avaje.ebean.RawSql.Sql; public class TestRawSqlBuilder extends BaseTestCase { - public void testSimple() { - - RawSqlBuilder r = RawSqlBuilder.parse("select id from t_cust"); - Sql sql = r.getSql(); - Assert.assertEquals("id", sql.getPreFrom()); - Assert.assertEquals("from t_cust", sql.getPreWhere()); - Assert.assertEquals("", sql.getPreHaving()); - Assert.assertNull(sql.getOrderBy()); - - } - - public void testWithWhere() { - - RawSqlBuilder r = RawSqlBuilder.parse("select id from t_cust where id > ?"); - Sql sql = r.getSql(); - Assert.assertEquals("id", sql.getPreFrom()); - Assert.assertEquals("from t_cust where id > ?", sql.getPreWhere()); - Assert.assertEquals("", sql.getPreHaving()); - Assert.assertNull(sql.getOrderBy()); - } - - public void testWithOrder() { - - RawSqlBuilder r = RawSqlBuilder.parse("select id from t_cust where id > ? order by id desc"); - Sql sql = r.getSql(); - Assert.assertEquals("id", sql.getPreFrom()); - Assert.assertEquals("from t_cust where id > ?", sql.getPreWhere()); - Assert.assertEquals("", sql.getPreHaving()); - Assert.assertEquals("id desc", sql.getOrderBy()); - - r = RawSqlBuilder.parse("select id from t_cust order by id desc"); - sql = r.getSql(); - Assert.assertEquals("id", sql.getPreFrom()); - Assert.assertEquals("from t_cust", sql.getPreWhere()); - Assert.assertEquals("", sql.getPreHaving()); - Assert.assertEquals("id desc", sql.getOrderBy()); - - r = RawSqlBuilder.parse("select id, sum(x) from t_cust where id > ? group by id order by id desc"); - sql = r.getSql(); - Assert.assertEquals("id, sum(x)", sql.getPreFrom()); - Assert.assertEquals("from t_cust where id > ?", sql.getPreWhere()); - Assert.assertEquals("group by id", sql.getPreHaving()); - Assert.assertEquals("id desc", sql.getOrderBy()); - } - - public void testWithHaving() { - - RawSqlBuilder r = RawSqlBuilder.parse("select id, sum(x) from t_cust where id > ? group by id having sum(x) > ? order by id desc"); - Sql sql = r.getSql(); - Assert.assertEquals("id, sum(x)", sql.getPreFrom()); - Assert.assertEquals("from t_cust where id > ?", sql.getPreWhere()); - Assert.assertEquals("group by id having sum(x) > ?", sql.getPreHaving()); - Assert.assertEquals("id desc", sql.getOrderBy()); - - // no where - r = RawSqlBuilder.parse("select id, sum(x) from t_cust group by id having sum(x) > ? order by id desc"); - sql = r.getSql(); - Assert.assertEquals("id, sum(x)", sql.getPreFrom()); - Assert.assertEquals("from t_cust", sql.getPreWhere()); - Assert.assertEquals("group by id having sum(x) > ?", sql.getPreHaving()); - Assert.assertEquals("id desc", sql.getOrderBy()); - - // no where, no order by - r = RawSqlBuilder.parse("select id, sum(x) from t_cust group by id having sum(x) > ?"); - sql = r.getSql(); - Assert.assertEquals("id, sum(x)", sql.getPreFrom()); - Assert.assertEquals("from t_cust", sql.getPreWhere()); - Assert.assertEquals("group by id having sum(x) > ?", sql.getPreHaving()); - Assert.assertNull(sql.getOrderBy()); - - // no order by - r = RawSqlBuilder.parse("select id, sum(x) from t_cust where id > ? group by id having sum(x) > ?"); - sql = r.getSql(); - Assert.assertEquals("id, sum(x)", sql.getPreFrom()); - Assert.assertEquals("from t_cust where id > ?", sql.getPreWhere()); - Assert.assertEquals("group by id having sum(x) > ?", sql.getPreHaving()); - Assert.assertNull(sql.getOrderBy()); - } + @Test + public void testSimple() { + + RawSqlBuilder r = RawSqlBuilder.parse("select id from t_cust"); + Sql sql = r.getSql(); + Assert.assertEquals("id", sql.getPreFrom()); + Assert.assertEquals("from t_cust", sql.getPreWhere()); + Assert.assertEquals("", sql.getPreHaving()); + Assert.assertNull(sql.getOrderBy()); + + } + + @Test + public void testWithWhere() { + + RawSqlBuilder r = RawSqlBuilder.parse("select id from t_cust where id > ?"); + Sql sql = r.getSql(); + Assert.assertEquals("id", sql.getPreFrom()); + Assert.assertEquals("from t_cust where id > ?", sql.getPreWhere()); + Assert.assertEquals("", sql.getPreHaving()); + Assert.assertNull(sql.getOrderBy()); + } + + @Test + public void testWithOrder() { + + RawSqlBuilder r = RawSqlBuilder.parse("select id from t_cust where id > ? order by id desc"); + Sql sql = r.getSql(); + Assert.assertEquals("id", sql.getPreFrom()); + Assert.assertEquals("from t_cust where id > ?", sql.getPreWhere()); + Assert.assertEquals("", sql.getPreHaving()); + Assert.assertEquals("id desc", sql.getOrderBy()); + + r = RawSqlBuilder.parse("select id from t_cust order by id desc"); + sql = r.getSql(); + Assert.assertEquals("id", sql.getPreFrom()); + Assert.assertEquals("from t_cust", sql.getPreWhere()); + Assert.assertEquals("", sql.getPreHaving()); + Assert.assertEquals("id desc", sql.getOrderBy()); + + r = RawSqlBuilder + .parse("select id, sum(x) from t_cust where id > ? group by id order by id desc"); + sql = r.getSql(); + Assert.assertEquals("id, sum(x)", sql.getPreFrom()); + Assert.assertEquals("from t_cust where id > ?", sql.getPreWhere()); + Assert.assertEquals("group by id", sql.getPreHaving()); + Assert.assertEquals("id desc", sql.getOrderBy()); + } + + @Test + public void testWithHaving() { + + RawSqlBuilder r = RawSqlBuilder + .parse("select id, sum(x) from t_cust where id > ? group by id having sum(x) > ? order by id desc"); + Sql sql = r.getSql(); + Assert.assertEquals("id, sum(x)", sql.getPreFrom()); + Assert.assertEquals("from t_cust where id > ?", sql.getPreWhere()); + Assert.assertEquals("group by id having sum(x) > ?", sql.getPreHaving()); + Assert.assertEquals("id desc", sql.getOrderBy()); + + // no where + r = RawSqlBuilder + .parse("select id, sum(x) from t_cust group by id having sum(x) > ? order by id desc"); + sql = r.getSql(); + Assert.assertEquals("id, sum(x)", sql.getPreFrom()); + Assert.assertEquals("from t_cust", sql.getPreWhere()); + Assert.assertEquals("group by id having sum(x) > ?", sql.getPreHaving()); + Assert.assertEquals("id desc", sql.getOrderBy()); + + // no where, no order by + r = RawSqlBuilder.parse("select id, sum(x) from t_cust group by id having sum(x) > ?"); + sql = r.getSql(); + Assert.assertEquals("id, sum(x)", sql.getPreFrom()); + Assert.assertEquals("from t_cust", sql.getPreWhere()); + Assert.assertEquals("group by id having sum(x) > ?", sql.getPreHaving()); + Assert.assertNull(sql.getOrderBy()); + + // no order by + r = RawSqlBuilder + .parse("select id, sum(x) from t_cust where id > ? group by id having sum(x) > ?"); + sql = r.getSql(); + Assert.assertEquals("id, sum(x)", sql.getPreFrom()); + Assert.assertEquals("from t_cust where id > ?", sql.getPreWhere()); + Assert.assertEquals("group by id having sum(x) > ?", sql.getPreHaving()); + Assert.assertNull(sql.getOrderBy()); + } } diff --git a/src/test/java/com/avaje/ebean/server/type/TestTypeManager.java b/src/test/java/com/avaje/ebean/server/type/TestTypeManager.java index 10b78068f..78219d678 100644 --- a/src/test/java/com/avaje/ebean/server/type/TestTypeManager.java +++ b/src/test/java/com/avaje/ebean/server/type/TestTypeManager.java @@ -2,10 +2,10 @@ package com.avaje.ebean.server.type; import java.sql.Types; -import junit.framework.TestCase; - import org.junit.Assert; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.config.ServerConfig; import com.avaje.ebean.config.dbplatform.H2Platform; import com.avaje.ebeaninternal.server.core.BootupClasses; @@ -18,35 +18,36 @@ import com.avaje.tests.model.ivo.CMoney; import com.avaje.tests.model.ivo.ExhangeCMoneyRate; import com.avaje.tests.model.ivo.Money; -public class TestTypeManager extends TestCase { +public class TestTypeManager extends BaseTestCase { - public void test() { - - ServerConfig serverConfig = new ServerConfig(); - serverConfig.setDatabasePlatform(new H2Platform()); - - BootupClasses bootupClasses = new BootupClasses(); - - DefaultTypeManager typeManager = new DefaultTypeManager(serverConfig, bootupClasses); - - CheckImmutableResponse checkImmutable = typeManager.checkImmutable(Money.class); - Assert.assertTrue(checkImmutable.isImmutable()); + @Test + public void test() { - checkImmutable = typeManager.checkImmutable(CMoney.class); - Assert.assertTrue(checkImmutable.isImmutable()); + ServerConfig serverConfig = new ServerConfig(); + serverConfig.setDatabasePlatform(new H2Platform()); - ScalarDataReader dataReader = typeManager.recursiveCreateScalarDataReader(ExhangeCMoneyRate.class); - Assert.assertTrue(dataReader instanceof CtCompoundType); + BootupClasses bootupClasses = new BootupClasses(); - dataReader = typeManager.recursiveCreateScalarDataReader(CMoney.class); - Assert.assertTrue(dataReader instanceof CtCompoundType); + DefaultTypeManager typeManager = new DefaultTypeManager(serverConfig, bootupClasses); + + CheckImmutableResponse checkImmutable = typeManager.checkImmutable(Money.class); + Assert.assertTrue(checkImmutable.isImmutable()); + + checkImmutable = typeManager.checkImmutable(CMoney.class); + Assert.assertTrue(checkImmutable.isImmutable()); + + ScalarDataReader dataReader = typeManager + .recursiveCreateScalarDataReader(ExhangeCMoneyRate.class); + Assert.assertTrue(dataReader instanceof CtCompoundType); + + dataReader = typeManager.recursiveCreateScalarDataReader(CMoney.class); + Assert.assertTrue(dataReader instanceof CtCompoundType); + + ScalarType scalarType = typeManager.recursiveCreateScalarTypes(Money.class); + Assert.assertTrue(scalarType.getJdbcType() == Types.DECIMAL); + Assert.assertTrue(!scalarType.isJdbcNative()); + Assert.assertEquals(Money.class, scalarType.getType()); + + } - ScalarType scalarType = typeManager.recursiveCreateScalarTypes(Money.class); - Assert.assertTrue(scalarType.getJdbcType() == Types.DECIMAL); - Assert.assertTrue(!scalarType.isJdbcNative()); - Assert.assertEquals(Money.class, scalarType.getType()); - - - } - } diff --git a/src/test/java/com/avaje/ebean/text/TestPathPropertiesParse.java b/src/test/java/com/avaje/ebean/text/TestPathPropertiesParse.java index c8b2e39b0..c4342c74c 100644 --- a/src/test/java/com/avaje/ebean/text/TestPathPropertiesParse.java +++ b/src/test/java/com/avaje/ebean/text/TestPathPropertiesParse.java @@ -1,28 +1,31 @@ package com.avaje.ebean.text; -import junit.framework.TestCase; +import org.junit.Assert; +import org.junit.Test; -public class TestPathPropertiesParse extends TestCase { +import com.avaje.ebean.BaseTestCase; - public void test() { - - PathProperties s0 = PathProperties.parse("(id,name)"); +public class TestPathPropertiesParse extends BaseTestCase { - assertEquals(1,s0.getPaths().size()); - assertTrue(s0.get(null).contains("id")); - assertTrue(s0.get(null).contains("name")); - assertFalse(s0.get(null).contains("status")); - - PathProperties s1 = PathProperties.parse(":(id,name,shipAddr(*))"); - assertEquals(2,s1.getPaths().size()); - assertEquals(3,s1.get(null).size()); - assertTrue(s1.get(null).contains("id")); - assertTrue(s1.get(null).contains("name")); - assertTrue(s1.get(null).contains("shipAddr")); - assertTrue(s1.get("shipAddr").contains("*")); - assertEquals(1,s1.get("shipAddr").size()); + @Test + public void test() { + PathProperties s0 = PathProperties.parse("(id,name)"); + + Assert.assertEquals(1, s0.getPaths().size()); + Assert.assertTrue(s0.get(null).contains("id")); + Assert.assertTrue(s0.get(null).contains("name")); + Assert.assertFalse(s0.get(null).contains("status")); + + PathProperties s1 = PathProperties.parse(":(id,name,shipAddr(*))"); + Assert.assertEquals(2, s1.getPaths().size()); + Assert.assertEquals(3, s1.get(null).size()); + Assert.assertTrue(s1.get(null).contains("id")); + Assert.assertTrue(s1.get(null).contains("name")); + Assert.assertTrue(s1.get(null).contains("shipAddr")); + Assert.assertTrue(s1.get("shipAddr").contains("*")); + Assert.assertEquals(1, s1.get("shipAddr").size()); + + } - } - } diff --git a/src/test/java/com/avaje/ebeaninternal/server/cluster/mcast/TestMcastMemberPackets.java b/src/test/java/com/avaje/ebeaninternal/server/cluster/mcast/TestMcastMemberPackets.java index ad833189f..15355132c 100644 --- a/src/test/java/com/avaje/ebeaninternal/server/cluster/mcast/TestMcastMemberPackets.java +++ b/src/test/java/com/avaje/ebeaninternal/server/cluster/mcast/TestMcastMemberPackets.java @@ -2,57 +2,58 @@ package com.avaje.ebeaninternal.server.cluster.mcast; import java.util.List; -import junit.framework.TestCase; +import org.junit.Assert; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebeaninternal.server.cluster.mcast.IncomingPacketsProcessed.GotAllPoint; -public class TestMcastMemberPackets extends TestCase { +public class TestMcastMemberPackets extends BaseTestCase { - public void test() { - - GotAllPoint member = new GotAllPoint("129.12.23.12:9089",3); - - assertTrue(member.processPacket(1234)); - assertTrue(member.processPacket(1235)); - assertTrue(member.processPacket(1236)); - - assertEquals(1236l, member.getGotAllPoint()); - assertEquals(0, member.getMissingPackets().size()); - - assertFalse(member.processPacket(1234)); - - assertTrue(member.processPacket(1239)); - List missingPackets = member.getMissingPackets(); - assertEquals(2, missingPackets.size()); - - assertTrue(missingPackets.contains(1237l)); - assertTrue(missingPackets.contains(1238l)); - assertFalse(missingPackets.contains(1239l)); - assertFalse(missingPackets.contains(1236l)); + @Test + public void test() { - missingPackets = member.getMissingPackets(); - assertEquals(2, missingPackets.size()); - assertTrue(missingPackets.contains(1237l)); - assertTrue(missingPackets.contains(1238l)); + GotAllPoint member = new GotAllPoint("129.12.23.12:9089", 3); - assertEquals(1236l, member.getGotAllPoint()); - - // get a missing packet - assertTrue(member.processPacket(1237)); - assertEquals(1237l, member.getGotAllPoint()); - - missingPackets = member.getMissingPackets(); - assertEquals(1, missingPackets.size()); - assertTrue(missingPackets.contains(1238l)); + Assert.assertTrue(member.processPacket(1234)); + Assert.assertTrue(member.processPacket(1235)); + Assert.assertTrue(member.processPacket(1236)); + Assert.assertEquals(1236l, member.getGotAllPoint()); + Assert.assertEquals(0, member.getMissingPackets().size()); - // but we now hit maxResendIncoming - missingPackets = member.getMissingPackets(); - assertEquals(0, missingPackets.size()); - // gave up on 1238 .. - assertEquals(1239l, member.getGotAllPoint()); + Assert.assertFalse(member.processPacket(1234)); + + Assert.assertTrue(member.processPacket(1239)); + List missingPackets = member.getMissingPackets(); + Assert.assertEquals(2, missingPackets.size()); + + Assert.assertTrue(missingPackets.contains(1237l)); + Assert.assertTrue(missingPackets.contains(1238l)); + Assert.assertFalse(missingPackets.contains(1239l)); + Assert.assertFalse(missingPackets.contains(1236l)); + + missingPackets = member.getMissingPackets(); + Assert.assertEquals(2, missingPackets.size()); + Assert.assertTrue(missingPackets.contains(1237l)); + Assert.assertTrue(missingPackets.contains(1238l)); + + Assert.assertEquals(1236l, member.getGotAllPoint()); + + // get a missing packet + Assert.assertTrue(member.processPacket(1237)); + Assert.assertEquals(1237l, member.getGotAllPoint()); + + missingPackets = member.getMissingPackets(); + Assert.assertEquals(1, missingPackets.size()); + Assert.assertTrue(missingPackets.contains(1238l)); + + // but we now hit maxResendIncoming + missingPackets = member.getMissingPackets(); + Assert.assertEquals(0, missingPackets.size()); + // gave up on 1238 .. + Assert.assertEquals(1239l, member.getGotAllPoint()); + + } - - } - } diff --git a/src/test/java/com/avaje/ebeaninternal/server/cluster/mcast/TestPacketsAcked.java b/src/test/java/com/avaje/ebeaninternal/server/cluster/mcast/TestPacketsAcked.java index 011f70d04..7b886622e 100644 --- a/src/test/java/com/avaje/ebeaninternal/server/cluster/mcast/TestPacketsAcked.java +++ b/src/test/java/com/avaje/ebeaninternal/server/cluster/mcast/TestPacketsAcked.java @@ -1,28 +1,32 @@ package com.avaje.ebeaninternal.server.cluster.mcast; -import junit.framework.TestCase; +import org.junit.Assert; +import org.junit.Test; -public class TestPacketsAcked extends TestCase { +import com.avaje.ebean.BaseTestCase; - public void test() { - - OutgoingPacketsAcked packetsAcked = new OutgoingPacketsAcked(); - - assertEquals(0l,packetsAcked.getMinimumGotAllPacketId()); - - long receivedAck = packetsAcked.receivedAck("A", new MessageAck("A", 1020l)); - assertEquals(1020l,packetsAcked.getMinimumGotAllPacketId()); - assertEquals(1020l,receivedAck); +public class TestPacketsAcked extends BaseTestCase { - receivedAck = packetsAcked.receivedAck("B", new MessageAck("B", 1030l)); - assertEquals(1020l,packetsAcked.getMinimumGotAllPacketId()); - assertEquals(0l,receivedAck); + @Test + public void test() { - receivedAck = packetsAcked.receivedAck("C", new MessageAck("C", 1025l)); - assertEquals(0l,receivedAck); - - receivedAck = packetsAcked.receivedAck("A", new MessageAck("A", 1040l)); - assertEquals(1025l,receivedAck); + OutgoingPacketsAcked packetsAcked = new OutgoingPacketsAcked(); - } + Assert.assertEquals(0l, packetsAcked.getMinimumGotAllPacketId()); + + long receivedAck = packetsAcked.receivedAck("A", new MessageAck("A", 1020l)); + Assert.assertEquals(1020l, packetsAcked.getMinimumGotAllPacketId()); + Assert.assertEquals(1020l, receivedAck); + + receivedAck = packetsAcked.receivedAck("B", new MessageAck("B", 1030l)); + Assert.assertEquals(1020l, packetsAcked.getMinimumGotAllPacketId()); + Assert.assertEquals(0l, receivedAck); + + receivedAck = packetsAcked.receivedAck("C", new MessageAck("C", 1025l)); + Assert.assertEquals(0l, receivedAck); + + receivedAck = packetsAcked.receivedAck("A", new MessageAck("A", 1040l)); + Assert.assertEquals(1025l, receivedAck); + + } } diff --git a/src/test/java/com/avaje/ebeaninternal/server/lib/sql/TestBusyBuffer.java b/src/test/java/com/avaje/ebeaninternal/server/lib/sql/TestBusyBuffer.java index abc189992..d1bd7e870 100644 --- a/src/test/java/com/avaje/ebeaninternal/server/lib/sql/TestBusyBuffer.java +++ b/src/test/java/com/avaje/ebeaninternal/server/lib/sql/TestBusyBuffer.java @@ -1,88 +1,88 @@ package com.avaje.ebeaninternal.server.lib.sql; -import junit.framework.TestCase; - import org.junit.Assert; +import org.junit.Test; -public class TestBusyBuffer extends TestCase { +import com.avaje.ebean.BaseTestCase; - public void test() { - - BusyConnectionBuffer b = new BusyConnectionBuffer(2,4); - - PooledConnection p0 = new PooledConnection("0"); - PooledConnection p1 = new PooledConnection("1"); - PooledConnection p2 = new PooledConnection("2"); - PooledConnection p3 = new PooledConnection("3"); - - Assert.assertEquals(2, b.getCapacity()); - b.add(p0); - b.add(p1); - Assert.assertEquals(2, b.getCapacity()); - b.add(p2); - Assert.assertEquals(6, b.getCapacity()); - b.add(p3); - - Assert.assertEquals(0, p0.getSlotId()); - Assert.assertEquals(1, p1.getSlotId()); - Assert.assertEquals(2, p2.getSlotId()); - Assert.assertEquals(3, p3.getSlotId()); +public class TestBusyBuffer extends BaseTestCase { - b.remove(p2); - b.add(p2); - Assert.assertEquals(4, p2.getSlotId()); + @Test + public void test() { - b.remove(p0); - b.add(p0); - Assert.assertEquals(5, p0.getSlotId()); + BusyConnectionBuffer b = new BusyConnectionBuffer(2, 4); - b.remove(p2); - b.add(p2); - Assert.assertEquals(0, p2.getSlotId()); + PooledConnection p0 = new PooledConnection("0"); + PooledConnection p1 = new PooledConnection("1"); + PooledConnection p2 = new PooledConnection("2"); + PooledConnection p3 = new PooledConnection("3"); - } - - - public void test_rotate() { - - BusyConnectionBuffer b = new BusyConnectionBuffer(2,2); - - PooledConnection p0 = new PooledConnection("0"); - PooledConnection p1 = new PooledConnection("1"); - PooledConnection p2 = new PooledConnection("2"); - PooledConnection p3 = new PooledConnection("3"); + Assert.assertEquals(2, b.getCapacity()); + b.add(p0); + b.add(p1); + Assert.assertEquals(2, b.getCapacity()); + b.add(p2); + Assert.assertEquals(6, b.getCapacity()); + b.add(p3); - Assert.assertEquals(2, b.getCapacity()); + Assert.assertEquals(0, p0.getSlotId()); + Assert.assertEquals(1, p1.getSlotId()); + Assert.assertEquals(2, p2.getSlotId()); + Assert.assertEquals(3, p3.getSlotId()); - b.add(p0); - b.add(p1); - Assert.assertEquals(2, b.getCapacity()); - b.add(p2); - Assert.assertEquals(4, b.getCapacity()); - b.add(p3); - Assert.assertEquals(4, b.getCapacity()); + b.remove(p2); + b.add(p2); + Assert.assertEquals(4, p2.getSlotId()); - Assert.assertEquals(0, p0.getSlotId()); - Assert.assertEquals(1, p1.getSlotId()); - Assert.assertEquals(2, p2.getSlotId()); - Assert.assertEquals(3, p3.getSlotId()); + b.remove(p0); + b.add(p0); + Assert.assertEquals(5, p0.getSlotId()); - - b.remove(p2); - b.remove(p0); - b.remove(p3); - b.add(p2); - Assert.assertEquals(0, p2.getSlotId()); + b.remove(p2); + b.add(p2); + Assert.assertEquals(0, p2.getSlotId()); - b.remove(p0); - b.add(p0); - // p1 is still in it's slot - Assert.assertEquals(2, p0.getSlotId()); + } - b.remove(p2); - b.add(p2); - Assert.assertEquals(3, p2.getSlotId()); + public void test_rotate() { + + BusyConnectionBuffer b = new BusyConnectionBuffer(2, 2); + + PooledConnection p0 = new PooledConnection("0"); + PooledConnection p1 = new PooledConnection("1"); + PooledConnection p2 = new PooledConnection("2"); + PooledConnection p3 = new PooledConnection("3"); + + Assert.assertEquals(2, b.getCapacity()); + + b.add(p0); + b.add(p1); + Assert.assertEquals(2, b.getCapacity()); + b.add(p2); + Assert.assertEquals(4, b.getCapacity()); + b.add(p3); + Assert.assertEquals(4, b.getCapacity()); + + Assert.assertEquals(0, p0.getSlotId()); + Assert.assertEquals(1, p1.getSlotId()); + Assert.assertEquals(2, p2.getSlotId()); + Assert.assertEquals(3, p3.getSlotId()); + + b.remove(p2); + b.remove(p0); + b.remove(p3); + b.add(p2); + Assert.assertEquals(0, p2.getSlotId()); + + b.remove(p0); + b.add(p0); + // p1 is still in it's slot + Assert.assertEquals(2, p0.getSlotId()); + + b.remove(p2); + b.add(p2); + Assert.assertEquals(3, p2.getSlotId()); + + } - } - } diff --git a/src/test/java/com/avaje/ebeaninternal/server/lib/sql/TestDataSourceMax.java b/src/test/java/com/avaje/ebeaninternal/server/lib/sql/TestDataSourceMax.java index 8446183e8..cd3ee4b7f 100644 --- a/src/test/java/com/avaje/ebeaninternal/server/lib/sql/TestDataSourceMax.java +++ b/src/test/java/com/avaje/ebeaninternal/server/lib/sql/TestDataSourceMax.java @@ -2,84 +2,83 @@ package com.avaje.ebeaninternal.server.lib.sql; import java.sql.Connection; -import junit.framework.TestCase; - import org.junit.Assert; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.config.DataSourceConfig; import com.avaje.ebeaninternal.server.core.DefaultBackgroundExecutor; import com.avaje.ebeaninternal.server.lib.sql.DataSourcePool.Status; -public class TestDataSourceMax extends TestCase { +public class TestDataSourceMax extends BaseTestCase { - public void test() { - - boolean runThisManuallyNow = true; - - if (!runThisManuallyNow){ - return; - } - - String name = "h2"; - - DataSourceConfig dsConfig = new DataSourceConfig(); - dsConfig.loadSettings(name); - dsConfig.setMinConnections(3); - dsConfig.setMaxConnections(3); - dsConfig.setWaitTimeoutMillis(30000); + @Test + public void test() { - DataSourcePool pool = new DataSourcePool(null, name, dsConfig); + boolean runThisManuallyNow = true; - Assert.assertEquals(3, pool.getMaxSize()); - - DefaultBackgroundExecutor bg = new DefaultBackgroundExecutor(10, 2, 180, 30, "testDs"); - - try { - for (int i = 0; i < 12; i++) { - //Thread.sleep(10*i); - bg.execute(new ConnRunner(pool, 100)); - } - - System.out.println("main thread sleep ... "+pool.getStatus(false)); - - Thread.sleep(1000); - Status status = pool.getStatus(false); - System.out.println(status); - - // this dumpOrder was for 3 vectors used in PooledConnectionQueue - // that logged the order of wait, notify and obtain events - // I have remove that code. - -// String s = pool.dumpOrder(); -// System.err.println(s); - - - } catch (Exception e) { - e.printStackTrace(); - } - - + if (!runThisManuallyNow) { + return; } - - private static class ConnRunner implements Runnable { - - final DataSourcePool pool; - final long sleepMillis; - - ConnRunner(DataSourcePool pool, long sleepMillis) { - this.pool = pool; - this.sleepMillis = sleepMillis; - } - - public void run() { - try { - Connection connection = pool.getConnection(); - Thread.sleep(sleepMillis); - connection.close(); - } catch (Exception e){ - e.printStackTrace(); - } - } - + + String name = "h2"; + + DataSourceConfig dsConfig = new DataSourceConfig(); + dsConfig.loadSettings(name); + dsConfig.setMinConnections(3); + dsConfig.setMaxConnections(3); + dsConfig.setWaitTimeoutMillis(30000); + + DataSourcePool pool = new DataSourcePool(null, name, dsConfig); + + Assert.assertEquals(3, pool.getMaxSize()); + + DefaultBackgroundExecutor bg = new DefaultBackgroundExecutor(10, 2, 180, 30, "testDs"); + + try { + for (int i = 0; i < 12; i++) { + // Thread.sleep(10*i); + bg.execute(new ConnRunner(pool, 100)); + } + + System.out.println("main thread sleep ... " + pool.getStatus(false)); + + Thread.sleep(1000); + Status status = pool.getStatus(false); + System.out.println(status); + + // this dumpOrder was for 3 vectors used in PooledConnectionQueue + // that logged the order of wait, notify and obtain events + // I have remove that code. + + // String s = pool.dumpOrder(); + // System.err.println(s); + + } catch (Exception e) { + e.printStackTrace(); } + + } + + private static class ConnRunner implements Runnable { + + final DataSourcePool pool; + final long sleepMillis; + + ConnRunner(DataSourcePool pool, long sleepMillis) { + this.pool = pool; + this.sleepMillis = sleepMillis; + } + + public void run() { + try { + Connection connection = pool.getConnection(); + Thread.sleep(sleepMillis); + connection.close(); + } catch (Exception e) { + e.printStackTrace(); + } + } + + } } diff --git a/src/test/java/com/avaje/ebeaninternal/server/lib/sql/TestFreeBuffer.java b/src/test/java/com/avaje/ebeaninternal/server/lib/sql/TestFreeBuffer.java index 07aa8e13a..de3a451b1 100644 --- a/src/test/java/com/avaje/ebeaninternal/server/lib/sql/TestFreeBuffer.java +++ b/src/test/java/com/avaje/ebeaninternal/server/lib/sql/TestFreeBuffer.java @@ -1,73 +1,75 @@ package com.avaje.ebeaninternal.server.lib.sql; -import junit.framework.TestCase; - import org.junit.Assert; +import org.junit.Test; -public class TestFreeBuffer extends TestCase { +import com.avaje.ebean.BaseTestCase; - public void test() { - - FreeConnectionBuffer b = new FreeConnectionBuffer(3); - - PooledConnection p0 = new PooledConnection("0"); - PooledConnection p1 = new PooledConnection("1"); - PooledConnection p2 = new PooledConnection("2"); - //PooledConnection p3 = new PooledConnection("3"); +public class TestFreeBuffer extends BaseTestCase { - Assert.assertEquals(3, b.getCapacity()); - Assert.assertEquals(0, b.size()); - Assert.assertEquals(true, b.isEmpty()); - - b.add(p0); + @Test + public void test() { - Assert.assertEquals(1, b.size()); - Assert.assertEquals(false, b.isEmpty()); + FreeConnectionBuffer b = new FreeConnectionBuffer(3); - PooledConnection r0 = b.remove(); - Assert.assertTrue(p0 == r0); - - Assert.assertEquals(0, b.size()); - Assert.assertEquals(true, b.isEmpty()); + PooledConnection p0 = new PooledConnection("0"); + PooledConnection p1 = new PooledConnection("1"); + PooledConnection p2 = new PooledConnection("2"); + // PooledConnection p3 = new PooledConnection("3"); - b.add(p0); - b.add(p1); - b.add(p2); + Assert.assertEquals(3, b.getCapacity()); + Assert.assertEquals(0, b.size()); + Assert.assertEquals(true, b.isEmpty()); - Assert.assertEquals(3, b.size()); + b.add(p0); - PooledConnection r1 = b.remove(); - Assert.assertTrue(p0 == r1); - PooledConnection r2 = b.remove(); - Assert.assertTrue(p1 == r2); + Assert.assertEquals(1, b.size()); + Assert.assertEquals(false, b.isEmpty()); - Assert.assertEquals(1, b.size()); - b.add(p0); - Assert.assertEquals(2, b.size()); - PooledConnection r3 = b.remove(); - Assert.assertTrue(p2 == r3); - Assert.assertEquals(1, b.size()); - PooledConnection r4 = b.remove(); - Assert.assertTrue(p0 == r4); - Assert.assertEquals(0, b.size()); + PooledConnection r0 = b.remove(); + Assert.assertTrue(p0 == r0); - b.add(p2); - b.add(p1); - b.add(p0); + Assert.assertEquals(0, b.size()); + Assert.assertEquals(true, b.isEmpty()); - Assert.assertEquals(3, b.size()); + b.add(p0); + b.add(p1); + b.add(p2); - PooledConnection r5 = b.remove(); - Assert.assertTrue(p2 == r5); - Assert.assertEquals(2, b.size()); - - PooledConnection r6 = b.remove(); - Assert.assertTrue(p1 == r6); - Assert.assertEquals(1, b.size()); - - PooledConnection r7 = b.remove(); - Assert.assertTrue(p0 == r7); - Assert.assertEquals(0, b.size()); + Assert.assertEquals(3, b.size()); - } + PooledConnection r1 = b.remove(); + Assert.assertTrue(p0 == r1); + PooledConnection r2 = b.remove(); + Assert.assertTrue(p1 == r2); + + Assert.assertEquals(1, b.size()); + b.add(p0); + Assert.assertEquals(2, b.size()); + PooledConnection r3 = b.remove(); + Assert.assertTrue(p2 == r3); + Assert.assertEquals(1, b.size()); + PooledConnection r4 = b.remove(); + Assert.assertTrue(p0 == r4); + Assert.assertEquals(0, b.size()); + + b.add(p2); + b.add(p1); + b.add(p0); + + Assert.assertEquals(3, b.size()); + + PooledConnection r5 = b.remove(); + Assert.assertTrue(p2 == r5); + Assert.assertEquals(2, b.size()); + + PooledConnection r6 = b.remove(); + Assert.assertTrue(p1 == r6); + Assert.assertEquals(1, b.size()); + + PooledConnection r7 = b.remove(); + Assert.assertTrue(p0 == r7); + Assert.assertEquals(0, b.size()); + + } } diff --git a/src/test/java/com/avaje/ebeaninternal/server/loadcontext/TestDLoadWeakList.java b/src/test/java/com/avaje/ebeaninternal/server/loadcontext/TestDLoadWeakList.java index 1d63f08ad..01a749bb5 100644 --- a/src/test/java/com/avaje/ebeaninternal/server/loadcontext/TestDLoadWeakList.java +++ b/src/test/java/com/avaje/ebeaninternal/server/loadcontext/TestDLoadWeakList.java @@ -2,78 +2,79 @@ package com.avaje.ebeaninternal.server.loadcontext; import java.util.List; -import junit.framework.TestCase; - import org.junit.Assert; +import org.junit.Test; -public class TestDLoadWeakList extends TestCase { +import com.avaje.ebean.BaseTestCase; - - public void test() { - - String s0 = new String("zero"); - String s1 = new String("one"); - String s2 = new String("two"); - String s3 = new String("three"); - String s4 = new String("four"); - String s5 = new String("five"); - String s6 = new String("six"); - String s7 = new String("seven"); - String s8 = new String("eight"); - String s9 = new String("nine"); - String s10 = new String("ten"); - - DLoadWeakList list = new DLoadWeakList(); - - list.add(s0); - list.add(s1); - list.add(s2); - list.add(s3); - list.add(s4); - list.add(s5); - list.add(s6); - list.add(s7); - list.add(s8); - list.add(s9); - list.add(s10); - - Assert.assertEquals(11, list.list.size()); - - System.gc(); - - try { - Thread.sleep(300); - } catch (InterruptedException e) { - e.printStackTrace(); - } - // this is really only a HINT, so no guarantee - // .. but the SUN JVM does do the business - System.gc(); - - Assert.assertEquals(11, list.list.size()); +public class TestDLoadWeakList extends BaseTestCase { - List b0 = list.getLoadBatch(0, 2); - Assert.assertEquals(2, b0.size()); - Assert.assertEquals("zero", b0.get(0)); - Assert.assertEquals("one", b0.get(1)); + @Test + public void test() { - try { - b0 = list.getLoadBatch(0, 2); - Assert.assertTrue(false); - } catch (IllegalStateException e){ - Assert.assertTrue(true); - } - b0 = list.getNextBatch(2); - Assert.assertEquals(2, b0.size()); - Assert.assertEquals("two", b0.get(0)); - Assert.assertEquals("three", b0.get(1)); + String s0 = new String("zero"); + String s1 = new String("one"); + String s2 = new String("two"); + String s3 = new String("three"); + String s4 = new String("four"); + String s5 = new String("five"); + String s6 = new String("six"); + String s7 = new String("seven"); + String s8 = new String("eight"); + String s9 = new String("nine"); + String s10 = new String("ten"); - list.removeEntry(1); - - b0 = list.getLoadBatch(7, 2); - Assert.assertEquals(2, b0.size()); - Assert.assertEquals("seven", b0.get(0)); - Assert.assertEquals("eight", b0.get(1)); + DLoadWeakList list = new DLoadWeakList(); - } + list.add(s0); + list.add(s1); + list.add(s2); + list.add(s3); + list.add(s4); + list.add(s5); + list.add(s6); + list.add(s7); + list.add(s8); + list.add(s9); + list.add(s10); + + Assert.assertEquals(11, list.list.size()); + + System.gc(); + + try { + Thread.sleep(300); + } catch (InterruptedException e) { + e.printStackTrace(); + } + // this is really only a HINT, so no guarantee + // .. but the SUN JVM does do the business + System.gc(); + + Assert.assertEquals(11, list.list.size()); + + List b0 = list.getLoadBatch(0, 2); + Assert.assertEquals(2, b0.size()); + Assert.assertEquals("zero", b0.get(0)); + Assert.assertEquals("one", b0.get(1)); + + try { + b0 = list.getLoadBatch(0, 2); + Assert.assertTrue(false); + } catch (IllegalStateException e) { + Assert.assertTrue(true); + } + b0 = list.getNextBatch(2); + Assert.assertEquals(2, b0.size()); + Assert.assertEquals("two", b0.get(0)); + Assert.assertEquals("three", b0.get(1)); + + list.removeEntry(1); + + b0 = list.getLoadBatch(7, 2); + Assert.assertEquals(2, b0.size()); + Assert.assertEquals("seven", b0.get(0)); + Assert.assertEquals("eight", b0.get(1)); + + } } diff --git a/src/test/java/com/avaje/ebeaninternal/server/loadcontext/TestDLoadWeakListWithGC.java b/src/test/java/com/avaje/ebeaninternal/server/loadcontext/TestDLoadWeakListWithGC.java index e682e768a..59df38066 100644 --- a/src/test/java/com/avaje/ebeaninternal/server/loadcontext/TestDLoadWeakListWithGC.java +++ b/src/test/java/com/avaje/ebeaninternal/server/loadcontext/TestDLoadWeakListWithGC.java @@ -3,105 +3,106 @@ package com.avaje.ebeaninternal.server.loadcontext; import java.lang.ref.WeakReference; import java.util.List; -import junit.framework.TestCase; - import org.junit.Assert; +import org.junit.Test; -public class TestDLoadWeakListWithGC extends TestCase { +import com.avaje.ebean.BaseTestCase; - - private void doStuffInMethodScope(DLoadWeakList list) { - String s5 = new String("five"); - String s6 = new String("six"); - String s7 = new String("seven"); - String s8 = new String("eight"); - String s9 = new String("nine"); - String s10 = new String("ten"); - - list.add(s5); - list.add(s6); - list.add(s7); - list.add(s8); - list.add(s9); - list.add(s10); - } - - public void test() { - - String s0 = new String("zero"); - String s1 = new String("one"); - String s2 = new String("two"); - String s3 = new String("three"); - String s4 = new String("four"); - - DLoadWeakList list = new DLoadWeakList(); - - list.add(s0); - list.add(s1); - list.add(s2); - list.add(s3); - list.add(s4); - - int initialSize = list.list.size(); - - doStuffInMethodScope(list); - Assert.assertEquals(11, list.list.size()); - - System.gc(); - - try { - Thread.sleep(300); - } catch (InterruptedException e) { - e.printStackTrace(); - } - // this is really only a HINT, so no guarantee - // .. but the SUN JVM does do the business - System.gc(); - - Assert.assertEquals(11, list.list.size()); - - // these weak refs are still good as we still - // have a hard reference to the objects in scope - for (int i = 0; i < initialSize; i++) { - WeakReference weakReference = list.list.get(i); - Assert.assertNotNull(weakReference); - Assert.assertNotNull(weakReference.get()); - } +public class TestDLoadWeakListWithGC extends BaseTestCase { - // these weak refs are all null as we don't have - // hard refs to the objects in scope ... and it just - // so happens the System.gc() in sun jvm is aggressive here. - for (int i = initialSize; i < list.list.size(); i++) { - WeakReference weakReference = list.list.get(i); - Assert.assertNotNull(weakReference); - Assert.assertNull(weakReference.get()); - } + private void doStuffInMethodScope(DLoadWeakList list) { + String s5 = new String("five"); + String s6 = new String("six"); + String s7 = new String("seven"); + String s8 = new String("eight"); + String s9 = new String("nine"); + String s10 = new String("ten"); - List b0 = list.getLoadBatch(0, 2); - Assert.assertEquals(2, b0.size()); - Assert.assertEquals("zero", b0.get(0)); - Assert.assertEquals("one", b0.get(1)); + list.add(s5); + list.add(s6); + list.add(s7); + list.add(s8); + list.add(s9); + list.add(s10); + } - try { - b0 = list.getLoadBatch(0, 2); - Assert.assertTrue(false); - } catch (IllegalStateException e){ - Assert.assertTrue(true); - } - b0 = list.getNextBatch(2); - Assert.assertEquals(2, b0.size()); - Assert.assertEquals("two", b0.get(0)); - Assert.assertEquals("three", b0.get(1)); + @Test + public void test() { - list.removeEntry(1); + String s0 = new String("zero"); + String s1 = new String("one"); + String s2 = new String("two"); + String s3 = new String("three"); + String s4 = new String("four"); - try { - // past the gc blown area - b0 = list.getLoadBatch(7, 2); - Assert.assertTrue(false); - } catch (IllegalStateException e){ - Assert.assertTrue(true); - } + DLoadWeakList list = new DLoadWeakList(); - } + list.add(s0); + list.add(s1); + list.add(s2); + list.add(s3); + list.add(s4); + + int initialSize = list.list.size(); + + doStuffInMethodScope(list); + Assert.assertEquals(11, list.list.size()); + + System.gc(); + + try { + Thread.sleep(300); + } catch (InterruptedException e) { + e.printStackTrace(); + } + // this is really only a HINT, so no guarantee + // .. but the SUN JVM does do the business + System.gc(); + + Assert.assertEquals(11, list.list.size()); + + // these weak refs are still good as we still + // have a hard reference to the objects in scope + for (int i = 0; i < initialSize; i++) { + WeakReference weakReference = list.list.get(i); + Assert.assertNotNull(weakReference); + Assert.assertNotNull(weakReference.get()); + } + + // these weak refs are all null as we don't have + // hard refs to the objects in scope ... and it just + // so happens the System.gc() in sun jvm is aggressive here. + for (int i = initialSize; i < list.list.size(); i++) { + WeakReference weakReference = list.list.get(i); + Assert.assertNotNull(weakReference); + Assert.assertNull(weakReference.get()); + } + + List b0 = list.getLoadBatch(0, 2); + Assert.assertEquals(2, b0.size()); + Assert.assertEquals("zero", b0.get(0)); + Assert.assertEquals("one", b0.get(1)); + + try { + b0 = list.getLoadBatch(0, 2); + Assert.assertTrue(false); + } catch (IllegalStateException e) { + Assert.assertTrue(true); + } + b0 = list.getNextBatch(2); + Assert.assertEquals(2, b0.size()); + Assert.assertEquals("two", b0.get(0)); + Assert.assertEquals("three", b0.get(1)); + + list.removeEntry(1); + + try { + // past the gc blown area + b0 = list.getLoadBatch(7, 2); + Assert.assertTrue(false); + } catch (IllegalStateException e) { + Assert.assertTrue(true); + } + + } } diff --git a/src/test/java/com/avaje/ebeaninternal/server/querydefn/TestQueryLanguage.java b/src/test/java/com/avaje/ebeaninternal/server/querydefn/TestQueryLanguage.java index 54586fccf..abad84114 100644 --- a/src/test/java/com/avaje/ebeaninternal/server/querydefn/TestQueryLanguage.java +++ b/src/test/java/com/avaje/ebeaninternal/server/querydefn/TestQueryLanguage.java @@ -10,85 +10,84 @@ import com.avaje.ebean.EbeanServer; import com.avaje.ebeaninternal.server.expression.DefaultExpressionFactory; import com.avaje.tests.model.basic.Order; - public class TestQueryLanguage extends TestCase { - public void test() { - - - DefaultOrmQuery q = check("find order join customer (id, name)"); - OrmQueryDetail detail = q.getDetail(); - OrmQueryProperties chunk = detail.getChunk("customer", false); - Set props = chunk.getAllIncludedProperties(); - - Assert.assertTrue(props.contains("id")); - Assert.assertTrue(props.contains("name")); - - q = check("find order join customer(id, name)"); - detail = q.getDetail(); - chunk = detail.getChunk("customer", false); - props = chunk.getAllIncludedProperties(); - - Assert.assertTrue(props.contains("id")); - Assert.assertTrue(props.contains("name")); - Assert.assertFalse(chunk.isCache()); - Assert.assertFalse(chunk.isReadOnly()); + public void test() { - q = check("find order join customer(+cache +readonly, id, name)"); - detail = q.getDetail(); - chunk = detail.getChunk("customer", false); - props = chunk.getAllIncludedProperties(); - Assert.assertTrue(props.contains("id")); - Assert.assertTrue(props.contains("name")); - Assert.assertTrue(chunk.isCache()); - Assert.assertTrue(chunk.isReadOnly()); + DefaultOrmQuery q = check("find order join customer (id, name)"); + OrmQueryDetail detail = q.getDetail(); + OrmQueryProperties chunk = detail.getChunk("customer", false); + Set props = chunk.getAllIncludedProperties(); - q = check("find order join customer(+cache +readonly,id,name)"); - detail = q.getDetail(); - chunk = detail.getChunk("customer", false); - props = chunk.getAllIncludedProperties(); - Assert.assertTrue(props.contains("id")); - Assert.assertTrue(props.contains("name")); - Assert.assertTrue(chunk.isCache()); - Assert.assertTrue(chunk.isReadOnly()); + Assert.assertTrue(props.contains("id")); + Assert.assertTrue(props.contains("name")); - q = check("find order(id,status) join customer(+cache +readonly,id,name)"); - detail = q.getDetail(); - chunk = detail.getChunk("customer", false); - props = chunk.getAllIncludedProperties(); - Assert.assertTrue(props.contains("id")); - Assert.assertTrue(props.contains("name")); - Assert.assertTrue(chunk.isCache()); - Assert.assertTrue(chunk.isReadOnly()); + q = check("find order join customer(id, name)"); + detail = q.getDetail(); + chunk = detail.getChunk("customer", false); + props = chunk.getAllIncludedProperties(); - chunk = detail.getChunk(null, false); - props = chunk.getAllIncludedProperties(); - Assert.assertTrue(props.contains("id")); - Assert.assertTrue(props.contains("status")); - Assert.assertFalse(props.contains("orderDate")); - - q = check("find order(id,status) join customer(+cache +readonly,id,name) where id > :minId order by status"); - detail = q.getDetail(); - chunk = detail.getChunk("customer", false); - props = chunk.getAllIncludedProperties(); - Assert.assertTrue(props.contains("id")); - Assert.assertTrue(props.contains("name")); - Assert.assertTrue(chunk.isCache()); - Assert.assertTrue(chunk.isReadOnly()); - - String orderBy = q.getOrderBy().toStringFormat(); - Assert.assertEquals("status", orderBy); - } - - private DefaultOrmQuery check(String q) { + Assert.assertTrue(props.contains("id")); + Assert.assertTrue(props.contains("name")); + Assert.assertFalse(chunk.isCache()); + Assert.assertFalse(chunk.isReadOnly()); - EbeanServer server = Ebean.getServer(null); + q = check("find order join customer(+cache +readonly, id, name)"); + detail = q.getDetail(); + chunk = detail.getChunk("customer", false); + props = chunk.getAllIncludedProperties(); + Assert.assertTrue(props.contains("id")); + Assert.assertTrue(props.contains("name")); + Assert.assertTrue(chunk.isCache()); + Assert.assertTrue(chunk.isReadOnly()); - OrmQueryDetailParser p = new OrmQueryDetailParser(q); - p.parse(); - DefaultOrmQuery qry = new DefaultOrmQuery(Order.class, server, new DefaultExpressionFactory(), (String)null); - p.assign(qry); + q = check("find order join customer(+cache +readonly,id,name)"); + detail = q.getDetail(); + chunk = detail.getChunk("customer", false); + props = chunk.getAllIncludedProperties(); + Assert.assertTrue(props.contains("id")); + Assert.assertTrue(props.contains("name")); + Assert.assertTrue(chunk.isCache()); + Assert.assertTrue(chunk.isReadOnly()); - return qry; - } + q = check("find order(id,status) join customer(+cache +readonly,id,name)"); + detail = q.getDetail(); + chunk = detail.getChunk("customer", false); + props = chunk.getAllIncludedProperties(); + Assert.assertTrue(props.contains("id")); + Assert.assertTrue(props.contains("name")); + Assert.assertTrue(chunk.isCache()); + Assert.assertTrue(chunk.isReadOnly()); + + chunk = detail.getChunk(null, false); + props = chunk.getAllIncludedProperties(); + Assert.assertTrue(props.contains("id")); + Assert.assertTrue(props.contains("status")); + Assert.assertFalse(props.contains("orderDate")); + + q = check("find order(id,status) join customer(+cache +readonly,id,name) where id > :minId order by status"); + detail = q.getDetail(); + chunk = detail.getChunk("customer", false); + props = chunk.getAllIncludedProperties(); + Assert.assertTrue(props.contains("id")); + Assert.assertTrue(props.contains("name")); + Assert.assertTrue(chunk.isCache()); + Assert.assertTrue(chunk.isReadOnly()); + + String orderBy = q.getOrderBy().toStringFormat(); + Assert.assertEquals("status", orderBy); + } + + private DefaultOrmQuery check(String q) { + + EbeanServer server = Ebean.getServer(null); + + OrmQueryDetailParser p = new OrmQueryDetailParser(q); + p.parse(); + DefaultOrmQuery qry = new DefaultOrmQuery(Order.class, server, + new DefaultExpressionFactory(), (String) null); + p.assign(qry); + + return qry; + } } diff --git a/src/test/java/com/avaje/tests/basic/TestAssocOneEqExpression.java b/src/test/java/com/avaje/tests/basic/TestAssocOneEqExpression.java index ddc70348c..3fb67f0aa 100644 --- a/src/test/java/com/avaje/tests/basic/TestAssocOneEqExpression.java +++ b/src/test/java/com/avaje/tests/basic/TestAssocOneEqExpression.java @@ -1,8 +1,10 @@ package com.avaje.tests.basic; import junit.framework.Assert; -import junit.framework.TestCase; +import org.junit.Test; + +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.Query; import com.avaje.tests.model.basic.Address; @@ -10,8 +12,9 @@ import com.avaje.tests.model.basic.Customer; import com.avaje.tests.model.basic.Order; import com.avaje.tests.model.basic.ResetBasicData; -public class TestAssocOneEqExpression extends TestCase { +public class TestAssocOneEqExpression extends BaseTestCase { + @Test public void test() { ResetBasicData.reset(); diff --git a/src/test/java/com/avaje/tests/basic/TestBackgroundFetchAfter.java b/src/test/java/com/avaje/tests/basic/TestBackgroundFetchAfter.java index ec9b61a83..0260f978d 100644 --- a/src/test/java/com/avaje/tests/basic/TestBackgroundFetchAfter.java +++ b/src/test/java/com/avaje/tests/basic/TestBackgroundFetchAfter.java @@ -1,16 +1,19 @@ package com.avaje.tests.basic; import junit.framework.Assert; -import junit.framework.TestCase; +import org.junit.Test; + +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.Query; import com.avaje.ebeaninternal.api.SpiEbeanServer; import com.avaje.tests.model.basic.Order; import com.avaje.tests.model.basic.ResetBasicData; -public class TestBackgroundFetchAfter extends TestCase { +public class TestBackgroundFetchAfter extends BaseTestCase { + @Test public void testWrtJoin() { ResetBasicData.reset(); diff --git a/src/test/java/com/avaje/tests/basic/TestBatchLazy.java b/src/test/java/com/avaje/tests/basic/TestBatchLazy.java index f672789b8..607d0c4cb 100644 --- a/src/test/java/com/avaje/tests/basic/TestBatchLazy.java +++ b/src/test/java/com/avaje/tests/basic/TestBatchLazy.java @@ -2,9 +2,10 @@ package com.avaje.tests.basic; import java.util.List; -import junit.framework.TestCase; +import org.junit.Test; import com.avaje.ebean.AdminAutofetch; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.Query; import com.avaje.tests.model.basic.Customer; @@ -12,8 +13,9 @@ import com.avaje.tests.model.basic.Order; import com.avaje.tests.model.basic.OrderDetail; import com.avaje.tests.model.basic.ResetBasicData; -public class TestBatchLazy extends TestCase { +public class TestBatchLazy extends BaseTestCase { + @Test public void testMe() { ResetBasicData.reset(); diff --git a/src/test/java/com/avaje/tests/basic/TestBatchLazyMany.java b/src/test/java/com/avaje/tests/basic/TestBatchLazyMany.java index 8a7583d66..754486f52 100644 --- a/src/test/java/com/avaje/tests/basic/TestBatchLazyMany.java +++ b/src/test/java/com/avaje/tests/basic/TestBatchLazyMany.java @@ -1,14 +1,15 @@ package com.avaje.tests.basic; -import junit.framework.TestCase; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.tests.model.basic.Order; import com.avaje.tests.model.basic.ResetBasicData; -public class TestBatchLazyMany extends TestCase { +public class TestBatchLazyMany extends BaseTestCase { - + @Test public void testMe() { ResetBasicData.reset(); diff --git a/src/test/java/com/avaje/tests/basic/TestBeanReferenceRefresh.java b/src/test/java/com/avaje/tests/basic/TestBeanReferenceRefresh.java index 4eb977f2f..8e730ad88 100644 --- a/src/test/java/com/avaje/tests/basic/TestBeanReferenceRefresh.java +++ b/src/test/java/com/avaje/tests/basic/TestBeanReferenceRefresh.java @@ -1,16 +1,18 @@ package com.avaje.tests.basic; import junit.framework.Assert; -import junit.framework.TestCase; +import org.junit.Test; + +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.tests.model.basic.Order; import com.avaje.tests.model.basic.Order.Status; import com.avaje.tests.model.basic.ResetBasicData; -public class TestBeanReferenceRefresh extends TestCase { +public class TestBeanReferenceRefresh extends BaseTestCase { - + @Test public void testMe() { ResetBasicData.reset(); diff --git a/src/test/java/com/avaje/tests/basic/TestDeleteByIdCollection.java b/src/test/java/com/avaje/tests/basic/TestDeleteByIdCollection.java index 3416d080d..2b029e45f 100644 --- a/src/test/java/com/avaje/tests/basic/TestDeleteByIdCollection.java +++ b/src/test/java/com/avaje/tests/basic/TestDeleteByIdCollection.java @@ -3,15 +3,18 @@ package com.avaje.tests.basic; import java.util.ArrayList; import java.util.List; -import junit.framework.TestCase; +import org.junit.Assert; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.tests.model.basic.Customer; import com.avaje.tests.model.basic.Order; import com.avaje.tests.model.basic.ResetBasicData; -public class TestDeleteByIdCollection extends TestCase { +public class TestDeleteByIdCollection extends BaseTestCase { + @Test public void test() { ResetBasicData.reset(); @@ -25,8 +28,8 @@ public class TestDeleteByIdCollection extends TestCase { Customer c0Back = Ebean.find(Customer.class, c0.getId()); Customer c1Back = Ebean.find(Customer.class, ""+c1.getId()); - assertNotNull(c0Back); - assertNotNull(c1Back); + Assert.assertNotNull(c0Back); + Assert.assertNotNull(c1Back); List ids = new ArrayList(); // also test id type conversion @@ -39,8 +42,8 @@ public class TestDeleteByIdCollection extends TestCase { c0Back = Ebean.find(Customer.class, c0.getId()); c1Back = Ebean.find(Customer.class, ""+c1.getId()); - assertNull(c0Back); - assertNull(c1Back); + Assert.assertNull(c0Back); + Assert.assertNull(c1Back); } public void testDelByStatement() { @@ -53,8 +56,8 @@ public class TestDeleteByIdCollection extends TestCase { Order o0Back = Ebean.find(Order.class, order0.getId()); Order o1Back = Ebean.find(Order.class, order1.getId()); - assertNotNull(o0Back); - assertNotNull(o1Back); + Assert.assertNotNull(o0Back); + Assert.assertNotNull(o1Back); List ids = new ArrayList(); @@ -67,8 +70,8 @@ public class TestDeleteByIdCollection extends TestCase { o0Back = Ebean.find(Order.class, order0.getId()); o1Back = Ebean.find(Order.class, order1.getId()); - assertNull(o0Back); - assertNull(o1Back); + Assert.assertNull(o0Back); + Assert.assertNull(o1Back); } } diff --git a/src/test/java/com/avaje/tests/basic/TestDeleteImportedPartial.java b/src/test/java/com/avaje/tests/basic/TestDeleteImportedPartial.java index 859578f71..678c1431f 100644 --- a/src/test/java/com/avaje/tests/basic/TestDeleteImportedPartial.java +++ b/src/test/java/com/avaje/tests/basic/TestDeleteImportedPartial.java @@ -1,38 +1,36 @@ package com.avaje.tests.basic; -import junit.framework.TestCase; - import org.junit.Assert; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.tests.model.basic.PFile; import com.avaje.tests.model.basic.PFileContent; -public class TestDeleteImportedPartial extends TestCase { - - public void test() { - +public class TestDeleteImportedPartial extends BaseTestCase { - PFile persistentFile = new PFile("test.txt", new PFileContent("test".getBytes())); + @Test + public void test() { - Ebean.save(persistentFile); - Integer id = persistentFile.getId(); - Integer contentId = persistentFile.getFileContent().getId(); + PFile persistentFile = new PFile("test.txt", new PFileContent("test".getBytes())); - PFile partialPfile = Ebean.find(PFile.class) - .select("id") - .where().idEq(persistentFile.getId()) - .findUnique(); - - // should delete file and fileContent - Ebean.delete(partialPfile); - System.out.println("finished delete"); + Ebean.save(persistentFile); + Integer id = persistentFile.getId(); + Integer contentId = persistentFile.getFileContent().getId(); - PFile file1 = Ebean.find(PFile.class, id); - PFileContent content1 = Ebean.find(PFileContent.class, contentId); + PFile partialPfile = Ebean.find(PFile.class).select("id").where().idEq(persistentFile.getId()) + .findUnique(); - Assert.assertNull(file1); - Assert.assertNull(content1); - - } + // should delete file and fileContent + Ebean.delete(partialPfile); + System.out.println("finished delete"); + + PFile file1 = Ebean.find(PFile.class, id); + PFileContent content1 = Ebean.find(PFileContent.class, contentId); + + Assert.assertNull(file1); + Assert.assertNull(content1); + + } } diff --git a/src/test/java/com/avaje/tests/basic/TestDeleteOneToOne.java b/src/test/java/com/avaje/tests/basic/TestDeleteOneToOne.java index e38bf4ec0..9feab8730 100644 --- a/src/test/java/com/avaje/tests/basic/TestDeleteOneToOne.java +++ b/src/test/java/com/avaje/tests/basic/TestDeleteOneToOne.java @@ -1,49 +1,51 @@ package com.avaje.tests.basic; -import junit.framework.TestCase; - import org.junit.Assert; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.tests.model.basic.PersistentFile; import com.avaje.tests.model.basic.PersistentFileContent; -public class TestDeleteOneToOne extends TestCase { - - public void testCreateDeletePersistentFile() { +public class TestDeleteOneToOne extends BaseTestCase { - PersistentFile persistentFile = new PersistentFile("test.txt", new PersistentFileContent("test".getBytes())); + @Test + public void testCreateDeletePersistentFile() { - Ebean.save(persistentFile); - Integer id = persistentFile.getId(); - Integer contentId = persistentFile.getPersistentFileContent().getId(); + PersistentFile persistentFile = new PersistentFile("test.txt", new PersistentFileContent( + "test".getBytes())); - // should delete file and fileContent - Ebean.delete(PersistentFile.class, id); + Ebean.save(persistentFile); + Integer id = persistentFile.getId(); + Integer contentId = persistentFile.getPersistentFileContent().getId(); - PersistentFile file1 = Ebean.find(PersistentFile.class, id); - PersistentFileContent content1 = Ebean.find(PersistentFileContent.class, contentId); + // should delete file and fileContent + Ebean.delete(PersistentFile.class, id); - Assert.assertNull(file1); - Assert.assertNull(content1); + PersistentFile file1 = Ebean.find(PersistentFile.class, id); + PersistentFileContent content1 = Ebean.find(PersistentFileContent.class, contentId); - } + Assert.assertNull(file1); + Assert.assertNull(content1); -// public void testDeleteMany() { -// -// Customer c = new Customer(); -// c.setName("Fiona"); -// c.setStatus(Customer.Status.ACTIVE); -// c.addContact(new Contact("Fiona", "Black")); -// c.addContact(new Contact("Tracy", "Red")); -// -// Ebean.save(c); -// -// Ebean.delete(Customer.class, c.getId()); -// -// Customer deletedCustomer = Ebean.find(Customer.class, c.getId()); -// -// Assert.assertNull(deletedCustomer); -// -// } + } + + // public void testDeleteMany() { + // + // Customer c = new Customer(); + // c.setName("Fiona"); + // c.setStatus(Customer.Status.ACTIVE); + // c.addContact(new Contact("Fiona", "Black")); + // c.addContact(new Contact("Tracy", "Red")); + // + // Ebean.save(c); + // + // Ebean.delete(Customer.class, c.getId()); + // + // Customer deletedCustomer = Ebean.find(Customer.class, c.getId()); + // + // Assert.assertNull(deletedCustomer); + // + // } } diff --git a/src/test/java/com/avaje/tests/basic/TestDeleteOneToOneMultiple.java b/src/test/java/com/avaje/tests/basic/TestDeleteOneToOneMultiple.java index e570eb253..ae383f2dc 100644 --- a/src/test/java/com/avaje/tests/basic/TestDeleteOneToOneMultiple.java +++ b/src/test/java/com/avaje/tests/basic/TestDeleteOneToOneMultiple.java @@ -1,33 +1,34 @@ package com.avaje.tests.basic; -import junit.framework.TestCase; - import org.junit.Assert; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.tests.model.basic.PFile; import com.avaje.tests.model.basic.PFileContent; -public class TestDeleteOneToOneMultiple extends TestCase { - - public void testCreateDeletePersistentFile() { +public class TestDeleteOneToOneMultiple extends BaseTestCase { - PFile persistentFile = new PFile("test.txt", new PFileContent("test".getBytes())); + @Test + public void testCreateDeletePersistentFile() { - Ebean.save(persistentFile); - Integer id = persistentFile.getId(); - Integer contentId = persistentFile.getFileContent().getId(); + PFile persistentFile = new PFile("test.txt", new PFileContent("test".getBytes())); - // should delete file and fileContent - Ebean.delete(PFile.class, id); - System.out.println("finished delete"); + Ebean.save(persistentFile); + Integer id = persistentFile.getId(); + Integer contentId = persistentFile.getFileContent().getId(); - PFile file1 = Ebean.find(PFile.class, id); - PFileContent content1 = Ebean.find(PFileContent.class, contentId); + // should delete file and fileContent + Ebean.delete(PFile.class, id); + System.out.println("finished delete"); - Assert.assertNull(file1); - Assert.assertNull(content1); + PFile file1 = Ebean.find(PFile.class, id); + PFileContent content1 = Ebean.find(PFileContent.class, contentId); - } + Assert.assertNull(file1); + Assert.assertNull(content1); + + } } diff --git a/src/test/java/com/avaje/tests/basic/TestDeletePartialNoVersion.java b/src/test/java/com/avaje/tests/basic/TestDeletePartialNoVersion.java index ec7071f99..199c18f7c 100644 --- a/src/test/java/com/avaje/tests/basic/TestDeletePartialNoVersion.java +++ b/src/test/java/com/avaje/tests/basic/TestDeletePartialNoVersion.java @@ -1,14 +1,15 @@ package com.avaje.tests.basic; -import junit.framework.TestCase; - import org.junit.Assert; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.tests.model.basic.TMapSuperEntity; -public class TestDeletePartialNoVersion extends TestCase { +public class TestDeletePartialNoVersion extends BaseTestCase { + @Test public void testNoVersion() { TMapSuperEntity e = new TMapSuperEntity(); diff --git a/src/test/java/com/avaje/tests/basic/TestDynamicUpdate.java b/src/test/java/com/avaje/tests/basic/TestDynamicUpdate.java index bee63e6c1..6394bf492 100644 --- a/src/test/java/com/avaje/tests/basic/TestDynamicUpdate.java +++ b/src/test/java/com/avaje/tests/basic/TestDynamicUpdate.java @@ -1,13 +1,16 @@ package com.avaje.tests.basic; -import junit.framework.TestCase; +import org.junit.Assert; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.EbeanServer; import com.avaje.tests.model.embedded.EMain; -public class TestDynamicUpdate extends TestCase { +public class TestDynamicUpdate extends BaseTestCase { + @Test public void testUpdate() { // insert @@ -18,7 +21,7 @@ public class TestDynamicUpdate extends TestCase { EbeanServer server = Ebean.getServer(null); server.save(b); - assertNotNull(b.getId()); + Assert.assertNotNull(b.getId()); // reload object und update the name EMain b2 = server.find(EMain.class, b.getId()); @@ -29,7 +32,7 @@ public class TestDynamicUpdate extends TestCase { server.beginTransaction(); try { EMain b3 = server.find(EMain.class, b.getId()); - assertEquals("ABC", b3.getEmbeddable().getDescription()); + Assert.assertEquals("ABC", b3.getEmbeddable().getDescription()); } finally { server.endTransaction(); } @@ -39,6 +42,6 @@ public class TestDynamicUpdate extends TestCase { server.save(b4); EMain b5 = server.find(EMain.class, b.getId()); - assertEquals("123", b5.getEmbeddable().getDescription()); + Assert.assertEquals("123", b5.getEmbeddable().getDescription()); } } diff --git a/src/test/java/com/avaje/tests/basic/TestEnhancementCollectionInitialisation.java b/src/test/java/com/avaje/tests/basic/TestEnhancementCollectionInitialisation.java index c1ec907b8..c8af36eac 100644 --- a/src/test/java/com/avaje/tests/basic/TestEnhancementCollectionInitialisation.java +++ b/src/test/java/com/avaje/tests/basic/TestEnhancementCollectionInitialisation.java @@ -2,23 +2,26 @@ package com.avaje.tests.basic; import java.util.List; +import org.junit.Assert; +import org.junit.Test; + +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.BeanState; import com.avaje.ebean.Ebean; import com.avaje.tests.model.basic.Customer; import com.avaje.tests.model.basic.Order; -import junit.framework.TestCase; - -public class TestEnhancementCollectionInitialisation extends TestCase { +public class TestEnhancementCollectionInitialisation extends BaseTestCase { + @Test public void testListInitialisation() { Customer customer = new Customer(); BeanState beanState = Ebean.getBeanState(customer); if (beanState != null) { List orders = customer.getOrders(); - assertNotNull(orders); + Assert.assertNotNull(orders); } } diff --git a/src/test/java/com/avaje/tests/basic/TestErrorBindLog.java b/src/test/java/com/avaje/tests/basic/TestErrorBindLog.java index b18cbef05..03afeab5a 100644 --- a/src/test/java/com/avaje/tests/basic/TestErrorBindLog.java +++ b/src/test/java/com/avaje/tests/basic/TestErrorBindLog.java @@ -2,28 +2,27 @@ package com.avaje.tests.basic; import javax.persistence.PersistenceException; -import junit.framework.TestCase; - import org.junit.Assert; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.config.GlobalProperties; import com.avaje.tests.model.basic.Order; -public class TestErrorBindLog extends TestCase { +public class TestErrorBindLog extends BaseTestCase { - public void test() { - - GlobalProperties.put("somethingelse", "d:/junk2"); - try { - Ebean.find(Order.class) - .where().gt("id", "JUNK") - .findList(); - - } catch (PersistenceException e){ - String msg = e.getMessage(); - e.printStackTrace(); - Assert.assertTrue(msg.contains("Bind values:")); - } + @Test + public void test() { + + GlobalProperties.put("somethingelse", "d:/junk2"); + try { + Ebean.find(Order.class).where().gt("id", "JUNK").findList(); + + } catch (PersistenceException e) { + String msg = e.getMessage(); + e.printStackTrace(); + Assert.assertTrue(msg.contains("Bind values:")); } + } } diff --git a/src/test/java/com/avaje/tests/basic/TestExplicitInsert.java b/src/test/java/com/avaje/tests/basic/TestExplicitInsert.java index 856c61f12..1a9655fc6 100644 --- a/src/test/java/com/avaje/tests/basic/TestExplicitInsert.java +++ b/src/test/java/com/avaje/tests/basic/TestExplicitInsert.java @@ -2,65 +2,64 @@ package com.avaje.tests.basic; import java.util.List; -import junit.framework.TestCase; +import org.junit.Assert; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.EbeanServer; import com.avaje.ebean.Update; import com.avaje.tests.model.basic.EBasic; -public class TestExplicitInsert extends TestCase { +public class TestExplicitInsert extends BaseTestCase { - public void test() { - - //GlobalProperties.put("ebean.classes", ""+LDPerson.class.toString()+","+EBasic.class.toString()); - - EBasic b = new EBasic(); - b.setName("exp insert"); - b.setDescription("explicit insert"); - b.setStatus(EBasic.Status.ACTIVE); - - EbeanServer server = Ebean.getServer(null); - server.insert(b); - - assertNotNull(b.getId()); - - EBasic b2 = server.find(EBasic.class, b.getId()); - b2.setId(null); - - b2.setName("force insert"); - server.insert(b2); - - assertNotNull(b2.getId()); - assertTrue(!b.getId().equals(b2.getId())); - - - List list = server.find(EBasic.class) - .setMaxRows(10) - .findList(); - - assertTrue(list.size() >= 2); - - int firstRow = 1; - List list2 = server.find(EBasic.class) - .order().asc("id") - .setFirstRow(firstRow) - .setMaxRows(10) - .findList(); - - int expectedCount = list.size() -firstRow; - if (expectedCount > 0){ - assertEquals(expectedCount, list2.size()); - } else { - assertTrue(list2.isEmpty()); - } - - Update update = Ebean.createUpdate(EBasic.class, "update ebasic set description = 'test'"); - - int rows = update.execute(); - - assertTrue(rows > 0); - Ebean.externalModification("e_basic", true, false, true); + @Test + public void test() { + + // GlobalProperties.put("ebean.classes", + // ""+LDPerson.class.toString()+","+EBasic.class.toString()); + + EBasic b = new EBasic(); + b.setName("exp insert"); + b.setDescription("explicit insert"); + b.setStatus(EBasic.Status.ACTIVE); + + EbeanServer server = Ebean.getServer(null); + server.insert(b); + + Assert.assertNotNull(b.getId()); + + EBasic b2 = server.find(EBasic.class, b.getId()); + b2.setId(null); + + b2.setName("force insert"); + server.insert(b2); + + Assert.assertNotNull(b2.getId()); + Assert.assertTrue(!b.getId().equals(b2.getId())); + + List list = server.find(EBasic.class).setMaxRows(10).findList(); + + Assert.assertTrue(list.size() >= 2); + + int firstRow = 1; + List list2 = server.find(EBasic.class).order().asc("id").setFirstRow(firstRow) + .setMaxRows(10).findList(); + + int expectedCount = list.size() - firstRow; + if (expectedCount > 0) { + Assert.assertEquals(expectedCount, list2.size()); + } else { + Assert.assertTrue(list2.isEmpty()); } - + + Update update = Ebean.createUpdate(EBasic.class, + "update ebasic set description = 'test'"); + + int rows = update.execute(); + + Assert.assertTrue(rows > 0); + Ebean.externalModification("e_basic", true, false, true); + } + } diff --git a/src/test/java/com/avaje/tests/basic/TestFetchId.java b/src/test/java/com/avaje/tests/basic/TestFetchId.java index 5c724ec3b..edd890e88 100644 --- a/src/test/java/com/avaje/tests/basic/TestFetchId.java +++ b/src/test/java/com/avaje/tests/basic/TestFetchId.java @@ -4,17 +4,19 @@ import java.util.List; import java.util.concurrent.ExecutionException; import junit.framework.Assert; -import junit.framework.TestCase; +import org.junit.Test; + +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.FutureIds; import com.avaje.ebean.Query; import com.avaje.tests.model.basic.Order; import com.avaje.tests.model.basic.ResetBasicData; -public class TestFetchId extends TestCase { - - +public class TestFetchId extends BaseTestCase { + + @Test public void testFetchId() throws InterruptedException, ExecutionException { ResetBasicData.reset(); diff --git a/src/test/java/com/avaje/tests/basic/TestIUDVanilla.java b/src/test/java/com/avaje/tests/basic/TestIUDVanilla.java index eed66c74d..4686cc131 100644 --- a/src/test/java/com/avaje/tests/basic/TestIUDVanilla.java +++ b/src/test/java/com/avaje/tests/basic/TestIUDVanilla.java @@ -5,66 +5,68 @@ import java.util.HashSet; import java.util.Set; import junit.framework.Assert; -import junit.framework.TestCase; +import org.junit.Test; + +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.tests.model.basic.EBasicVer; -public class TestIUDVanilla extends TestCase { +public class TestIUDVanilla extends BaseTestCase { - public void test() { + @Test + public void test() { - EBasicVer e0 = new EBasicVer(); - e0.setName("vanilla"); + EBasicVer e0 = new EBasicVer(); + e0.setName("vanilla"); - Ebean.save(e0); + Ebean.save(e0); -// // only use the below test when not using enhancement -// boolean entity = (e0 instanceof EntityBean); -// Assert.assertTrue(!entity); + // // only use the below test when not using enhancement + // boolean entity = (e0 instanceof EntityBean); + // Assert.assertTrue(!entity); - Assert.assertNotNull(e0.getId()); - Assert.assertNotNull(e0.getLastUpdate()); + Assert.assertNotNull(e0.getId()); + Assert.assertNotNull(e0.getLastUpdate()); - Timestamp lastUpdate0 = e0.getLastUpdate(); + Timestamp lastUpdate0 = e0.getLastUpdate(); - e0.setName("modified"); - Ebean.save(e0); + e0.setName("modified"); + Ebean.save(e0); - Timestamp lastUpdate1 = e0.getLastUpdate(); - Assert.assertNotNull(lastUpdate1); - Assert.assertNotSame(lastUpdate0, lastUpdate1); + Timestamp lastUpdate1 = e0.getLastUpdate(); + Assert.assertNotNull(lastUpdate1); + Assert.assertNotSame(lastUpdate0, lastUpdate1); - EBasicVer e2 = Ebean.getServer(null).createEntityBean(EBasicVer.class); + EBasicVer e2 = Ebean.getServer(null).createEntityBean(EBasicVer.class); - HashSet loaded = new HashSet(); - loaded.add("id"); - loaded.add("lastUpdate"); - loaded.add("name"); + HashSet loaded = new HashSet(); + loaded.add("id"); + loaded.add("lastUpdate"); + loaded.add("name"); - e2.setId(e0.getId()); - e2.setLastUpdate(lastUpdate1); + e2.setId(e0.getId()); + e2.setLastUpdate(lastUpdate1); - Ebean.getBeanState(e2).setLoaded(loaded); - e2.setName("forcedUpdate"); - Ebean.save(e2); + Ebean.getBeanState(e2).setLoaded(loaded); + e2.setName("forcedUpdate"); + Ebean.save(e2); - EBasicVer e3 = new EBasicVer(); - e3.setId(e0.getId()); - e3.setName("ModNoOCC"); - // e3.setLastUpdate(e2.getLastUpdate()); + EBasicVer e3 = new EBasicVer(); + e3.setId(e0.getId()); + e3.setName("ModNoOCC"); + // e3.setLastUpdate(e2.getLastUpdate()); - Ebean.update(e3); - - e3.setName("ModAgain"); - e3.setDescription("Banana"); - - - Set updateProps = new HashSet(); - updateProps.add("name"); - updateProps.add("description"); - - Ebean.update(e3, updateProps); + Ebean.update(e3); - } + e3.setName("ModAgain"); + e3.setDescription("Banana"); + + Set updateProps = new HashSet(); + updateProps.add("name"); + updateProps.add("description"); + + Ebean.update(e3, updateProps); + + } } diff --git a/src/test/java/com/avaje/tests/basic/TestInEmpty.java b/src/test/java/com/avaje/tests/basic/TestInEmpty.java index c0c54e0a0..aaecc0368 100644 --- a/src/test/java/com/avaje/tests/basic/TestInEmpty.java +++ b/src/test/java/com/avaje/tests/basic/TestInEmpty.java @@ -3,23 +3,23 @@ package com.avaje.tests.basic; import java.util.List; import junit.framework.Assert; -import junit.framework.TestCase; +import org.junit.Test; + +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.tests.model.basic.Order; -public class TestInEmpty extends TestCase { +public class TestInEmpty extends BaseTestCase { + + @Test + public void test() { + + List list = Ebean.find(Order.class).where().gt("id", 0).in("id", new Object[0]) + .findList(); + + Assert.assertEquals(0, list.size()); + + } - public void test() { - - List list = Ebean.find(Order.class) - .where() - .gt("id", 0) - .in("id",new Object[0]) - .findList(); - - Assert.assertEquals(0, list.size()); - - } - } diff --git a/src/test/java/com/avaje/tests/basic/TestInheritRef.java b/src/test/java/com/avaje/tests/basic/TestInheritRef.java index c86139656..6f6f6c3bb 100644 --- a/src/test/java/com/avaje/tests/basic/TestInheritRef.java +++ b/src/test/java/com/avaje/tests/basic/TestInheritRef.java @@ -3,16 +3,18 @@ package com.avaje.tests.basic; import java.util.List; import junit.framework.Assert; -import junit.framework.TestCase; +import org.junit.Test; + +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.tests.model.basic.Car; import com.avaje.tests.model.basic.Truck; import com.avaje.tests.model.basic.Vehicle; -public class TestInheritRef extends TestCase { +public class TestInheritRef extends BaseTestCase { - + @Test public void testAssocOne() { Ebean.createUpdate(Vehicle.class, "delete from vehicle"); diff --git a/src/test/java/com/avaje/tests/basic/TestJodaType.java b/src/test/java/com/avaje/tests/basic/TestJodaType.java index c73033eec..69e25397a 100644 --- a/src/test/java/com/avaje/tests/basic/TestJodaType.java +++ b/src/test/java/com/avaje/tests/basic/TestJodaType.java @@ -1,8 +1,10 @@ package com.avaje.tests.basic; import junit.framework.Assert; -import junit.framework.TestCase; +import org.junit.Test; + +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebeaninternal.api.SpiEbeanServer; import com.avaje.ebeaninternal.server.deploy.BeanDescriptor; @@ -10,8 +12,9 @@ import com.avaje.ebeaninternal.server.deploy.BeanProperty; import com.avaje.ebeaninternal.server.type.ScalarType; import com.avaje.tests.model.basic.TJodaEntity; -public class TestJodaType extends TestCase { +public class TestJodaType extends BaseTestCase { + @Test public void test() { SpiEbeanServer server = (SpiEbeanServer)Ebean.getServer(null); diff --git a/src/test/java/com/avaje/tests/basic/TestJoinInheritance.java b/src/test/java/com/avaje/tests/basic/TestJoinInheritance.java index ed486f6e1..105338bcb 100644 --- a/src/test/java/com/avaje/tests/basic/TestJoinInheritance.java +++ b/src/test/java/com/avaje/tests/basic/TestJoinInheritance.java @@ -5,8 +5,10 @@ import java.util.Date; import java.util.List; import junit.framework.Assert; -import junit.framework.TestCase; +import org.junit.Test; + +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.Query; import com.avaje.tests.model.basic.Address; @@ -15,7 +17,7 @@ import com.avaje.tests.model.basic.Trip; import com.avaje.tests.model.basic.Vehicle; import com.avaje.tests.model.basic.VehicleDriver; -public class TestJoinInheritance extends TestCase { +public class TestJoinInheritance extends BaseTestCase { /** @@ -32,6 +34,7 @@ public class TestJoinInheritance extends TestCase { * column was not being skipped - but the query reads happily - only the data is * then wrong in the address object. */ + @Test public void testJoinHierarchyAssocOne() { Ebean.createUpdate(Vehicle.class, "delete from vehicle"); diff --git a/src/test/java/com/avaje/tests/basic/TestLazyLoadEmptyOneToMany.java b/src/test/java/com/avaje/tests/basic/TestLazyLoadEmptyOneToMany.java index d15cf25b8..df7a77dbc 100644 --- a/src/test/java/com/avaje/tests/basic/TestLazyLoadEmptyOneToMany.java +++ b/src/test/java/com/avaje/tests/basic/TestLazyLoadEmptyOneToMany.java @@ -2,17 +2,18 @@ package com.avaje.tests.basic; import java.util.List; -import junit.framework.TestCase; - import org.junit.Assert; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.tests.model.basic.Contact; import com.avaje.tests.model.basic.Customer; import com.avaje.tests.model.basic.ResetBasicData; -public class TestLazyLoadEmptyOneToMany extends TestCase { +public class TestLazyLoadEmptyOneToMany extends BaseTestCase { + @Test public void test() { ResetBasicData.reset(); diff --git a/src/test/java/com/avaje/tests/basic/TestLazyLoadInCache.java b/src/test/java/com/avaje/tests/basic/TestLazyLoadInCache.java index b190cae26..7e1a8b6ac 100644 --- a/src/test/java/com/avaje/tests/basic/TestLazyLoadInCache.java +++ b/src/test/java/com/avaje/tests/basic/TestLazyLoadInCache.java @@ -4,17 +4,19 @@ import java.util.Map; import java.util.Set; import junit.framework.Assert; -import junit.framework.TestCase; +import org.junit.Test; + +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.BeanState; import com.avaje.ebean.Ebean; import com.avaje.tests.model.basic.Address; import com.avaje.tests.model.basic.Customer; import com.avaje.tests.model.basic.ResetBasicData; -public class TestLazyLoadInCache extends TestCase { +public class TestLazyLoadInCache extends BaseTestCase { - + @Test public void testLoadInCache() { ResetBasicData.reset(); diff --git a/src/test/java/com/avaje/tests/basic/TestLimitQuery.java b/src/test/java/com/avaje/tests/basic/TestLimitQuery.java index bf20a6233..0c9043ab8 100644 --- a/src/test/java/com/avaje/tests/basic/TestLimitQuery.java +++ b/src/test/java/com/avaje/tests/basic/TestLimitQuery.java @@ -3,24 +3,30 @@ package com.avaje.tests.basic; import java.util.List; import junit.framework.Assert; -import junit.framework.TestCase; +import org.junit.Test; + +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.Query; import com.avaje.ebeaninternal.api.SpiEbeanServer; import com.avaje.tests.model.basic.Order; import com.avaje.tests.model.basic.ResetBasicData; -public class TestLimitQuery extends TestCase { +public class TestLimitQuery extends BaseTestCase { + + @Test public void testNothing() { } + @Test public void testLimitWithMany() { rob(); rob(); } + private void rob() { ResetBasicData.reset(); diff --git a/src/test/java/com/avaje/tests/basic/TestLoadBeanCache.java b/src/test/java/com/avaje/tests/basic/TestLoadBeanCache.java index 4d92b79d0..2b87121f6 100644 --- a/src/test/java/com/avaje/tests/basic/TestLoadBeanCache.java +++ b/src/test/java/com/avaje/tests/basic/TestLoadBeanCache.java @@ -3,14 +3,17 @@ package com.avaje.tests.basic; import java.util.Map; import junit.framework.Assert; -import junit.framework.TestCase; +import org.junit.Test; + +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.tests.model.basic.Country; import com.avaje.tests.model.basic.ResetBasicData; -public class TestLoadBeanCache extends TestCase { +public class TestLoadBeanCache extends BaseTestCase { + @Test public void testLoad() { ResetBasicData.reset(); diff --git a/src/test/java/com/avaje/tests/basic/TestLogTransLogOnError.java b/src/test/java/com/avaje/tests/basic/TestLogTransLogOnError.java index 3877fedef..631170403 100644 --- a/src/test/java/com/avaje/tests/basic/TestLogTransLogOnError.java +++ b/src/test/java/com/avaje/tests/basic/TestLogTransLogOnError.java @@ -2,10 +2,10 @@ package com.avaje.tests.basic; import java.util.List; -import junit.framework.TestCase; - import org.junit.Assert; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.Transaction; import com.avaje.tests.model.basic.Customer; @@ -13,72 +13,71 @@ import com.avaje.tests.model.basic.EBasicVer; import com.avaje.tests.model.basic.Order; import com.avaje.tests.model.basic.ResetBasicData; -public class TestLogTransLogOnError extends TestCase { +public class TestLogTransLogOnError extends BaseTestCase { - public void testQueryError() { - - ResetBasicData.reset(); - - Transaction t = Ebean.beginTransaction(); - try { - //t.log("--- hello"); - Ebean.find(Customer.class).findList(); - Ebean.find(Order.class).where().gt("id", 1).findList(); - - EBasicVer newBean = new EBasicVer(); - newBean.setDescription("something"); - newBean.setName("aName"); - - //Ebean.save(newBean); - - //t.log("--- next query should error"); - List list = Ebean.find(Customer.class) - .where().eq("id", "NotAnInt!!") - .findList(); - - Assert.assertEquals(0, list.size()); - // Get here with mysql? - //Assert.assertTrue(false); - - } catch (RuntimeException e){ - //e.printStackTrace(); - Assert.assertTrue(true); - - } finally { - Ebean.endTransaction(); - } + @Test + public void testQueryError() { + + ResetBasicData.reset(); + + Transaction t = Ebean.beginTransaction(); + try { + // t.log("--- hello"); + Ebean.find(Customer.class).findList(); + Ebean.find(Order.class).where().gt("id", 1).findList(); + + EBasicVer newBean = new EBasicVer(); + newBean.setDescription("something"); + newBean.setName("aName"); + + // Ebean.save(newBean); + + // t.log("--- next query should error"); + List list = Ebean.find(Customer.class).where().eq("id", "NotAnInt!!").findList(); + + Assert.assertEquals(0, list.size()); + // Get here with mysql? + // Assert.assertTrue(false); + + } catch (RuntimeException e) { + // e.printStackTrace(); + Assert.assertTrue(true); + + } finally { + Ebean.endTransaction(); } - - public void testPersistError() { - - ResetBasicData.reset(); - - Transaction t = Ebean.beginTransaction(); - try { - //t.log("--- hello testPersistError"); - Ebean.find(Customer.class).findList(); - - EBasicVer newBean = new EBasicVer(); - newBean.setDescription("something sdfjksdjflsjdflsjdflksjdfkjd fsjdfkjsdkfjsdkfjskdjfskjdf" - +" sjdf sdjflksjdfkjsdlfkjsdkfjs ksjdfksjdlfjsldf something sdfjksdjflsjdflsjdflksjdfkjd" - +"fsjdfkjsdkfjsdkfjskdjfskjdf sjdf sdjflksjdfkjsdlfkjsdkfjs ksjdfksjdlfjsldf something s" - +"dfjksdjflsjdflsjdflksjdfkjd fsjdfkjsdkfjsdkfjskdjfskjdf sjdf sdjflksjdfkjsdlfkjsdkfjs "); - newBean.setName("aName"); - - //t.log("--- next insert should error"); - Ebean.save(newBean); - - // never get here - Assert.assertTrue(false); - - } catch (RuntimeException e){ - //e.printStackTrace(); - Assert.assertTrue(true); - - } finally { - Ebean.endTransaction(); - } - - + } + + public void testPersistError() { + + ResetBasicData.reset(); + + Transaction t = Ebean.beginTransaction(); + try { + // t.log("--- hello testPersistError"); + Ebean.find(Customer.class).findList(); + + EBasicVer newBean = new EBasicVer(); + newBean + .setDescription("something sdfjksdjflsjdflsjdflksjdfkjd fsjdfkjsdkfjsdkfjskdjfskjdf" + + " sjdf sdjflksjdfkjsdlfkjsdkfjs ksjdfksjdlfjsldf something sdfjksdjflsjdflsjdflksjdfkjd" + + "fsjdfkjsdkfjsdkfjskdjfskjdf sjdf sdjflksjdfkjsdlfkjsdkfjs ksjdfksjdlfjsldf something s" + + "dfjksdjflsjdflsjdflksjdfkjd fsjdfkjsdkfjsdkfjskdjfskjdf sjdf sdjflksjdfkjsdlfkjsdkfjs "); + newBean.setName("aName"); + + // t.log("--- next insert should error"); + Ebean.save(newBean); + + // never get here + Assert.assertTrue(false); + + } catch (RuntimeException e) { + // e.printStackTrace(); + Assert.assertTrue(true); + + } finally { + Ebean.endTransaction(); } + + } } diff --git a/src/test/java/com/avaje/tests/basic/TestM2MCascadeOne.java b/src/test/java/com/avaje/tests/basic/TestM2MCascadeOne.java index 3c7ae50ee..84d3014c6 100644 --- a/src/test/java/com/avaje/tests/basic/TestM2MCascadeOne.java +++ b/src/test/java/com/avaje/tests/basic/TestM2MCascadeOne.java @@ -2,42 +2,44 @@ package com.avaje.tests.basic; import java.util.List; -import junit.framework.TestCase; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.common.BeanList; import com.avaje.tests.model.basic.MRole; import com.avaje.tests.model.basic.MUser; -public class TestM2MCascadeOne extends TestCase { +public class TestM2MCascadeOne extends BaseTestCase { - public void test() { - - MUser u = new MUser(); - u.setUserName("testM2M"); - - List roles = u.getRoles(); - if (roles != null){ - if (roles instanceof BeanList){ - System.out.println("enhancement checkNullManyFields=true successful"); - } - } - - Ebean.save(u); - - MRole r0 = new MRole(); - r0.setRoleName("rol_0"); - Ebean.save(r0); - - MRole r1 = new MRole(); - r1.setRoleName("rol_1"); - - MUser u1 = Ebean.find(MUser.class, u.getUserid()); - - u1.addRole(r0); - u1.addRole(r1); - - Ebean.save(u1); - + @Test + public void test() { + + MUser u = new MUser(); + u.setUserName("testM2M"); + + List roles = u.getRoles(); + if (roles != null) { + if (roles instanceof BeanList) { + System.out.println("enhancement checkNullManyFields=true successful"); + } } + + Ebean.save(u); + + MRole r0 = new MRole(); + r0.setRoleName("rol_0"); + Ebean.save(r0); + + MRole r1 = new MRole(); + r1.setRoleName("rol_1"); + + MUser u1 = Ebean.find(MUser.class, u.getUserid()); + + u1.addRole(r0); + u1.addRole(r1); + + Ebean.save(u1); + + } } diff --git a/src/test/java/com/avaje/tests/basic/TestM2MVanilla.java b/src/test/java/com/avaje/tests/basic/TestM2MVanilla.java index 1777a6c62..11dbdc45c 100644 --- a/src/test/java/com/avaje/tests/basic/TestM2MVanilla.java +++ b/src/test/java/com/avaje/tests/basic/TestM2MVanilla.java @@ -4,99 +4,93 @@ import java.util.ArrayList; import java.util.List; import junit.framework.Assert; -import junit.framework.TestCase; +import org.junit.Test; + +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.Query; import com.avaje.tests.model.basic.MRole; import com.avaje.tests.model.basic.MUser; -public class TestM2MVanilla extends TestCase { +public class TestM2MVanilla extends BaseTestCase { - public void testVanilla() { + @Test + public void testVanilla() { - MRole r1 = new MRole(); - r1.setRoleName("role1"); - Ebean.save(r1); + MRole r1 = new MRole(); + r1.setRoleName("role1"); + Ebean.save(r1); - MRole r2 = new MRole(); - r2.setRoleName("role2"); - Ebean.save(r2); + MRole r2 = new MRole(); + r2.setRoleName("role2"); + Ebean.save(r2); - MRole r3 = new MRole(); - r3.setRoleName("role3"); - Ebean.save(r3); + MRole r3 = new MRole(); + r3.setRoleName("role3"); + Ebean.save(r3); - MUser u0 = new MUser(); - u0.setUserName("something"); + MUser u0 = new MUser(); + u0.setUserName("something"); - Ebean.save(u0); + Ebean.save(u0); - MUser user = Ebean.find(MUser.class, u0.getUserid()); + MUser user = Ebean.find(MUser.class, u0.getUserid()); - List roleList = new ArrayList(); - roleList.add(r1); - roleList.add(r2); + List roleList = new ArrayList(); + roleList.add(r1); + roleList.add(r2); - user.setRoles(roleList); + user.setRoles(roleList); - Ebean.save(user); - //Ebean.saveManyToManyAssociations(user, "roles"); + Ebean.save(user); + // Ebean.saveManyToManyAssociations(user, "roles"); - MUser checkUser = Ebean.find(MUser.class, u0.getUserid()); - List checkRoles = checkUser.getRoles(); - Assert.assertNotNull(checkRoles); - Assert.assertEquals(2, checkRoles.size()); + MUser checkUser = Ebean.find(MUser.class, u0.getUserid()); + List checkRoles = checkUser.getRoles(); + Assert.assertNotNull(checkRoles); + Assert.assertEquals(2, checkRoles.size()); - checkRoles.add(r3); - - Ebean.save(checkUser); - //Ebean.saveManyToManyAssociations(checkUser, "roles"); - - MUser checkUser2 = Ebean.find(MUser.class, u0.getUserid()); - List checkRoles2 = checkUser2.getRoles(); - Assert.assertNotNull(checkRoles2); - Assert.assertEquals("added a role", 3, checkRoles2.size()); + checkRoles.add(r3); - Query rolesQuery0 = Ebean.find(MUser.class) - .where().eq("roles", r1) - .query(); - - rolesQuery0.findList(); + Ebean.save(checkUser); + // Ebean.saveManyToManyAssociations(checkUser, "roles"); - Query rolesQuery = Ebean.find(MUser.class) - .where().in("roles", roleList) - .query(); - - List userInRolesList = rolesQuery.findList(); - Assert.assertTrue(userInRolesList.size() > 0); - - List list = Ebean.find(MUser.class) - .where().in("roles", roleList) - .filterMany("roles").eq("roleName", "role1") - .findList(); - - MUser mUser = list.get(0); - List roles = mUser.getRoles(); - Assert.assertEquals(1, roles.size()); - - Ebean.refreshMany(mUser, "roles"); - Assert.assertEquals(1, mUser.getRoles().size()); - - - checkRoles2.remove(0); - checkRoles2.remove(0); - Ebean.saveManyToManyAssociations(checkUser2,"roles"); - + MUser checkUser2 = Ebean.find(MUser.class, u0.getUserid()); + List checkRoles2 = checkUser2.getRoles(); + Assert.assertNotNull(checkRoles2); + Assert.assertEquals("added a role", 3, checkRoles2.size()); - checkUser2 = Ebean.find(MUser.class, u0.getUserid()); - checkRoles2 = checkUser2.getRoles(); - Assert.assertNotNull(checkRoles2); - Assert.assertEquals("added a role", 1, checkRoles2.size()); + Query rolesQuery0 = Ebean.find(MUser.class).where().eq("roles", r1).query(); - - Ebean.delete(checkUser2); - - } + rolesQuery0.findList(); + + Query rolesQuery = Ebean.find(MUser.class).where().in("roles", roleList).query(); + + List userInRolesList = rolesQuery.findList(); + Assert.assertTrue(userInRolesList.size() > 0); + + List list = Ebean.find(MUser.class).where().in("roles", roleList).filterMany("roles") + .eq("roleName", "role1").findList(); + + MUser mUser = list.get(0); + List roles = mUser.getRoles(); + Assert.assertEquals(1, roles.size()); + + Ebean.refreshMany(mUser, "roles"); + Assert.assertEquals(1, mUser.getRoles().size()); + + checkRoles2.remove(0); + checkRoles2.remove(0); + Ebean.saveManyToManyAssociations(checkUser2, "roles"); + + checkUser2 = Ebean.find(MUser.class, u0.getUserid()); + checkRoles2 = checkUser2.getRoles(); + Assert.assertNotNull(checkRoles2); + Assert.assertEquals("added a role", 1, checkRoles2.size()); + + Ebean.delete(checkUser2); + + } } diff --git a/src/test/java/com/avaje/tests/basic/TestManyLazyLoad.java b/src/test/java/com/avaje/tests/basic/TestManyLazyLoad.java index eb942f125..e519f0d58 100644 --- a/src/test/java/com/avaje/tests/basic/TestManyLazyLoad.java +++ b/src/test/java/com/avaje/tests/basic/TestManyLazyLoad.java @@ -4,16 +4,18 @@ import java.sql.Date; import java.util.List; import junit.framework.Assert; -import junit.framework.TestCase; +import org.junit.Test; + +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.tests.model.basic.Order; import com.avaje.tests.model.basic.OrderDetail; import com.avaje.tests.model.basic.ResetBasicData; -public class TestManyLazyLoad extends TestCase { +public class TestManyLazyLoad extends BaseTestCase { - + @Test public void testLazyLoadRef() { ResetBasicData.reset(); diff --git a/src/test/java/com/avaje/tests/basic/TestMappedSuper.java b/src/test/java/com/avaje/tests/basic/TestMappedSuper.java index fb2d58856..ccca84c8b 100644 --- a/src/test/java/com/avaje/tests/basic/TestMappedSuper.java +++ b/src/test/java/com/avaje/tests/basic/TestMappedSuper.java @@ -2,16 +2,17 @@ package com.avaje.tests.basic; import java.util.List; -import junit.framework.TestCase; - import org.junit.Assert; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.Query; import com.avaje.tests.model.basic.TMapSuperEntity; -public class TestMappedSuper extends TestCase { +public class TestMappedSuper extends BaseTestCase { + @Test public void test() { TMapSuperEntity e = new TMapSuperEntity(); diff --git a/src/test/java/com/avaje/tests/basic/TestMultipleOneToOneIUD.java b/src/test/java/com/avaje/tests/basic/TestMultipleOneToOneIUD.java index 2a03058fb..08c8a83c6 100644 --- a/src/test/java/com/avaje/tests/basic/TestMultipleOneToOneIUD.java +++ b/src/test/java/com/avaje/tests/basic/TestMultipleOneToOneIUD.java @@ -1,59 +1,61 @@ package com.avaje.tests.basic; -import junit.framework.TestCase; +import org.junit.Assert; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.tests.model.basic.OCar; import com.avaje.tests.model.basic.OEngine; import com.avaje.tests.model.basic.OGearBox; -public class TestMultipleOneToOneIUD extends TestCase { +public class TestMultipleOneToOneIUD extends BaseTestCase { - public void test() { - - OEngine engine = new OEngine(); - engine.setShortDesc("engine 1"); - - OGearBox gearBox = new OGearBox(); - gearBox.setBoxDesc("6 speed manual"); - gearBox.setSize(6); - - OCar car = new OCar(); - car.setVin("xx4534"); - car.setName("test car"); - car.setEngine(engine); - - Ebean.beginTransaction(); - try { - Ebean.save(gearBox); - Ebean.save(car); - - assertNotNull(car.getId()); - assertNotNull(engine.getEngineId()); - assertNotNull(gearBox.getId()); - - Ebean.commitTransaction(); - - } finally { - Ebean.endTransaction(); - } - - OCar c2 = Ebean.find(OCar.class, car.getId()); - assertNotNull(c2); - assertNotNull(c2.getEngine()); - // gearBox not assigned yet - assertNull(c2.getGearBox()); - - // ok, assign gearBox - c2.setGearBox(gearBox); - Ebean.save(c2); - - // now all should be there... - OCar c3 = Ebean.find(OCar.class, car.getId()); - assertNotNull(c3); - assertNotNull(c3.getEngine()); - assertNotNull(c3.getGearBox()); + @Test + public void test() { - + OEngine engine = new OEngine(); + engine.setShortDesc("engine 1"); + + OGearBox gearBox = new OGearBox(); + gearBox.setBoxDesc("6 speed manual"); + gearBox.setSize(6); + + OCar car = new OCar(); + car.setVin("xx4534"); + car.setName("test car"); + car.setEngine(engine); + + Ebean.beginTransaction(); + try { + Ebean.save(gearBox); + Ebean.save(car); + + Assert.assertNotNull(car.getId()); + Assert.assertNotNull(engine.getEngineId()); + Assert.assertNotNull(gearBox.getId()); + + Ebean.commitTransaction(); + + } finally { + Ebean.endTransaction(); } + + OCar c2 = Ebean.find(OCar.class, car.getId()); + Assert.assertNotNull(c2); + Assert.assertNotNull(c2.getEngine()); + // gearBox not assigned yet + Assert.assertNull(c2.getGearBox()); + + // ok, assign gearBox + c2.setGearBox(gearBox); + Ebean.save(c2); + + // now all should be there... + OCar c3 = Ebean.find(OCar.class, car.getId()); + Assert.assertNotNull(c3); + Assert.assertNotNull(c3.getEngine()); + Assert.assertNotNull(c3.getGearBox()); + + } } diff --git a/src/test/java/com/avaje/tests/basic/TestNonUpdateProperty.java b/src/test/java/com/avaje/tests/basic/TestNonUpdateProperty.java index e3100c29f..ed33fd984 100644 --- a/src/test/java/com/avaje/tests/basic/TestNonUpdateProperty.java +++ b/src/test/java/com/avaje/tests/basic/TestNonUpdateProperty.java @@ -1,24 +1,26 @@ package com.avaje.tests.basic; -import junit.framework.TestCase; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.tests.model.basic.MNonUpdPropEntity; -public class TestNonUpdateProperty extends TestCase { +public class TestNonUpdateProperty extends BaseTestCase { - public void test() { - - MNonUpdPropEntity e = new MNonUpdPropEntity(); - e.setName("name"); - e.setNote("note"); - - Ebean.save(e); - - MNonUpdPropEntity e2 = Ebean.find(MNonUpdPropEntity.class, e.getId()); + @Test + public void test() { - e2.setName("mod"); - Ebean.update(e2); - - } + MNonUpdPropEntity e = new MNonUpdPropEntity(); + e.setName("name"); + e.setNote("note"); + + Ebean.save(e); + + MNonUpdPropEntity e2 = Ebean.find(MNonUpdPropEntity.class, e.getId()); + + e2.setName("mod"); + Ebean.update(e2); + + } } diff --git a/src/test/java/com/avaje/tests/basic/TestOrderByAnnotation.java b/src/test/java/com/avaje/tests/basic/TestOrderByAnnotation.java index 78e8d9c12..d60b8d6cf 100644 --- a/src/test/java/com/avaje/tests/basic/TestOrderByAnnotation.java +++ b/src/test/java/com/avaje/tests/basic/TestOrderByAnnotation.java @@ -3,16 +3,19 @@ package com.avaje.tests.basic; import java.util.List; import junit.framework.Assert; -import junit.framework.TestCase; +import org.junit.Test; + +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.Query; import com.avaje.tests.model.basic.Customer; import com.avaje.tests.model.basic.Order; import com.avaje.tests.model.basic.ResetBasicData; -public class TestOrderByAnnotation extends TestCase { +public class TestOrderByAnnotation extends BaseTestCase { + @Test public void testOrderBy() { ResetBasicData.reset(); diff --git a/src/test/java/com/avaje/tests/basic/TestOrderTotalAmountFormula.java b/src/test/java/com/avaje/tests/basic/TestOrderTotalAmountFormula.java index 4b5435dc2..7ef6340e0 100644 --- a/src/test/java/com/avaje/tests/basic/TestOrderTotalAmountFormula.java +++ b/src/test/java/com/avaje/tests/basic/TestOrderTotalAmountFormula.java @@ -2,36 +2,35 @@ package com.avaje.tests.basic; import java.util.List; -import junit.framework.TestCase; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.tests.model.basic.Customer; import com.avaje.tests.model.basic.Order; import com.avaje.tests.model.basic.ResetBasicData; -public class TestOrderTotalAmountFormula extends TestCase { +public class TestOrderTotalAmountFormula extends BaseTestCase { - public void testAsJoin() { + @Test + public void testAsJoin() { - ResetBasicData.reset(); - - List l0 = Ebean.find(Customer.class) - .select("id, name") - .fetch("orders", "status, totalAmount") - .where() - .eq("orders.details.product.name", "Desk") - .like("contacts.firstName", "Ji%") + ResetBasicData.reset(); - .findList(); + List l0 = Ebean.find(Customer.class).select("id, name") + .fetch("orders", "status, totalAmount").where().eq("orders.details.product.name", "Desk") + .like("contacts.firstName", "Ji%") - for (Customer c0 : l0) { - System.out.println("customer: "+c0.getId()); - List orders = c0.getOrders(); - for (Order order : orders) { - System.out.println("... order:"+order); - } - } + .findList(); + for (Customer c0 : l0) { + System.out.println("customer: " + c0.getId()); + List orders = c0.getOrders(); + for (Order order : orders) { + System.out.println("... order:" + order); + } } - + + } + } diff --git a/src/test/java/com/avaje/tests/basic/TestOrderTotalAmountReportBean.java b/src/test/java/com/avaje/tests/basic/TestOrderTotalAmountReportBean.java index 88b5491d2..0712ff88e 100644 --- a/src/test/java/com/avaje/tests/basic/TestOrderTotalAmountReportBean.java +++ b/src/test/java/com/avaje/tests/basic/TestOrderTotalAmountReportBean.java @@ -3,52 +3,46 @@ package com.avaje.tests.basic; import java.util.List; import junit.framework.Assert; -import junit.framework.TestCase; +import org.junit.Test; + +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.tests.model.basic.OrderAggregate; import com.avaje.tests.model.basic.ResetBasicData; -public class TestOrderTotalAmountReportBean extends TestCase { +public class TestOrderTotalAmountReportBean extends BaseTestCase { - public void test() { + @Test + public void test() { - ResetBasicData.reset(); + ResetBasicData.reset(); - List l0 = - Ebean.find(OrderAggregate.class) - .findList(); - - for (OrderAggregate r0 : l0) { - System.out.println(r0); - } - - List list = - Ebean.createNamedQuery(OrderAggregate.class,"total.amount") - .where().gt("order.id", 0) - .having().gt("totalAmount", 50) - .findList(); - - for (OrderAggregate r1 : list) { - System.out.println(r1); - Assert.assertTrue(r1.getTotalAmount() > 20.50); - // partial object query without totalItems - // ... no lazy loading invoked on this type of bean - Assert.assertTrue(r1.getTotalItems() == null); - } - - - List l2 = - Ebean.createQuery(OrderAggregate.class) - .where().gt("order.id", 0) - .having().lt("totalItems", 3).gt("totalAmount", 50) - .findList(); - - for (OrderAggregate r2 : l2) { - //System.out.println(r2); - Assert.assertTrue(r2.getTotalItems() < 3); - } - + List l0 = Ebean.find(OrderAggregate.class).findList(); + + for (OrderAggregate r0 : l0) { + System.out.println(r0); } + List list = Ebean.createNamedQuery(OrderAggregate.class, "total.amount") + .where().gt("order.id", 0).having().gt("totalAmount", 50).findList(); + + for (OrderAggregate r1 : list) { + System.out.println(r1); + Assert.assertTrue(r1.getTotalAmount() > 20.50); + // partial object query without totalItems + // ... no lazy loading invoked on this type of bean + Assert.assertTrue(r1.getTotalItems() == null); + } + + List l2 = Ebean.createQuery(OrderAggregate.class).where().gt("order.id", 0) + .having().lt("totalItems", 3).gt("totalAmount", 50).findList(); + + for (OrderAggregate r2 : l2) { + // System.out.println(r2); + Assert.assertTrue(r2.getTotalItems() < 3); + } + + } + } diff --git a/src/test/java/com/avaje/tests/basic/TestOrderTotalAmountSql.java b/src/test/java/com/avaje/tests/basic/TestOrderTotalAmountSql.java index e61786149..c961bca87 100644 --- a/src/test/java/com/avaje/tests/basic/TestOrderTotalAmountSql.java +++ b/src/test/java/com/avaje/tests/basic/TestOrderTotalAmountSql.java @@ -3,30 +3,30 @@ package com.avaje.tests.basic; import java.util.List; import junit.framework.Assert; -import junit.framework.TestCase; +import org.junit.Test; + +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.SqlRow; import com.avaje.tests.model.basic.ResetBasicData; -public class TestOrderTotalAmountSql extends TestCase { +public class TestOrderTotalAmountSql extends BaseTestCase { - public void test() { + @Test + public void test() { - ResetBasicData.reset(); + ResetBasicData.reset(); - String sql = "select order_id, sum(order_qty*unit_price) as total_amount from o_order_detail where order_qty > :minQty group by order_id"; - List sqlRows = - Ebean.createSqlQuery(sql) - .setParameter("minQty",1) - .findList(); - - for (SqlRow sqlRow : sqlRows) { - Integer id = sqlRow.getInteger("order_id"); - Double amount = sqlRow.getDouble("total_amount"); - Assert.assertNotNull("sqlRows: "+sqlRows,id); - Assert.assertNotNull("sqlRows: "+sqlRows,amount); - } + String sql = "select order_id, sum(order_qty*unit_price) as total_amount from o_order_detail where order_qty > :minQty group by order_id"; + List sqlRows = Ebean.createSqlQuery(sql).setParameter("minQty", 1).findList(); + + for (SqlRow sqlRow : sqlRows) { + Integer id = sqlRow.getInteger("order_id"); + Double amount = sqlRow.getDouble("total_amount"); + Assert.assertNotNull("sqlRows: " + sqlRows, id); + Assert.assertNotNull("sqlRows: " + sqlRows, amount); } + } } diff --git a/src/test/java/com/avaje/tests/basic/TestPaging.java b/src/test/java/com/avaje/tests/basic/TestPaging.java index 4fdecb2fc..fb434fa9d 100644 --- a/src/test/java/com/avaje/tests/basic/TestPaging.java +++ b/src/test/java/com/avaje/tests/basic/TestPaging.java @@ -4,8 +4,10 @@ import java.util.List; import java.util.Random; import junit.framework.Assert; -import junit.framework.TestCase; +import org.junit.Test; + +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.EbeanServer; import com.avaje.ebean.Page; @@ -13,7 +15,7 @@ import com.avaje.ebean.PagingList; import com.avaje.ebean.Query; import com.avaje.tests.model.basic.TOne; -public class TestPaging extends TestCase { +public class TestPaging extends BaseTestCase { private void loadData() { @@ -41,6 +43,7 @@ public class TestPaging extends TestCase { } + @Test public void test() throws Exception { loadData(); diff --git a/src/test/java/com/avaje/tests/basic/TestPersistenceContext.java b/src/test/java/com/avaje/tests/basic/TestPersistenceContext.java index 470bc1b73..845c2fceb 100644 --- a/src/test/java/com/avaje/tests/basic/TestPersistenceContext.java +++ b/src/test/java/com/avaje/tests/basic/TestPersistenceContext.java @@ -1,15 +1,18 @@ package com.avaje.tests.basic; import junit.framework.Assert; -import junit.framework.TestCase; +import org.junit.Test; + +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.tests.model.basic.Customer; import com.avaje.tests.model.basic.Order; import com.avaje.tests.model.basic.ResetBasicData; -public class TestPersistenceContext extends TestCase { +public class TestPersistenceContext extends BaseTestCase { + @Test public void test() { ResetBasicData.reset(); diff --git a/src/test/java/com/avaje/tests/basic/TestQuery.java b/src/test/java/com/avaje/tests/basic/TestQuery.java index df568204d..4f7b4a653 100644 --- a/src/test/java/com/avaje/tests/basic/TestQuery.java +++ b/src/test/java/com/avaje/tests/basic/TestQuery.java @@ -1,59 +1,49 @@ package com.avaje.tests.basic; import junit.framework.Assert; -import junit.framework.TestCase; +import org.junit.Test; + +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.Query; import com.avaje.tests.model.basic.Order; import com.avaje.tests.model.basic.ResetBasicData; -public class TestQuery extends TestCase -{ +public class TestQuery extends BaseTestCase { - public void testCountOrderBy() - { + @Test + public void testCountOrderBy() { - ResetBasicData.reset(); + ResetBasicData.reset(); - Query query = Ebean.find(Order.class) - .setAutofetch(false) - .order().asc("orderDate") - .order().desc("id"); - //.orderBy("orderDate"); + Query query = Ebean.find(Order.class).setAutofetch(false).order().asc("orderDate") + .order().desc("id"); + // .orderBy("orderDate"); - int rc = query.findList().size(); - //int rc = query.findRowCount(); - Assert.assertTrue(rc > 0); - //String generatedSql = query.getGeneratedSql(); - //Assert.assertFalse(generatedSql.contains("order by")); + int rc = query.findList().size(); + // int rc = query.findRowCount(); + Assert.assertTrue(rc > 0); + // String generatedSql = query.getGeneratedSql(); + // Assert.assertFalse(generatedSql.contains("order by")); - } + } - public void testForUpdate() - { - ResetBasicData.reset(); + public void testForUpdate() { + ResetBasicData.reset(); - Query query = Ebean.find(Order.class) - .setAutofetch(false) - .setForUpdate(false) - .setMaxRows(1) - .order().asc("orderDate") - .order().desc("id"); - - int rc = query.findList().size(); - Assert.assertTrue(rc > 0); - assertTrue(query.getGeneratedSql().toLowerCase().indexOf("for update") < 0); + Query query = Ebean.find(Order.class).setAutofetch(false).setForUpdate(false) + .setMaxRows(1).order().asc("orderDate").order().desc("id"); - query = Ebean.find(Order.class) - .setAutofetch(false) - .setForUpdate(true) - .setMaxRows(1) - .order().asc("orderDate") - .order().desc("id"); + int rc = query.findList().size(); + Assert.assertTrue(rc > 0); + Assert.assertTrue(query.getGeneratedSql().toLowerCase().indexOf("for update") < 0); - rc = query.findList().size(); - Assert.assertTrue(rc > 0); - assertTrue(query.getGeneratedSql().toLowerCase().indexOf("for update") > -1); - } + query = Ebean.find(Order.class).setAutofetch(false).setForUpdate(true).setMaxRows(1).order() + .asc("orderDate").order().desc("id"); + + rc = query.findList().size(); + Assert.assertTrue(rc > 0); + Assert.assertTrue(query.getGeneratedSql().toLowerCase().indexOf("for update") > -1); + } } diff --git a/src/test/java/com/avaje/tests/basic/TestQueryParse.java b/src/test/java/com/avaje/tests/basic/TestQueryParse.java index 8ffb7bdaa..d1271aca5 100644 --- a/src/test/java/com/avaje/tests/basic/TestQueryParse.java +++ b/src/test/java/com/avaje/tests/basic/TestQueryParse.java @@ -1,16 +1,19 @@ package com.avaje.tests.basic; import junit.framework.Assert; -import junit.framework.TestCase; +import org.junit.Test; + +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.OrderBy; import com.avaje.ebean.Query; import com.avaje.tests.model.basic.Order; import com.avaje.tests.model.basic.ResetBasicData; -public class TestQueryParse extends TestCase { +public class TestQueryParse extends BaseTestCase { + @Test public void test() { //GlobalProperties.put("ebean.ddl.generate", "false"); //GlobalProperties.put("ebean.ddl.run", "false"); diff --git a/src/test/java/com/avaje/tests/basic/TestQueryWhereBetween.java b/src/test/java/com/avaje/tests/basic/TestQueryWhereBetween.java index 1083448ee..41d80e09c 100644 --- a/src/test/java/com/avaje/tests/basic/TestQueryWhereBetween.java +++ b/src/test/java/com/avaje/tests/basic/TestQueryWhereBetween.java @@ -3,30 +3,30 @@ package com.avaje.tests.basic; import java.sql.Timestamp; import junit.framework.Assert; -import junit.framework.TestCase; +import org.junit.Test; + +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.Query; import com.avaje.tests.model.basic.Order; import com.avaje.tests.model.basic.ResetBasicData; -public class TestQueryWhereBetween extends TestCase { +public class TestQueryWhereBetween extends BaseTestCase { - public void testCountOrderBy() { + @Test + public void testCountOrderBy() { - ResetBasicData.reset(); + ResetBasicData.reset(); - Timestamp t = new Timestamp(System.currentTimeMillis()); + Timestamp t = new Timestamp(System.currentTimeMillis()); - Query query = Ebean.find(Order.class) - .setAutofetch(false) - .where().betweenProperties("cretime","updtime", t) - .order().asc("orderDate") - .order().desc("id"); + Query query = Ebean.find(Order.class).setAutofetch(false).where() + .betweenProperties("cretime", "updtime", t).order().asc("orderDate").order().desc("id"); - query.findList(); + query.findList(); - String sql = query.getGeneratedSql(); - Assert.assertTrue(sql.indexOf("between t0.cretime and t0.updtime") > -1); - } + String sql = query.getGeneratedSql(); + Assert.assertTrue(sql.indexOf("between t0.cretime and t0.updtime") > -1); + } } diff --git a/src/test/java/com/avaje/tests/basic/TestQueryWithCache.java b/src/test/java/com/avaje/tests/basic/TestQueryWithCache.java index 5604a1418..51b1357ea 100644 --- a/src/test/java/com/avaje/tests/basic/TestQueryWithCache.java +++ b/src/test/java/com/avaje/tests/basic/TestQueryWithCache.java @@ -1,8 +1,10 @@ package com.avaje.tests.basic; import junit.framework.Assert; -import junit.framework.TestCase; +import org.junit.Test; + +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.cache.ServerCache; import com.avaje.ebean.cache.ServerCacheManager; @@ -12,109 +14,106 @@ import com.avaje.ebeaninternal.server.deploy.BeanDescriptor; import com.avaje.tests.model.basic.Country; import com.avaje.tests.model.basic.ResetBasicData; -public class TestQueryWithCache extends TestCase { +public class TestQueryWithCache extends BaseTestCase { - -// public void testJoinCache() { -// -// ResetBasicData.reset(); -// -// Ebean.getServer(null).runCacheWarming(); -// -// Query query = Ebean.createQuery(Order.class) -// .setAutofetch(false) -// .fetch("customer","+cache +readonly") -// .setId(1); -// -// Order order = query.findUnique(); -// Customer customer = order.getCustomer(); -// Assert.assertTrue(Ebean.getBeanState(customer).isReadOnly()); -// -//// // invoke lazy loading -//// customer.getName(); -//// -//// order = query.findUnique(); -//// customer = order.getCustomer(); -//// custState = Ebean.getBeanState(customer); -//// Assert.assertFalse(custState.isReadOnly()); -// -// } -// -// public void testFindId() { -// -// ResetBasicData.reset(); -// -// Order o = Ebean.find(Order.class) -// .setUseCache(true) -// .setReadOnly(true) -// .setId(1) -// .findUnique(); -// -// BeanState beanState = Ebean.getBeanState(o); -// Assert.assertTrue(beanState.isReadOnly()); -// -// Order o2 = Ebean.find(Order.class) -// .setUseCache(true) -// .setReadOnly(true) -// .setId(1) -// .findUnique(); -// -// BeanState beanState2 = Ebean.getBeanState(o2); -// -// // same instance as readOnly = true -// Assert.assertTrue("not same instance", o != o2); -// Assert.assertTrue(beanState2.isReadOnly()); -// -// Order o3 = Ebean.find(Order.class) -// .setUseCache(true) -// .setReadOnly(false) -// .setId(1) -// .findUnique(); -// -// // NOT the same instance as readOnly = false -// Assert.assertTrue("not same instance", o != o3); -// } - - public void testCountryDeploy() { + // public void testJoinCache() { + // + // ResetBasicData.reset(); + // + // Ebean.getServer(null).runCacheWarming(); + // + // Query query = Ebean.createQuery(Order.class) + // .setAutofetch(false) + // .fetch("customer","+cache +readonly") + // .setId(1); + // + // Order order = query.findUnique(); + // Customer customer = order.getCustomer(); + // Assert.assertTrue(Ebean.getBeanState(customer).isReadOnly()); + // + // // // invoke lazy loading + // // customer.getName(); + // // + // // order = query.findUnique(); + // // customer = order.getCustomer(); + // // custState = Ebean.getBeanState(customer); + // // Assert.assertFalse(custState.isReadOnly()); + // + // } + // + // public void testFindId() { + // + // ResetBasicData.reset(); + // + // Order o = Ebean.find(Order.class) + // .setUseCache(true) + // .setReadOnly(true) + // .setId(1) + // .findUnique(); + // + // BeanState beanState = Ebean.getBeanState(o); + // Assert.assertTrue(beanState.isReadOnly()); + // + // Order o2 = Ebean.find(Order.class) + // .setUseCache(true) + // .setReadOnly(true) + // .setId(1) + // .findUnique(); + // + // BeanState beanState2 = Ebean.getBeanState(o2); + // + // // same instance as readOnly = true + // Assert.assertTrue("not same instance", o != o2); + // Assert.assertTrue(beanState2.isReadOnly()); + // + // Order o3 = Ebean.find(Order.class) + // .setUseCache(true) + // .setReadOnly(false) + // .setId(1) + // .findUnique(); + // + // // NOT the same instance as readOnly = false + // Assert.assertTrue("not same instance", o != o3); + // } - ResetBasicData.reset(); - - SpiEbeanServer server = (SpiEbeanServer)Ebean.getServer(null); - BeanDescriptor beanDescriptor = server.getBeanDescriptor(Country.class); - CacheOptions cacheOptions = beanDescriptor.getCacheOptions(); - - Assert.assertNotNull(cacheOptions); - Assert.assertTrue(cacheOptions.isUseCache()); - Assert.assertTrue(cacheOptions.isReadOnly()); - Assert.assertTrue(beanDescriptor.isCacheSharableBeans()); - - ServerCacheManager serverCacheManager = server.getServerCacheManager(); - serverCacheManager.clear(Country.class); - - ServerCache beanCache = serverCacheManager.getBeanCache(Country.class); - Assert.assertEquals(0, beanCache.size()); - - Country nz1 = Ebean.getReference(Country.class, "NZ"); - Assert.assertEquals(0, beanCache.size()); - - // has the effect of loading the cache via lazy loading - nz1.getName(); - Assert.assertEquals(1, beanCache.size()); - - Country nz2 = Ebean.getReference(Country.class, "NZ"); - Country nz2b = Ebean.getReference(Country.class, "NZ"); - - Country nz3 = Ebean.find(Country.class, "NZ"); + @Test + public void testCountryDeploy() { - Country nz4 = Ebean.find(Country.class) - .setId("NZ") - .setAutofetch(false) - .setUseCache(false) - .findUnique(); - - Assert.assertTrue(nz2 == nz2b); - Assert.assertTrue(nz2 == nz3); - Assert.assertTrue(nz3 != nz4); - - } + ResetBasicData.reset(); + + SpiEbeanServer server = (SpiEbeanServer) Ebean.getServer(null); + BeanDescriptor beanDescriptor = server.getBeanDescriptor(Country.class); + CacheOptions cacheOptions = beanDescriptor.getCacheOptions(); + + Assert.assertNotNull(cacheOptions); + Assert.assertTrue(cacheOptions.isUseCache()); + Assert.assertTrue(cacheOptions.isReadOnly()); + Assert.assertTrue(beanDescriptor.isCacheSharableBeans()); + + ServerCacheManager serverCacheManager = server.getServerCacheManager(); + serverCacheManager.clear(Country.class); + + ServerCache beanCache = serverCacheManager.getBeanCache(Country.class); + Assert.assertEquals(0, beanCache.size()); + + Country nz1 = Ebean.getReference(Country.class, "NZ"); + Assert.assertEquals(0, beanCache.size()); + + // has the effect of loading the cache via lazy loading + nz1.getName(); + Assert.assertEquals(1, beanCache.size()); + + Country nz2 = Ebean.getReference(Country.class, "NZ"); + Country nz2b = Ebean.getReference(Country.class, "NZ"); + + Country nz3 = Ebean.find(Country.class, "NZ"); + + Country nz4 = Ebean.find(Country.class).setId("NZ").setAutofetch(false).setUseCache(false) + .findUnique(); + + Assert.assertTrue(nz2 == nz2b); + Assert.assertTrue(nz2 == nz3); + Assert.assertTrue(nz3 != nz4); + + } } diff --git a/src/test/java/com/avaje/tests/basic/TestReadOnlyPropagation.java b/src/test/java/com/avaje/tests/basic/TestReadOnlyPropagation.java index 3c095567b..8e0c69f5f 100644 --- a/src/test/java/com/avaje/tests/basic/TestReadOnlyPropagation.java +++ b/src/test/java/com/avaje/tests/basic/TestReadOnlyPropagation.java @@ -5,8 +5,10 @@ import java.util.List; import java.util.ListIterator; import junit.framework.Assert; -import junit.framework.TestCase; +import org.junit.Test; + +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.bean.BeanCollection; import com.avaje.tests.model.basic.Address; @@ -15,8 +17,9 @@ import com.avaje.tests.model.basic.Order; import com.avaje.tests.model.basic.OrderDetail; import com.avaje.tests.model.basic.ResetBasicData; -public class TestReadOnlyPropagation extends TestCase { +public class TestReadOnlyPropagation extends BaseTestCase { + @Test public void testReadOnly() { ResetBasicData.reset(); diff --git a/src/test/java/com/avaje/tests/basic/TestSaveDeleteOneToOne.java b/src/test/java/com/avaje/tests/basic/TestSaveDeleteOneToOne.java index d00f31c23..b7ae86d8f 100644 --- a/src/test/java/com/avaje/tests/basic/TestSaveDeleteOneToOne.java +++ b/src/test/java/com/avaje/tests/basic/TestSaveDeleteOneToOne.java @@ -1,14 +1,17 @@ package com.avaje.tests.basic; import junit.framework.Assert; -import junit.framework.TestCase; +import org.junit.Test; + +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.tests.model.basic.PersistentFile; import com.avaje.tests.model.basic.PersistentFileContent; -public class TestSaveDeleteOneToOne extends TestCase { +public class TestSaveDeleteOneToOne extends BaseTestCase { + @Test public void testCreateDeletePersistentFile() { PersistentFile persistentFile = new PersistentFile("test.txt", new PersistentFileContent("test".getBytes())); @@ -17,6 +20,7 @@ public class TestSaveDeleteOneToOne extends TestCase { Ebean.delete(persistentFile); } + @Test public void testCreateLoadDeletePersistentFile() { PersistentFile persistentFile = new PersistentFile("test.txt", new PersistentFileContent("test".getBytes())); diff --git a/src/test/java/com/avaje/tests/basic/TestSaveDeleteOneToOneMultiple.java b/src/test/java/com/avaje/tests/basic/TestSaveDeleteOneToOneMultiple.java index 2a97dc625..122e4ed3d 100644 --- a/src/test/java/com/avaje/tests/basic/TestSaveDeleteOneToOneMultiple.java +++ b/src/test/java/com/avaje/tests/basic/TestSaveDeleteOneToOneMultiple.java @@ -1,13 +1,15 @@ package com.avaje.tests.basic; import junit.framework.Assert; -import junit.framework.TestCase; +import org.junit.Test; + +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.tests.model.basic.PFile; import com.avaje.tests.model.basic.PFileContent; -public class TestSaveDeleteOneToOneMultiple extends TestCase { +public class TestSaveDeleteOneToOneMultiple extends BaseTestCase { // public void testCreateDeletePFile() { // PFile persistentFile = new PFile("test.txt", @@ -17,6 +19,7 @@ public class TestSaveDeleteOneToOneMultiple extends TestCase { // Ebean.delete(persistentFile); // } + @Test public void testCreateLoadDeletePFile() { PFile persistentFile = new PFile("test.txt", new PFileContent("test".getBytes())); diff --git a/src/test/java/com/avaje/tests/basic/TestSharedInstancePropagation.java b/src/test/java/com/avaje/tests/basic/TestSharedInstancePropagation.java index 5e9c67666..811795a9b 100644 --- a/src/test/java/com/avaje/tests/basic/TestSharedInstancePropagation.java +++ b/src/test/java/com/avaje/tests/basic/TestSharedInstancePropagation.java @@ -3,8 +3,10 @@ package com.avaje.tests.basic; import java.util.List; import junit.framework.Assert; -import junit.framework.TestCase; +import org.junit.Test; + +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.bean.BeanCollection; import com.avaje.tests.model.basic.Order; @@ -12,12 +14,13 @@ import com.avaje.tests.model.basic.OrderDetail; import com.avaje.tests.model.basic.Product; import com.avaje.tests.model.basic.ResetBasicData; -public class TestSharedInstancePropagation extends TestCase { +public class TestSharedInstancePropagation extends BaseTestCase { /** * Test that the sharedInstance status is propagated on lazy loading. */ + @Test public void testSharedListNavigate() { ResetBasicData.reset(); diff --git a/src/test/java/com/avaje/tests/basic/TestTransient.java b/src/test/java/com/avaje/tests/basic/TestTransient.java index b3f48dc71..91f63887a 100644 --- a/src/test/java/com/avaje/tests/basic/TestTransient.java +++ b/src/test/java/com/avaje/tests/basic/TestTransient.java @@ -1,61 +1,64 @@ package com.avaje.tests.basic; import junit.framework.Assert; -import junit.framework.TestCase; +import org.junit.Test; + +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.BeanState; import com.avaje.ebean.Ebean; import com.avaje.tests.model.basic.Customer; -public class TestTransient extends TestCase { +public class TestTransient extends BaseTestCase { - public void testTransient() { + @Test + public void testTransient() { - Customer cnew = new Customer(); - cnew.setName("testTrans"); + Customer cnew = new Customer(); + cnew.setName("testTrans"); - Ebean.save(cnew); - Integer custId = cnew.getId(); + Ebean.save(cnew); + Integer custId = cnew.getId(); - Customer c = Ebean.find(Customer.class).setAutofetch(false).setId(custId).findUnique(); + Customer c = Ebean.find(Customer.class).setAutofetch(false).setId(custId).findUnique(); - Assert.assertNotNull(c); + Assert.assertNotNull(c); - BeanState beanState = Ebean.getBeanState(c); - Assert.assertFalse("not new or dirty as transient", beanState.isNewOrDirty()); + BeanState beanState = Ebean.getBeanState(c); + Assert.assertFalse("not new or dirty as transient", beanState.isNewOrDirty()); - c.getLock().tryLock(); - try { - c.setSelected(Boolean.TRUE); - } finally { - c.getLock().unlock(); - } - - Boolean selected = c.getSelected(); - Assert.assertNotNull(selected); - - Assert.assertFalse("not new or dirty as transient", beanState.isNewOrDirty()); - - Ebean.save(c); - - selected = c.getSelected(); - Assert.assertNotNull(selected); - - c.setName("Modified"); - Assert.assertTrue("dirty now", beanState.isNewOrDirty()); - - selected = c.getSelected(); - Assert.assertNotNull(selected); - - Ebean.save(c); - Assert.assertFalse("Not dirty after save", beanState.isNewOrDirty()); - - selected = c.getSelected(); - Assert.assertNotNull(selected); - - String updateStmt = "update customer set name = 'Rob' where id = :id"; - int rows = Ebean.createUpdate(Customer.class, updateStmt).set("id", custId).execute(); - - Assert.assertTrue("changed name back", 1 == rows); + c.getLock().tryLock(); + try { + c.setSelected(Boolean.TRUE); + } finally { + c.getLock().unlock(); } + + Boolean selected = c.getSelected(); + Assert.assertNotNull(selected); + + Assert.assertFalse("not new or dirty as transient", beanState.isNewOrDirty()); + + Ebean.save(c); + + selected = c.getSelected(); + Assert.assertNotNull(selected); + + c.setName("Modified"); + Assert.assertTrue("dirty now", beanState.isNewOrDirty()); + + selected = c.getSelected(); + Assert.assertNotNull(selected); + + Ebean.save(c); + Assert.assertFalse("Not dirty after save", beanState.isNewOrDirty()); + + selected = c.getSelected(); + Assert.assertNotNull(selected); + + String updateStmt = "update customer set name = 'Rob' where id = :id"; + int rows = Ebean.createUpdate(Customer.class, updateStmt).set("id", custId).execute(); + + Assert.assertTrue("changed name back", 1 == rows); + } } diff --git a/src/test/java/com/avaje/tests/basic/TestUpdateManyToOne.java b/src/test/java/com/avaje/tests/basic/TestUpdateManyToOne.java index 0677bc228..adca28095 100644 --- a/src/test/java/com/avaje/tests/basic/TestUpdateManyToOne.java +++ b/src/test/java/com/avaje/tests/basic/TestUpdateManyToOne.java @@ -2,39 +2,40 @@ package com.avaje.tests.basic; import java.util.List; -import junit.framework.TestCase; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.tests.model.basic.Customer; import com.avaje.tests.model.basic.Order; import com.avaje.tests.model.basic.ResetBasicData; -public class TestUpdateManyToOne extends TestCase{ +public class TestUpdateManyToOne extends BaseTestCase { - public void test() { - - ResetBasicData.reset(); - - List custs = Ebean.find(Customer.class).findList(); - - - List orders = Ebean.find(Order.class).setMaxRows(1).findList(); - - Order order = orders.get(0); - Customer customer = order.getCustomer(); - - Customer changeCust = null; - for (Customer c : custs) { - if (!customer.getId().equals(c.getId())){ - changeCust = c; - break; - } - } - order.setCustomer(changeCust); - Ebean.save(order); - - order.setCustomer(customer); - Ebean.save(order); - + @Test + public void test() { + + ResetBasicData.reset(); + + List custs = Ebean.find(Customer.class).findList(); + + List orders = Ebean.find(Order.class).setMaxRows(1).findList(); + + Order order = orders.get(0); + Customer customer = order.getCustomer(); + + Customer changeCust = null; + for (Customer c : custs) { + if (!customer.getId().equals(c.getId())) { + changeCust = c; + break; + } } + order.setCustomer(changeCust); + Ebean.save(order); + + order.setCustomer(customer); + Ebean.save(order); + + } } diff --git a/src/test/java/com/avaje/tests/basic/TestUuidInsert.java b/src/test/java/com/avaje/tests/basic/TestUuidInsert.java index f3781c39d..36cd874ac 100644 --- a/src/test/java/com/avaje/tests/basic/TestUuidInsert.java +++ b/src/test/java/com/avaje/tests/basic/TestUuidInsert.java @@ -1,13 +1,14 @@ package com.avaje.tests.basic; -import junit.framework.TestCase; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.tests.model.basic.TUuidEntity; -public class TestUuidInsert extends TestCase { +public class TestUuidInsert extends BaseTestCase { - + @Test public void test() { TUuidEntity e = new TUuidEntity(); diff --git a/src/test/java/com/avaje/tests/basic/TestUuidInsertMasterDetail.java b/src/test/java/com/avaje/tests/basic/TestUuidInsertMasterDetail.java index 3e165daef..99069115b 100644 --- a/src/test/java/com/avaje/tests/basic/TestUuidInsertMasterDetail.java +++ b/src/test/java/com/avaje/tests/basic/TestUuidInsertMasterDetail.java @@ -2,42 +2,44 @@ package com.avaje.tests.basic; import java.util.ArrayList; -import junit.framework.TestCase; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.tests.model.basic.UUOne; import com.avaje.tests.model.basic.UUTwo; -public class TestUuidInsertMasterDetail extends TestCase { +public class TestUuidInsertMasterDetail extends BaseTestCase { - public void testInsert() { - - UUTwo two = new UUTwo(); - two.setName("something"); - - ArrayList list = new ArrayList(); - list.add(two); - - UUOne one = new UUOne(); - one.setName("some one"); - one.setComments(list); + @Test + public void testInsert() { - Ebean.save(one); - - UUOne oneB = Ebean.find(UUOne.class, one.getId()); + UUTwo two = new UUTwo(); + two.setName("something"); + + ArrayList list = new ArrayList(); + list.add(two); + + UUOne one = new UUOne(); + one.setName("some one"); + one.setComments(list); + + Ebean.save(one); + + UUOne oneB = Ebean.find(UUOne.class, one.getId()); + + UUTwo twoB = new UUTwo(); + twoB.setName("another something"); + oneB.getComments().add(twoB); + + Ebean.save(oneB); + } + + public void testNullFK() { + + UUTwo two = new UUTwo(); + two.setName("something"); + Ebean.save(two); + } - UUTwo twoB = new UUTwo(); - twoB.setName("another something"); - oneB.getComments().add(twoB); - - Ebean.save(oneB); - } - - public void testNullFK() { - - UUTwo two = new UUTwo(); - two.setName("something"); - Ebean.save(two); - } - } diff --git a/src/test/java/com/avaje/tests/basic/TestWeakPersistenceContext.java b/src/test/java/com/avaje/tests/basic/TestWeakPersistenceContext.java index bcc85554a..1c39a2cd9 100644 --- a/src/test/java/com/avaje/tests/basic/TestWeakPersistenceContext.java +++ b/src/test/java/com/avaje/tests/basic/TestWeakPersistenceContext.java @@ -5,8 +5,10 @@ package com.avaje.tests.basic; import java.util.List; import junit.framework.Assert; -import junit.framework.TestCase; +import org.junit.Test; + +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.Transaction; import com.avaje.ebean.bean.PersistenceContext; @@ -14,9 +16,9 @@ import com.avaje.ebeaninternal.api.SpiTransaction; import com.avaje.tests.model.basic.Order; import com.avaje.tests.model.basic.ResetBasicData; -public class TestWeakPersistenceContext extends TestCase { +public class TestWeakPersistenceContext extends BaseTestCase { - + @Test public void testOne() { PersistenceContext ctx = inner(); diff --git a/src/test/java/com/avaje/tests/basic/TestWhereAnnotation.java b/src/test/java/com/avaje/tests/basic/TestWhereAnnotation.java index cdf4b8862..0e7c0150b 100644 --- a/src/test/java/com/avaje/tests/basic/TestWhereAnnotation.java +++ b/src/test/java/com/avaje/tests/basic/TestWhereAnnotation.java @@ -3,35 +3,34 @@ package com.avaje.tests.basic; import java.util.List; import junit.framework.Assert; -import junit.framework.TestCase; +import org.junit.Test; + +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.Query; import com.avaje.tests.model.basic.Customer; import com.avaje.tests.model.basic.Order; import com.avaje.tests.model.basic.ResetBasicData; -public class TestWhereAnnotation extends TestCase { +public class TestWhereAnnotation extends BaseTestCase { - public void testWhere() { - - ResetBasicData.reset(); - Customer custTest = ResetBasicData.createCustAndOrder("testWhereAnn"); - - Customer customer = Ebean.find(Customer.class, custTest.getId()); - List orders = customer.getOrders(); - - Assert.assertTrue(orders.size() > 0); - - - Query q1 = Ebean.find(Customer.class) - .setUseCache(false) - .fetch("orders") - .where().idEq(1) - .query(); - - q1.findUnique(); - String s1 = q1.getGeneratedSql(); - Assert.assertTrue(s1.contains("t1.order_date is not null")); - } + @Test + public void testWhere() { + + ResetBasicData.reset(); + Customer custTest = ResetBasicData.createCustAndOrder("testWhereAnn"); + + Customer customer = Ebean.find(Customer.class, custTest.getId()); + List orders = customer.getOrders(); + + Assert.assertTrue(orders.size() > 0); + + Query q1 = Ebean.find(Customer.class).setUseCache(false).fetch("orders").where() + .idEq(1).query(); + + q1.findUnique(); + String s1 = q1.getGeneratedSql(); + Assert.assertTrue(s1.contains("t1.order_date is not null")); + } } diff --git a/src/test/java/com/avaje/tests/basic/delete/TestDeleteByIdList.java b/src/test/java/com/avaje/tests/basic/delete/TestDeleteByIdList.java index 0e5c72795..bc9521c51 100644 --- a/src/test/java/com/avaje/tests/basic/delete/TestDeleteByIdList.java +++ b/src/test/java/com/avaje/tests/basic/delete/TestDeleteByIdList.java @@ -2,8 +2,10 @@ package com.avaje.tests.basic.delete; import java.util.List; -import junit.framework.TestCase; +import org.junit.Assert; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebeaninternal.api.SpiEbeanServer; import com.avaje.tests.model.basic.Customer; @@ -11,29 +13,27 @@ import com.avaje.tests.model.basic.Order; import com.avaje.tests.model.basic.OrderDetail; import com.avaje.tests.model.basic.ResetBasicData; -public class TestDeleteByIdList extends TestCase { +public class TestDeleteByIdList extends BaseTestCase { - public void test() { - - ResetBasicData.reset(); - - OrderDetail dummy = Ebean.getReference(OrderDetail.class, 1); - SpiEbeanServer server = (SpiEbeanServer)Ebean.getServer(null); - server.getBeanDescriptor(OrderDetail.class).cachePutBeanData(dummy); - - Customer c0 = ResetBasicData.createCustAndOrder("DelIdList-0"); - assertNotNull(c0); + @Test + public void test() { - Customer c1 = ResetBasicData.createCustAndOrder("DelIdList-1"); + ResetBasicData.reset(); - List orderIds = Ebean.find(Order.class) - .where().in("customer", c0,c1) - .findIds(); + OrderDetail dummy = Ebean.getReference(OrderDetail.class, 1); + SpiEbeanServer server = (SpiEbeanServer) Ebean.getServer(null); + server.getBeanDescriptor(OrderDetail.class).cachePutBeanData(dummy); - assertEquals(2, orderIds.size()); - - - Ebean.delete(Order.class, orderIds); - - } + Customer c0 = ResetBasicData.createCustAndOrder("DelIdList-0"); + Assert.assertNotNull(c0); + + Customer c1 = ResetBasicData.createCustAndOrder("DelIdList-1"); + + List orderIds = Ebean.find(Order.class).where().in("customer", c0, c1).findIds(); + + Assert.assertEquals(2, orderIds.size()); + + Ebean.delete(Order.class, orderIds); + + } } diff --git a/src/test/java/com/avaje/tests/basic/delete/TestDeleteCascadeById.java b/src/test/java/com/avaje/tests/basic/delete/TestDeleteCascadeById.java index c83545dbe..a56fea597 100644 --- a/src/test/java/com/avaje/tests/basic/delete/TestDeleteCascadeById.java +++ b/src/test/java/com/avaje/tests/basic/delete/TestDeleteCascadeById.java @@ -2,8 +2,10 @@ package com.avaje.tests.basic.delete; import java.util.List; -import junit.framework.TestCase; +import org.junit.Assert; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebeaninternal.api.SpiEbeanServer; import com.avaje.tests.model.basic.Customer; @@ -11,28 +13,27 @@ import com.avaje.tests.model.basic.Order; import com.avaje.tests.model.basic.OrderDetail; import com.avaje.tests.model.basic.ResetBasicData; -public class TestDeleteCascadeById extends TestCase { +public class TestDeleteCascadeById extends BaseTestCase { - public void test() { - - ResetBasicData.reset(); - - OrderDetail dummy = Ebean.getReference(OrderDetail.class, 1); - SpiEbeanServer server = (SpiEbeanServer)Ebean.getServer(null); - server.getBeanDescriptor(OrderDetail.class).cachePutBeanData(dummy); - - Customer cust = ResetBasicData.createCustAndOrder("DelCas"); - assertNotNull(cust); - - List orders = Ebean.find(Order.class) - .where().eq("customer", cust) - .findList(); + @Test + public void test() { - assertEquals(1, orders.size()); - Order o = orders.get(0); - assertNotNull(o); - - Ebean.delete(o); - - } + ResetBasicData.reset(); + + OrderDetail dummy = Ebean.getReference(OrderDetail.class, 1); + SpiEbeanServer server = (SpiEbeanServer) Ebean.getServer(null); + server.getBeanDescriptor(OrderDetail.class).cachePutBeanData(dummy); + + Customer cust = ResetBasicData.createCustAndOrder("DelCas"); + Assert.assertNotNull(cust); + + List orders = Ebean.find(Order.class).where().eq("customer", cust).findList(); + + Assert.assertEquals(1, orders.size()); + Order o = orders.get(0); + Assert.assertNotNull(o); + + Ebean.delete(o); + + } } diff --git a/src/test/java/com/avaje/tests/basic/encrypt/TestEncrypt.java b/src/test/java/com/avaje/tests/basic/encrypt/TestEncrypt.java index 2377a0979..6fcd7ca7d 100644 --- a/src/test/java/com/avaje/tests/basic/encrypt/TestEncrypt.java +++ b/src/test/java/com/avaje/tests/basic/encrypt/TestEncrypt.java @@ -3,10 +3,10 @@ package com.avaje.tests.basic.encrypt; import java.sql.Date; import java.util.List; -import junit.framework.TestCase; - import org.junit.Assert; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.SqlQuery; import com.avaje.ebean.SqlRow; @@ -14,90 +14,78 @@ import com.avaje.ebean.config.dbplatform.DbEncrypt; import com.avaje.ebeaninternal.api.SpiEbeanServer; import com.avaje.tests.model.basic.EBasicEncrypt; -public class TestEncrypt extends TestCase { +public class TestEncrypt extends BaseTestCase { - public void test() { - - EBasicEncrypt e = new EBasicEncrypt(); - e.setName("testname"); - e.setDescription("testdesc"); - e.setDob(new Date(System.currentTimeMillis()-100000)); - - Ebean.save(e); - - Date earlyDob = new Date(System.currentTimeMillis()-500000); - - List qlList = - Ebean.createQuery(EBasicEncrypt.class, "where description like :d and dob >= :dob") - .setParameter("d", "testde%") - .setParameter("dob", earlyDob) - .findList(); - - Assert.assertTrue(qlList.size() > 0); - - qlList = - Ebean.createQuery(EBasicEncrypt.class, "find e (id, description) where description = :d") - .setParameter("d", "testdesc") - .findList(); - - Assert.assertTrue(qlList.size() == 1); - - - - SqlQuery q = Ebean.createSqlQuery("select * from e_basicenc where id = :id"); - q.setParameter("id", e.getId()); - - SqlRow row = q.findUnique(); - String name = row.getString("name"); - Object desc = row.get("description"); - System.out.println("SqlRow: "+name+" "+desc); - - EBasicEncrypt e1 = Ebean.find(EBasicEncrypt.class, e.getId()); - - String desc1 = e1.getDescription(); - System.out.println("Decrypted: "+desc1+" "+e1.getDob()); - - - e1.setName("testmod"); - e1.setDescription("moddesc"); - - Ebean.save(e1); + @Test + public void test() { - EBasicEncrypt e2 = Ebean.find(EBasicEncrypt.class, e.getId()); - - String desc2 = e2.getDescription(); - System.out.println("moddesc="+desc2); - - SpiEbeanServer server = (SpiEbeanServer)Ebean.getServer(null); - DbEncrypt dbEncrypt = server.getDatabasePlatform().getDbEncrypt(); - - if (dbEncrypt == null){ - // can not test the where clause - System.out.println("TestEncrypt: Not testing where clause as no DbEncrypt"); - - } else { - - List list = - Ebean.find(EBasicEncrypt.class) - .where().eq("description", "moddesc") - .findList(); - - Assert.assertEquals(1, list.size()); - - list - = Ebean.find(EBasicEncrypt.class) - .where().startsWith("description", "modde") - .findList(); - - Assert.assertEquals(1, list.size()); - - list = - Ebean.createQuery(EBasicEncrypt.class, "where description like :d") - .setParameter("d", "modde%") - .findList(); - - Assert.assertNotNull(list); - } + EBasicEncrypt e = new EBasicEncrypt(); + e.setName("testname"); + e.setDescription("testdesc"); + e.setDob(new Date(System.currentTimeMillis() - 100000)); + + Ebean.save(e); + + Date earlyDob = new Date(System.currentTimeMillis() - 500000); + + List qlList = Ebean + .createQuery(EBasicEncrypt.class, "where description like :d and dob >= :dob") + .setParameter("d", "testde%").setParameter("dob", earlyDob).findList(); + + Assert.assertTrue(qlList.size() > 0); + + qlList = Ebean + .createQuery(EBasicEncrypt.class, "find e (id, description) where description = :d") + .setParameter("d", "testdesc").findList(); + + Assert.assertTrue(qlList.size() == 1); + + SqlQuery q = Ebean.createSqlQuery("select * from e_basicenc where id = :id"); + q.setParameter("id", e.getId()); + + SqlRow row = q.findUnique(); + String name = row.getString("name"); + Object desc = row.get("description"); + System.out.println("SqlRow: " + name + " " + desc); + + EBasicEncrypt e1 = Ebean.find(EBasicEncrypt.class, e.getId()); + + String desc1 = e1.getDescription(); + System.out.println("Decrypted: " + desc1 + " " + e1.getDob()); + + e1.setName("testmod"); + e1.setDescription("moddesc"); + + Ebean.save(e1); + + EBasicEncrypt e2 = Ebean.find(EBasicEncrypt.class, e.getId()); + + String desc2 = e2.getDescription(); + System.out.println("moddesc=" + desc2); + + SpiEbeanServer server = (SpiEbeanServer) Ebean.getServer(null); + DbEncrypt dbEncrypt = server.getDatabasePlatform().getDbEncrypt(); + + if (dbEncrypt == null) { + // can not test the where clause + System.out.println("TestEncrypt: Not testing where clause as no DbEncrypt"); + + } else { + + List list = Ebean.find(EBasicEncrypt.class).where() + .eq("description", "moddesc").findList(); + + Assert.assertEquals(1, list.size()); + + list = Ebean.find(EBasicEncrypt.class).where().startsWith("description", "modde").findList(); + + Assert.assertEquals(1, list.size()); + + list = Ebean.createQuery(EBasicEncrypt.class, "where description like :d") + .setParameter("d", "modde%").findList(); + + Assert.assertNotNull(list); } - + } + } diff --git a/src/test/java/com/avaje/tests/basic/encrypt/TestEncryptBinary.java b/src/test/java/com/avaje/tests/basic/encrypt/TestEncryptBinary.java index 9a05da8e6..cbffe808c 100644 --- a/src/test/java/com/avaje/tests/basic/encrypt/TestEncryptBinary.java +++ b/src/test/java/com/avaje/tests/basic/encrypt/TestEncryptBinary.java @@ -3,55 +3,57 @@ package com.avaje.tests.basic.encrypt; import java.sql.Timestamp; import junit.framework.Assert; -import junit.framework.TestCase; +import org.junit.Test; + +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.SqlQuery; import com.avaje.ebean.SqlRow; import com.avaje.tests.model.basic.EBasicEncryptBinary; -public class TestEncryptBinary extends TestCase { +public class TestEncryptBinary extends BaseTestCase { - public void test() { - - Timestamp t0 = new Timestamp(System.currentTimeMillis()); - EBasicEncryptBinary e = new EBasicEncryptBinary(); - e.setName("test1"); - e.setDescription("testdesc1"); - e.setSomeTime(t0); - e.setData("HelloWorld".getBytes()); - - Ebean.save(e); - - - SqlQuery q = Ebean.createSqlQuery("select * from e_basicenc_bin where id = :id"); - q.setParameter("id", e.getId()); - - SqlRow row = q.findUnique(); - String name = row.getString("name"); - Object data = row.get("data"); - Object someTimeData = row.get("some_time"); - System.out.println("SqlRow name:"+name+" data:"+data+" someTime:"+someTimeData); - - EBasicEncryptBinary e1 = Ebean.find(EBasicEncryptBinary.class, e.getId()); + @Test + public void test() { - Timestamp t1 = e1.getSomeTime(); - byte[] data1 = e1.getData(); - String s = new String(data1); - String desc1 = e1.getDescription(); - System.out.println("Decrypted data:"+s+" desc:"+desc1); - - Assert.assertEquals(t0, t1); - - e1.setName("testmod"); - e1.setDescription("moddesc"); - - Ebean.save(e1); + Timestamp t0 = new Timestamp(System.currentTimeMillis()); + EBasicEncryptBinary e = new EBasicEncryptBinary(); + e.setName("test1"); + e.setDescription("testdesc1"); + e.setSomeTime(t0); + e.setData("HelloWorld".getBytes()); + + Ebean.save(e); + + SqlQuery q = Ebean.createSqlQuery("select * from e_basicenc_bin where id = :id"); + q.setParameter("id", e.getId()); + + SqlRow row = q.findUnique(); + String name = row.getString("name"); + Object data = row.get("data"); + Object someTimeData = row.get("some_time"); + System.out.println("SqlRow name:" + name + " data:" + data + " someTime:" + someTimeData); + + EBasicEncryptBinary e1 = Ebean.find(EBasicEncryptBinary.class, e.getId()); + + Timestamp t1 = e1.getSomeTime(); + byte[] data1 = e1.getData(); + String s = new String(data1); + String desc1 = e1.getDescription(); + System.out.println("Decrypted data:" + s + " desc:" + desc1); + + Assert.assertEquals(t0, t1); + + e1.setName("testmod"); + e1.setDescription("moddesc"); + + Ebean.save(e1); + + EBasicEncryptBinary e2 = Ebean.find(EBasicEncryptBinary.class, e.getId()); + + String desc2 = e2.getDescription(); + System.out.println("moddesc=" + desc2); + } - EBasicEncryptBinary e2 = Ebean.find(EBasicEncryptBinary.class, e.getId()); - - String desc2 = e2.getDescription(); - System.out.println("moddesc="+desc2); - } - } diff --git a/src/test/java/com/avaje/tests/basic/event/TestPreInsertValidation.java b/src/test/java/com/avaje/tests/basic/event/TestPreInsertValidation.java index 82a9b3099..7fb985c8f 100644 --- a/src/test/java/com/avaje/tests/basic/event/TestPreInsertValidation.java +++ b/src/test/java/com/avaje/tests/basic/event/TestPreInsertValidation.java @@ -1,13 +1,16 @@ package com.avaje.tests.basic.event; import junit.framework.Assert; -import junit.framework.TestCase; +import org.junit.Test; + +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.tests.model.basic.TWithPreInsert; -public class TestPreInsertValidation extends TestCase { +public class TestPreInsertValidation extends BaseTestCase { + @Test public void test() { TWithPreInsert e = new TWithPreInsert(); diff --git a/src/test/java/com/avaje/tests/basic/event/TestQueryAdapter.java b/src/test/java/com/avaje/tests/basic/event/TestQueryAdapter.java index 906b03340..1da628051 100644 --- a/src/test/java/com/avaje/tests/basic/event/TestQueryAdapter.java +++ b/src/test/java/com/avaje/tests/basic/event/TestQueryAdapter.java @@ -1,15 +1,18 @@ package com.avaje.tests.basic.event; import junit.framework.Assert; -import junit.framework.TestCase; +import org.junit.Test; + +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.Query; import com.avaje.tests.model.basic.ResetBasicData; import com.avaje.tests.model.basic.TOne; -public class TestQueryAdapter extends TestCase { +public class TestQueryAdapter extends BaseTestCase { + @Test public void testSimple() { ResetBasicData.reset(); diff --git a/src/test/java/com/avaje/tests/basic/join/TestSecondaryJoin.java b/src/test/java/com/avaje/tests/basic/join/TestSecondaryJoin.java index 7e6091746..33b221479 100644 --- a/src/test/java/com/avaje/tests/basic/join/TestSecondaryJoin.java +++ b/src/test/java/com/avaje/tests/basic/join/TestSecondaryJoin.java @@ -2,32 +2,34 @@ package com.avaje.tests.basic.join; import java.util.List; -import junit.framework.TestCase; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.tests.model.basic.Order; import com.avaje.tests.model.basic.Order.Status; import com.avaje.tests.model.basic.ResetBasicData; -public class TestSecondaryJoin extends TestCase { +public class TestSecondaryJoin extends BaseTestCase { + + @Test + public void test() { + + ResetBasicData.reset(); + + List list = Ebean.find(Order.class) + // .select("*") + // .join("customer") + .findList(); + + Order o0 = list.get(0); + o0.setCustomerName("Banan"); + o0.setStatus(Status.APPROVED); + + Ebean.save(o0); + + System.out.println("done"); + + } - public void test() { - - ResetBasicData.reset(); - - List list = Ebean.find(Order.class) - //.select("*") - //.join("customer") - .findList(); - - Order o0 = list.get(0); - o0.setCustomerName("Banan"); - o0.setStatus(Status.APPROVED); - - Ebean.save(o0); - - System.out.println("done"); - - } - } diff --git a/src/test/java/com/avaje/tests/basic/lob/TestBasicClobNoVer.java b/src/test/java/com/avaje/tests/basic/lob/TestBasicClobNoVer.java index 4f308fa87..226a9cc7d 100644 --- a/src/test/java/com/avaje/tests/basic/lob/TestBasicClobNoVer.java +++ b/src/test/java/com/avaje/tests/basic/lob/TestBasicClobNoVer.java @@ -1,27 +1,28 @@ package com.avaje.tests.basic.lob; -import junit.framework.TestCase; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.EbeanServer; import com.avaje.tests.model.basic.EBasicClobNoVer; -public class TestBasicClobNoVer extends TestCase { +public class TestBasicClobNoVer extends BaseTestCase { - public void test() { - - EBasicClobNoVer entity = new EBasicClobNoVer(); - entity.setName("test"); - entity.setDescription("This is a test"); - EbeanServer server = Ebean.getServer(null); - server.save(entity); - - Ebean.find(EBasicClobNoVer.class).select("*").findList(); - - server.refresh(entity); - System.out.println("description=" + entity.getDescription()); + @Test + public void test() { + + EBasicClobNoVer entity = new EBasicClobNoVer(); + entity.setName("test"); + entity.setDescription("This is a test"); + EbeanServer server = Ebean.getServer(null); + server.save(entity); + + Ebean.find(EBasicClobNoVer.class).select("*").findList(); + + server.refresh(entity); + System.out.println("description=" + entity.getDescription()); + + } - - } - } diff --git a/src/test/java/com/avaje/tests/basic/lob/TestByteOnly.java b/src/test/java/com/avaje/tests/basic/lob/TestByteOnly.java index 00bc299d4..758ac7e59 100644 --- a/src/test/java/com/avaje/tests/basic/lob/TestByteOnly.java +++ b/src/test/java/com/avaje/tests/basic/lob/TestByteOnly.java @@ -1,30 +1,32 @@ package com.avaje.tests.basic.lob; -import junit.framework.TestCase; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.tests.model.basic.TBytesOnly; -public class TestByteOnly extends TestCase { +public class TestByteOnly extends BaseTestCase { - public void test() { - - byte[] content = new byte[]{1,1}; - TBytesOnly e = new TBytesOnly(); - e.setContent(content); - - Ebean.save(e); + @Test + public void test() { - byte[] content2 = new byte[]{1,1}; + byte[] content = new byte[] { 1, 1 }; + TBytesOnly e = new TBytesOnly(); + e.setContent(content); + + Ebean.save(e); + + byte[] content2 = new byte[] { 1, 1 }; + + TBytesOnly e2 = Ebean.find(TBytesOnly.class, e.getId()); + e2.setContent(content2); + + Ebean.save(e2); + + // Ebean.getServer(null).getAdminAutofetch().collectUsageViaGC(); + // Ebean.getServer(null).getAdminAutofetch().updateTunedQueryInfo(); + System.out.println("done"); + } - TBytesOnly e2 = Ebean.find(TBytesOnly.class, e.getId()); - e2.setContent(content2); - - Ebean.save(e2); - - //Ebean.getServer(null).getAdminAutofetch().collectUsageViaGC(); - //Ebean.getServer(null).getAdminAutofetch().updateTunedQueryInfo(); - System.out.println("done"); - } - } diff --git a/src/test/java/com/avaje/tests/basic/one2one/TestOne2OneBookingInvoice.java b/src/test/java/com/avaje/tests/basic/one2one/TestOne2OneBookingInvoice.java index a293a2770..cc7d14379 100644 --- a/src/test/java/com/avaje/tests/basic/one2one/TestOne2OneBookingInvoice.java +++ b/src/test/java/com/avaje/tests/basic/one2one/TestOne2OneBookingInvoice.java @@ -1,41 +1,44 @@ package com.avaje.tests.basic.one2one; import junit.framework.Assert; -import junit.framework.TestCase; +import org.junit.Test; + +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; -public class TestOne2OneBookingInvoice extends TestCase { - - public void test() { - Booking b = new Booking(); +public class TestOne2OneBookingInvoice extends BaseTestCase { - Invoice ai = new Invoice(); - Invoice ci = new Invoice(); + @Test + public void test() { + Booking b = new Booking(); - ai.setBooking(b); - ci.setBooking(b); + Invoice ai = new Invoice(); + Invoice ci = new Invoice(); - b.setAgentInvoice(ai); - b.setClientInvoice(ci); + ai.setBooking(b); + ci.setBooking(b); - Ebean.save(b); - - Booking b1 = Ebean.find(Booking.class, b.getId()); - - Invoice ai1 = b1.getAgentInvoice(); - Assert.assertNotNull(ai1); - - Booking b2 = ai1.getBooking(); - Assert.assertNotNull(b2); - Assert.assertEquals(b1.getId(), b2.getId()); - Assert.assertSame(b1, b2); - - Invoice ci1 = b1.getClientInvoice(); - Booking b3 = ci1.getBooking(); - Assert.assertNotNull(b3); - Assert.assertEquals(b1.getId(), b2.getId()); - Assert.assertSame(b1, b2); - - } + b.setAgentInvoice(ai); + b.setClientInvoice(ci); + + Ebean.save(b); + + Booking b1 = Ebean.find(Booking.class, b.getId()); + + Invoice ai1 = b1.getAgentInvoice(); + Assert.assertNotNull(ai1); + + Booking b2 = ai1.getBooking(); + Assert.assertNotNull(b2); + Assert.assertEquals(b1.getId(), b2.getId()); + Assert.assertSame(b1, b2); + + Invoice ci1 = b1.getClientInvoice(); + Booking b3 = ci1.getBooking(); + Assert.assertNotNull(b3); + Assert.assertEquals(b1.getId(), b2.getId()); + Assert.assertSame(b1, b2); + + } } diff --git a/src/test/java/com/avaje/tests/basic/one2one/TestOneToOneWheelTire.java b/src/test/java/com/avaje/tests/basic/one2one/TestOneToOneWheelTire.java index 704c1145a..f7a8a260f 100644 --- a/src/test/java/com/avaje/tests/basic/one2one/TestOneToOneWheelTire.java +++ b/src/test/java/com/avaje/tests/basic/one2one/TestOneToOneWheelTire.java @@ -1,19 +1,21 @@ package com.avaje.tests.basic.one2one; -import junit.framework.TestCase; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; -public class TestOneToOneWheelTire extends TestCase { +public class TestOneToOneWheelTire extends BaseTestCase { + + @Test + public void test() { + + Wheel w = new Wheel(); + Tire t = new Tire(); + t.setWheel(w); + w.setTire(t); + + Ebean.save(t); + } - public void test() { - - Wheel w = new Wheel(); - Tire t = new Tire(); - t.setWheel(w); - w.setTire(t); - - Ebean.save(t); - } - } diff --git a/src/test/java/com/avaje/tests/basic/type/TestEnumValueAnnotation.java b/src/test/java/com/avaje/tests/basic/type/TestEnumValueAnnotation.java index 1946de31d..1a93a0871 100644 --- a/src/test/java/com/avaje/tests/basic/type/TestEnumValueAnnotation.java +++ b/src/test/java/com/avaje/tests/basic/type/TestEnumValueAnnotation.java @@ -1,9 +1,9 @@ package com.avaje.tests.basic.type; -import junit.framework.TestCase; - import org.junit.Assert; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.SqlQuery; import com.avaje.ebean.SqlRow; @@ -11,60 +11,60 @@ import com.avaje.tests.model.basic.EBasic; import com.avaje.tests.model.basic.EBasic.Status; import com.avaje.tests.model.basic.EBasicEnumId; -public class TestEnumValueAnnotation extends TestCase { +public class TestEnumValueAnnotation extends BaseTestCase { - public void test(){ - - EBasic b = new EBasic(); - b.setName("Banana"); - b.setStatus(Status.NEW); - - Ebean.save(b); - - SqlQuery q = Ebean.createSqlQuery("select * from e_basic where id = :id"); - q.setParameter("id", b.getId()); - - SqlRow sqlRow = q.findUnique(); - String strStatus = sqlRow.getString("status"); - - Assert.assertEquals("N", strStatus); - - EBasic b2 = new EBasic(); - b2.setName("Apple"); - b2.setStatus(Status.NEW); - - - Ebean.save(b2); - - EBasic b3 = Ebean.find(EBasic.class, b2.getId()); - b3.setName("Orange"); - - Ebean.save(b3); - + @Test + public void test() { + + EBasic b = new EBasic(); + b.setName("Banana"); + b.setStatus(Status.NEW); + + Ebean.save(b); + + SqlQuery q = Ebean.createSqlQuery("select * from e_basic where id = :id"); + q.setParameter("id", b.getId()); + + SqlRow sqlRow = q.findUnique(); + String strStatus = sqlRow.getString("status"); + + Assert.assertEquals("N", strStatus); + + EBasic b2 = new EBasic(); + b2.setName("Apple"); + b2.setStatus(Status.NEW); + + Ebean.save(b2); + + EBasic b3 = Ebean.find(EBasic.class, b2.getId()); + b3.setName("Orange"); + + Ebean.save(b3); + + } + + public void testAsId() { + EBasicEnumId b = new EBasicEnumId(); + b.setName("Banana"); + b.setStatus(EBasicEnumId.Status.NEW); + + Ebean.save(b); + + SqlQuery q = Ebean.createSqlQuery("select * from e_basic_enum_id where status = :status"); + q.setParameter("status", b.getStatus()); + + SqlRow sqlRow = q.findUnique(); + String strStatus = sqlRow.getString("status"); + + Assert.assertEquals("N", strStatus); + + try { + b = Ebean.find(EBasicEnumId.class, b.getStatus()); + } catch (java.lang.IllegalArgumentException iae) { + Assert.fail("The use of an enum as id should work : " + iae.getLocalizedMessage()); } - - public void testAsId(){ - EBasicEnumId b = new EBasicEnumId(); - b.setName("Banana"); - b.setStatus(EBasicEnumId.Status.NEW); - - Ebean.save(b); - - SqlQuery q = Ebean.createSqlQuery("select * from e_basic_enum_id where status = :status"); - q.setParameter("status", b.getStatus()); - - SqlRow sqlRow = q.findUnique(); - String strStatus = sqlRow.getString("status"); - - Assert.assertEquals("N", strStatus); - - try{ - b = Ebean.find(EBasicEnumId.class, b.getStatus()); - }catch(java.lang.IllegalArgumentException iae){ - fail("The use of an enum as id should work : " + iae.getLocalizedMessage() ); - } - - Assert.assertEquals(EBasicEnumId.Status.NEW, b.getStatus()); - } - + + Assert.assertEquals(EBasicEnumId.Status.NEW, b.getStatus()); + } + } diff --git a/src/test/java/com/avaje/tests/basic/type/TestExtraScalarTypes.java b/src/test/java/com/avaje/tests/basic/type/TestExtraScalarTypes.java index 2170bf78c..d7aa0318a 100644 --- a/src/test/java/com/avaje/tests/basic/type/TestExtraScalarTypes.java +++ b/src/test/java/com/avaje/tests/basic/type/TestExtraScalarTypes.java @@ -4,36 +4,34 @@ import java.util.Currency; import java.util.Locale; import java.util.TimeZone; -import junit.framework.TestCase; - import org.junit.Assert; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.tests.model.basic.ESomeType; -public class TestExtraScalarTypes extends TestCase { +public class TestExtraScalarTypes extends BaseTestCase { + + @Test + public void test() { + + Locale locale = Locale.getDefault(); + Currency currency = Currency.getInstance(locale); + TimeZone tz = TimeZone.getDefault(); + + ESomeType e = new ESomeType(); + e.setLocale(locale); + e.setTimeZone(tz); + e.setCurrency(currency); + + Ebean.save(e); + + ESomeType e2 = Ebean.find(ESomeType.class).setAutofetch(false).setId(e.getId()).findUnique(); + + Assert.assertNotNull(e2.getCurrency()); + Assert.assertNotNull(e2.getLocale()); + Assert.assertNotNull(e2.getTimeZone()); + } - public void test() { - - Locale locale = Locale.getDefault(); - Currency currency = Currency.getInstance(locale); - TimeZone tz = TimeZone.getDefault(); - - ESomeType e = new ESomeType(); - e.setLocale(locale); - e.setTimeZone(tz); - e.setCurrency(currency); - - Ebean.save(e); - - ESomeType e2 = Ebean.find(ESomeType.class) - .setAutofetch(false) - .setId(e.getId()) - .findUnique(); - - Assert.assertNotNull(e2.getCurrency()); - Assert.assertNotNull(e2.getLocale()); - Assert.assertNotNull(e2.getTimeZone()); - } - } diff --git a/src/test/java/com/avaje/tests/basic/type/TestQueryBooleanProperty.java b/src/test/java/com/avaje/tests/basic/type/TestQueryBooleanProperty.java index fe9c3cc5c..ff3e9b5da 100644 --- a/src/test/java/com/avaje/tests/basic/type/TestQueryBooleanProperty.java +++ b/src/test/java/com/avaje/tests/basic/type/TestQueryBooleanProperty.java @@ -1,17 +1,17 @@ package com.avaje.tests.basic.type; -import junit.framework.TestCase; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.tests.model.basic.TOne; -public class TestQueryBooleanProperty extends TestCase { +public class TestQueryBooleanProperty extends BaseTestCase { - public void test() { - - // when run in MySql is test for BUG 323 - Ebean.find(TOne.class) - .where().eq("active", true) - .findList(); - } + @Test + public void test() { + + // when run in MySql is test for BUG 323 + Ebean.find(TOne.class).where().eq("active", true).findList(); + } } diff --git a/src/test/java/com/avaje/tests/basic/type/TestSqlRowUUID.java b/src/test/java/com/avaje/tests/basic/type/TestSqlRowUUID.java index 725e91104..cfb91ee91 100644 --- a/src/test/java/com/avaje/tests/basic/type/TestSqlRowUUID.java +++ b/src/test/java/com/avaje/tests/basic/type/TestSqlRowUUID.java @@ -2,33 +2,34 @@ package com.avaje.tests.basic.type; import java.util.UUID; -import junit.framework.TestCase; - import org.junit.Assert; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.SqlQuery; import com.avaje.ebean.SqlRow; import com.avaje.tests.model.basic.TUuidEntity; -public class TestSqlRowUUID extends TestCase { +public class TestSqlRowUUID extends BaseTestCase { - public void test() { - - TUuidEntity e = new TUuidEntity(); - e.setName("blah"); - - Ebean.save(e); - - SqlQuery q = Ebean.createSqlQuery("select * from tuuid_entity where id = :id"); - q.setParameter("id", e.getId()); - SqlRow sqlRow = q.findUnique(); - - UUID id = sqlRow.getUUID("id"); - - Assert.assertNotNull(id); - - Boolean b = sqlRow.getBoolean("name"); - Assert.assertFalse(b); - } + @Test + public void test() { + + TUuidEntity e = new TUuidEntity(); + e.setName("blah"); + + Ebean.save(e); + + SqlQuery q = Ebean.createSqlQuery("select * from tuuid_entity where id = :id"); + q.setParameter("id", e.getId()); + SqlRow sqlRow = q.findUnique(); + + UUID id = sqlRow.getUUID("id"); + + Assert.assertNotNull(id); + + Boolean b = sqlRow.getBoolean("name"); + Assert.assertFalse(b); + } } diff --git a/src/test/java/com/avaje/tests/basic/type/TestTransientMap.java b/src/test/java/com/avaje/tests/basic/type/TestTransientMap.java index d3d11dba1..077123854 100644 --- a/src/test/java/com/avaje/tests/basic/type/TestTransientMap.java +++ b/src/test/java/com/avaje/tests/basic/type/TestTransientMap.java @@ -1,20 +1,22 @@ package com.avaje.tests.basic.type; -import junit.framework.TestCase; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.config.GlobalProperties; -public class TestTransientMap extends TestCase { +public class TestTransientMap extends BaseTestCase { - public void testMe() { - - GlobalProperties.put("classes", BSimpleWithGen.class.toString()); - - BSimpleWithGen b = new BSimpleWithGen(); - b.setName("blah"); - - Ebean.save(b); - - } + @Test + public void testMe() { + + GlobalProperties.put("classes", BSimpleWithGen.class.toString()); + + BSimpleWithGen b = new BSimpleWithGen(); + b.setName("blah"); + + Ebean.save(b); + + } } diff --git a/src/test/java/com/avaje/tests/batchinsert/TestBatchInsertSimple.java b/src/test/java/com/avaje/tests/batchinsert/TestBatchInsertSimple.java index f951921fa..bfbbf5f54 100644 --- a/src/test/java/com/avaje/tests/batchinsert/TestBatchInsertSimple.java +++ b/src/test/java/com/avaje/tests/batchinsert/TestBatchInsertSimple.java @@ -4,17 +4,19 @@ import java.util.ArrayList; import java.util.List; import java.util.Random; -import junit.framework.TestCase; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.Transaction; import com.avaje.tests.model.basic.UTDetail; import com.avaje.tests.model.basic.UTMaster; -public class TestBatchInsertSimple extends TestCase { +public class TestBatchInsertSimple extends BaseTestCase { Random random = new Random(); + @Test public void testSimpleJdbcBatching() { int numOfMasters = 10;// 2 + random.nextInt(8); @@ -28,11 +30,11 @@ public class TestBatchInsertSimple extends TestCase { try { transaction.setBatchMode(true); transaction.setBatchSize(4); - //transaction.setLogLevel(LogLevel.SUMMARY); - //transaction.setBatchGetGeneratedKeys(false); + // transaction.setLogLevel(LogLevel.SUMMARY); + // transaction.setBatchGetGeneratedKeys(false); Ebean.save(masters); - + transaction.commit(); } finally { @@ -52,7 +54,7 @@ public class TestBatchInsertSimple extends TestCase { int qty = 1 + random.nextInt(99); double amount = random.nextDouble(); - details.add(createDetail(masterPos+"-"+i, qty, amount)); + details.add(createDetail(masterPos + "-" + i, qty, amount)); } master.setDetails(details); return master; @@ -71,8 +73,8 @@ public class TestBatchInsertSimple extends TestCase { detail.setQty(Integer.valueOf(qty)); detail.setAmount(Double.valueOf(amount)); - //System.out.println("-- "+detail); - + // System.out.println("-- "+detail); + return detail; } diff --git a/src/test/java/com/avaje/tests/batchload/TestBasicLazy.java b/src/test/java/com/avaje/tests/batchload/TestBasicLazy.java index ba7fa0937..94b3b14d5 100644 --- a/src/test/java/com/avaje/tests/batchload/TestBasicLazy.java +++ b/src/test/java/com/avaje/tests/batchload/TestBasicLazy.java @@ -5,10 +5,10 @@ import java.util.Collections; import java.util.List; import java.util.concurrent.atomic.AtomicBoolean; -import junit.framework.TestCase; - import org.junit.Assert; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.Expr; import com.avaje.ebean.FetchConfig; @@ -20,237 +20,188 @@ import com.avaje.tests.model.basic.Customer; import com.avaje.tests.model.basic.Order; import com.avaje.tests.model.basic.ResetBasicData; -public class TestBasicLazy extends TestCase -{ +public class TestBasicLazy extends BaseTestCase { - public void testQueries() - { + @Test + public void testQueries() { - ResetBasicData.reset(); + ResetBasicData.reset(); - Order order = Ebean.find(Order.class) - .select("totalAmount") - .setMaxRows(1) - .order("id") - .findUnique(); + Order order = Ebean.find(Order.class).select("totalAmount").setMaxRows(1).order("id") + .findUnique(); - Assert.assertNotNull(order); + Assert.assertNotNull(order); - Customer customer = order.getCustomer(); - Assert.assertNotNull(customer); - Assert.assertNotNull(customer.getName()); + Customer customer = order.getCustomer(); + Assert.assertNotNull(customer); + Assert.assertNotNull(customer.getName()); - Address address = customer.getBillingAddress(); - Assert.assertNotNull(address); - Assert.assertNotNull(address.getCity()); + Address address = customer.getBillingAddress(); + Assert.assertNotNull(address); + Assert.assertNotNull(address.getCity()); + } + + public void test_N1N() { + ResetBasicData.reset(); + + // safety check to see if our customer we are going to use for the test has + // some contacts + Customer c = Ebean.find(Customer.class).setId(1).findUnique(); + Assert.assertNotNull(c.getContacts()); + Assert.assertTrue("no contacts on test customer 1", c.getContacts().size() > 0); + + // start transaction so we have a "long running" persistence context + Transaction tx = Ebean.beginTransaction(); + try { + List order = Ebean.find(Order.class).where(Expr.eq("customer.id", 1)).findList(); + + Assert.assertNotNull(order); + Assert.assertTrue(order.size() > 0); + + Customer customer = order.get(0).getCustomer(); + Assert.assertNotNull(customer); + Assert.assertEquals(1, customer.getId().intValue()); + + // this should lazily fetch the contacts + List contacts = customer.getContacts(); + + Assert.assertNotNull(contacts); + Assert.assertTrue("contacts not lazily fetched", contacts.size() > 0); + } finally { + tx.commit(); } - - public void test_N1N() - { - ResetBasicData.reset(); + } - // safety check to see if our customer we are going to use for the test has some contacts - Customer c = Ebean.find(Customer.class).setId(1).findUnique(); - assertNotNull(c.getContacts()); - assertTrue("no contacts on test customer 1", c.getContacts().size() > 0); - - // start transaction so we have a "long running" persistence context - Transaction tx = Ebean.beginTransaction(); - try - { - List order = Ebean.find(Order.class) - .where(Expr.eq("customer.id", 1)) - .findList(); + public void testRaceCondition_Simple() throws Throwable { + ResetBasicData.reset(); - assertNotNull(order); - assertTrue(order.size() > 0); - - Customer customer = order.get(0).getCustomer(); - assertNotNull(customer); - assertEquals(1, customer.getId().intValue()); + Order order = Ebean.find(Order.class).select("totalAmount").setMaxRows(1).order("id") + .findUnique(); - // this should lazily fetch the contacts - List contacts = customer.getContacts(); - - assertNotNull(contacts); - assertTrue("contacts not lazily fetched", contacts.size() > 0); + Assert.assertNotNull(order); + + final Customer customer = order.getCustomer(); + Assert.assertNotNull(customer); + + Assert.assertTrue(Ebean.getBeanState(customer).isReference()); + + final Throwable throwables[] = new Throwable[2]; + Thread t1 = new Thread() { + @Override + public void run() { + try { + Assert.assertNotNull(customer.getName()); + } catch (Throwable e) { + throwables[0] = e; } - finally - { - tx.commit(); + } + }; + + Thread t2 = new Thread() { + @Override + public void run() { + try { + Assert.assertNotNull(customer.getName()); + } catch (Throwable e) { + throwables[1] = e; } + } + }; + + try { + // prepare for race condition + MyTestDataSourcePoolListener.SLEEP_AFTER_BORROW = 2000; + + t1.start(); + t2.start(); + t1.join(); + t2.join(); + } finally { + MyTestDataSourcePoolListener.SLEEP_AFTER_BORROW = 0; } - public void testRaceCondition_Simple() throws Throwable - { - ResetBasicData.reset(); + Assert.assertFalse(Ebean.getBeanState(customer).isReference()); - Order order = Ebean.find(Order.class) - .select("totalAmount") - .setMaxRows(1) - .order("id") - .findUnique(); + if (throwables[0] != null) { + throw throwables[0]; + } + if (throwables[1] != null) { + throw throwables[1]; + } + } - Assert.assertNotNull(order); + private final AtomicBoolean mutex = new AtomicBoolean(false); + private List orders; - final Customer customer = order.getCustomer(); - Assert.assertNotNull(customer); + private List exceptions = Collections.synchronizedList(new ArrayList()); - Assert.assertTrue(Ebean.getBeanState(customer).isReference()); + private class FetchThread extends Thread { + private int index; - final Throwable throwables[] = new Throwable[2]; - Thread t1 = new Thread() - { - @Override - public void run() - { - try - { - Assert.assertNotNull(customer.getName()); - } - catch (Throwable e) - { - throwables[0] = e; - } - } - }; - - Thread t2 = new Thread() - { - @Override - public void run() - { - try - { - Assert.assertNotNull(customer.getName()); - } - catch (Throwable e) - { - throwables[1] = e; - } - } - }; - - try - { - // prepare for race condition - MyTestDataSourcePoolListener.SLEEP_AFTER_BORROW = 2000; - - t1.start(); - t2.start(); - t1.join(); - t2.join(); - } - finally - { - MyTestDataSourcePoolListener.SLEEP_AFTER_BORROW = 0; - } - - Assert.assertFalse(Ebean.getBeanState(customer).isReference()); - - if (throwables[0] != null) - { - throw throwables[0]; - } - if (throwables[1] != null) - { - throw throwables[1]; - } + private FetchThread(ThreadGroup tg, int index) { + super(tg, "fetcher-" + index); + this.index = index; } - private final AtomicBoolean mutex = new AtomicBoolean(false); - private List orders; - - private List exceptions = Collections.synchronizedList(new ArrayList()); - - private class FetchThread extends Thread - { - private int index; - - private FetchThread(ThreadGroup tg, int index) - { - super(tg, "fetcher-" + index); - this.index = index; + @Override + public void run() { + synchronized (mutex) { + System.err.println("** WAIT **"); + try { + while (!mutex.get()) { + mutex.wait(100); + } + } catch (InterruptedException e) { + throw new RuntimeException(e); } + } - @Override - public void run() - { - synchronized (mutex) - { - System.err.println("** WAIT **"); - try - { - while (!mutex.get()) - { - mutex.wait(100); - } - } - catch (InterruptedException e) - { - throw new RuntimeException(e); - } - } + try { + System.err.println("** DO LAZY FETCH **"); + orders.get(index).getCustomer().getName(); + } catch (Throwable e) { + exceptions.add(e); + } + } + } - try - { - System.err.println("** DO LAZY FETCH **"); - orders.get(index).getCustomer().getName(); - } - catch (Throwable e) - { - exceptions.add(e); - } - } + public void testRaceCondition_Complex() throws Throwable { + ResetBasicData.reset(); + + ThreadGroup tg = new ThreadGroup("fetchers"); + new FetchThread(tg, 0).start(); + new FetchThread(tg, 1).start(); + new FetchThread(tg, 2).start(); + new FetchThread(tg, 3).start(); + new FetchThread(tg, 0).start(); + new FetchThread(tg, 1).start(); + new FetchThread(tg, 2).start(); + new FetchThread(tg, 3).start(); + + orders = Ebean.find(Order.class).fetch("customer", new FetchConfig().lazy(100)).findList(); + Assert.assertTrue(orders.size() >= 4); + + try { + MyTestDataSourcePoolListener.SLEEP_AFTER_BORROW = 2000; + + synchronized (mutex) { + mutex.set(true); + mutex.notifyAll(); + } + + while (tg.activeCount() > 0) { + Thread.sleep(100); + } + } finally { + MyTestDataSourcePoolListener.SLEEP_AFTER_BORROW = 0; } - public void testRaceCondition_Complex() throws Throwable - { - ResetBasicData.reset(); - - ThreadGroup tg = new ThreadGroup("fetchers"); - new FetchThread(tg, 0).start(); - new FetchThread(tg, 1).start(); - new FetchThread(tg, 2).start(); - new FetchThread(tg, 3).start(); - new FetchThread(tg, 0).start(); - new FetchThread(tg, 1).start(); - new FetchThread(tg, 2).start(); - new FetchThread(tg, 3).start(); - - orders = Ebean.find(Order.class) - .fetch("customer", new FetchConfig().lazy(100)) - .findList(); - assertTrue(orders.size() >= 4); - - try - { - MyTestDataSourcePoolListener.SLEEP_AFTER_BORROW = 2000; - - synchronized (mutex) - { - mutex.set(true); - mutex.notifyAll(); - } - - while(tg.activeCount() > 0) - { - Thread.sleep(100); - } - } - finally - { - MyTestDataSourcePoolListener.SLEEP_AFTER_BORROW = 0; - } - - if (exceptions.size() > 0) - { - System.err.println("Seen Exceptions:"); - for (Throwable exception : exceptions) - { - exception.printStackTrace(); - } - Assert.fail(); - } + if (exceptions.size() > 0) { + System.err.println("Seen Exceptions:"); + for (Throwable exception : exceptions) { + exception.printStackTrace(); + } + Assert.fail(); } + } } \ No newline at end of file diff --git a/src/test/java/com/avaje/tests/batchload/TestBasicNavOnEmpty.java b/src/test/java/com/avaje/tests/batchload/TestBasicNavOnEmpty.java index dab002a45..ac3aee73b 100644 --- a/src/test/java/com/avaje/tests/batchload/TestBasicNavOnEmpty.java +++ b/src/test/java/com/avaje/tests/batchload/TestBasicNavOnEmpty.java @@ -2,16 +2,17 @@ package com.avaje.tests.batchload; import java.util.List; -import junit.framework.TestCase; - import org.junit.Assert; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.tests.model.basic.Contact; import com.avaje.tests.model.basic.Customer; -public class TestBasicNavOnEmpty extends TestCase { +public class TestBasicNavOnEmpty extends BaseTestCase { + @Test public void test() { Customer c = new Customer(); diff --git a/src/test/java/com/avaje/tests/batchload/TestBatchLazyWithCacheHits.java b/src/test/java/com/avaje/tests/batchload/TestBatchLazyWithCacheHits.java index 0331f3781..128258080 100644 --- a/src/test/java/com/avaje/tests/batchload/TestBatchLazyWithCacheHits.java +++ b/src/test/java/com/avaje/tests/batchload/TestBatchLazyWithCacheHits.java @@ -5,14 +5,16 @@ import java.util.List; import java.util.UUID; import junit.framework.Assert; -import junit.framework.TestCase; +import org.junit.Test; + +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.cache.ServerCacheManager; import com.avaje.ebean.config.GlobalProperties; import com.avaje.tests.model.basic.UUOne; -public class TestBatchLazyWithCacheHits extends TestCase { +public class TestBatchLazyWithCacheHits extends BaseTestCase { private UUOne insert(String name) { UUOne one = new UUOne(); @@ -21,7 +23,8 @@ public class TestBatchLazyWithCacheHits extends TestCase { Ebean.save(one); return one; } - + + @Test public void testOnCacheHit() { GlobalProperties.put("ebean.lazyLoadBatchSize", "5"); diff --git a/src/test/java/com/avaje/tests/batchload/TestBatchLazyWithDeleted.java b/src/test/java/com/avaje/tests/batchload/TestBatchLazyWithDeleted.java index 0ce5e466b..3c0d58ada 100644 --- a/src/test/java/com/avaje/tests/batchload/TestBatchLazyWithDeleted.java +++ b/src/test/java/com/avaje/tests/batchload/TestBatchLazyWithDeleted.java @@ -6,15 +6,18 @@ import java.util.UUID; import javax.persistence.EntityNotFoundException; import junit.framework.Assert; -import junit.framework.TestCase; +import org.junit.Test; + +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.FetchConfig; import com.avaje.tests.model.basic.UUOne; import com.avaje.tests.model.basic.UUTwo; -public class TestBatchLazyWithDeleted extends TestCase { +public class TestBatchLazyWithDeleted extends BaseTestCase { + @Test public void testOnDeleted() { UUOne oneA = new UUOne(); diff --git a/src/test/java/com/avaje/tests/batchload/TestEmptyManyLazyLoad.java b/src/test/java/com/avaje/tests/batchload/TestEmptyManyLazyLoad.java index 2190249d5..5a061c41c 100644 --- a/src/test/java/com/avaje/tests/batchload/TestEmptyManyLazyLoad.java +++ b/src/test/java/com/avaje/tests/batchload/TestEmptyManyLazyLoad.java @@ -1,31 +1,31 @@ package com.avaje.tests.batchload; -import junit.framework.TestCase; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.tests.model.basic.Customer; import com.avaje.tests.model.basic.Order; import com.avaje.tests.model.basic.Order.Status; import com.avaje.tests.model.basic.ResetBasicData; -public class TestEmptyManyLazyLoad extends TestCase { +public class TestEmptyManyLazyLoad extends BaseTestCase { - public void test() { - - ResetBasicData.reset(); - - Customer c = Ebean.find(Customer.class) - .findList() - .get(0); - - Order o = new Order(); - o.setCustomer(c); - o.setStatus(Status.NEW); - - Ebean.save(o); - - Order o2 = Ebean.find(Order.class, o.getId()); - o2.getDetails().size(); - - } + @Test + public void test() { + + ResetBasicData.reset(); + + Customer c = Ebean.find(Customer.class).findList().get(0); + + Order o = new Order(); + o.setCustomer(c); + o.setStatus(Status.NEW); + + Ebean.save(o); + + Order o2 = Ebean.find(Order.class, o.getId()); + o2.getDetails().size(); + + } } diff --git a/src/test/java/com/avaje/tests/batchload/TestLazyJoin.java b/src/test/java/com/avaje/tests/batchload/TestLazyJoin.java index 433ca33b8..074062907 100644 --- a/src/test/java/com/avaje/tests/batchload/TestLazyJoin.java +++ b/src/test/java/com/avaje/tests/batchload/TestLazyJoin.java @@ -3,8 +3,10 @@ package com.avaje.tests.batchload; import java.util.List; import junit.framework.Assert; -import junit.framework.TestCase; +import org.junit.Test; + +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.Query; import com.avaje.tests.model.basic.Address; @@ -12,30 +14,28 @@ import com.avaje.tests.model.basic.Customer; import com.avaje.tests.model.basic.Order; import com.avaje.tests.model.basic.ResetBasicData; -public class TestLazyJoin extends TestCase { +public class TestLazyJoin extends BaseTestCase { - public void testLazyOnNonLoaded() { + @Test + public void testLazyOnNonLoaded() { - ResetBasicData.reset(); + ResetBasicData.reset(); - Query query = Ebean.find(Order.class) - .select("status") - .fetch("customer", "+lazy(10) name, status") - .fetch("customer.contacts"); + Query query = Ebean.find(Order.class).select("status") + .fetch("customer", "+lazy(10) name, status").fetch("customer.contacts"); - List list = query.findList(); + List list = query.findList(); - - Order order = list.get(0); - Customer customer = order.getCustomer(); - - // this invokes lazy loading on a property that is - // not one of the selected ones (name, status) ... and - // therefore the lazy load query selects all properties - // in the customer (not just name and status) - Address billingAddress = customer.getBillingAddress(); + Order order = list.get(0); + Customer customer = order.getCustomer(); + + // this invokes lazy loading on a property that is + // not one of the selected ones (name, status) ... and + // therefore the lazy load query selects all properties + // in the customer (not just name and status) + Address billingAddress = customer.getBillingAddress(); + + Assert.assertNotNull(billingAddress); + } - Assert.assertNotNull(billingAddress); - } - } diff --git a/src/test/java/com/avaje/tests/batchload/TestLazyJoin2.java b/src/test/java/com/avaje/tests/batchload/TestLazyJoin2.java index 297341dff..1817c81fa 100644 --- a/src/test/java/com/avaje/tests/batchload/TestLazyJoin2.java +++ b/src/test/java/com/avaje/tests/batchload/TestLazyJoin2.java @@ -3,8 +3,10 @@ package com.avaje.tests.batchload; import java.util.List; import junit.framework.Assert; -import junit.framework.TestCase; +import org.junit.Test; + +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.FetchConfig; import com.avaje.ebean.Query; @@ -14,87 +16,75 @@ import com.avaje.tests.model.basic.Customer; import com.avaje.tests.model.basic.Order; import com.avaje.tests.model.basic.ResetBasicData; -public class TestLazyJoin2 extends TestCase { +public class TestLazyJoin2 extends BaseTestCase { - public void testLazyOnNonLoaded() { + @Test + public void testLazyOnNonLoaded() { - ResetBasicData.reset(); + ResetBasicData.reset(); - // This will use 3 SQL queries to build this object graph - List l0 = Ebean.find(Order.class) - .select("status, shipDate") - - .fetch("details", "orderQty, unitPrice", new FetchConfig().query()) - .fetch("details.product", "sku, name") - - .fetch("customer", "name", new FetchConfig().query(10)) - .fetch("customer.contacts","firstName, lastName, mobile") - .fetch("customer.shippingAddress","line1, city") - .order().asc("id") - .findList(); - - - Order o0 = l0.get(0); - Customer c0 = o0.getCustomer(); - List contacts = c0.getContacts(); - Assert.assertTrue(contacts.size() > 0); - - // query 1) find order (status, shipDate) - // query 2) find orderDetail (quantity, price) join product (sku, name) where order.id in (?,? ...) - // query 3) find customer (name) join contacts (*) join shippingAddress (*) where id in (?,?,?,?,?) - - + // This will use 3 SQL queries to build this object graph + List l0 = Ebean.find(Order.class).select("status, shipDate") - - List orders = Ebean.find(Order.class) - //.select("status") - .fetch("customer", new FetchConfig().query(3).lazy(10)) - .order().asc("id") - .findList(); - //.join("customer.contacts"); + .fetch("details", "orderQty, unitPrice", new FetchConfig().query()) + .fetch("details.product", "sku, name") - //List list = query.findList(); + .fetch("customer", "name", new FetchConfig().query(10)) + .fetch("customer.contacts", "firstName, lastName, mobile") + .fetch("customer.shippingAddress", "line1, city").order().asc("id").findList(); - - Order order = orders.get(0); - Customer customer = order.getCustomer(); - - // this invokes lazy loading on a property that is - // not one of the selected ones (name, status) ... and - // therefore the lazy load query selects all properties - // in the customer (not just name and status) - Address billingAddress = customer.getBillingAddress(); + Order o0 = l0.get(0); + Customer c0 = o0.getCustomer(); + List contacts = c0.getContacts(); + Assert.assertTrue(contacts.size() > 0); + + // query 1) find order (status, shipDate) + // query 2) find orderDetail (quantity, price) join product (sku, name) + // where order.id in (?,? ...) + // query 3) find customer (name) join contacts (*) join shippingAddress (*) + // where id in (?,?,?,?,?) + + List orders = Ebean.find(Order.class) + // .select("status") + .fetch("customer", new FetchConfig().query(3).lazy(10)).order().asc("id").findList(); + // .join("customer.contacts"); + + // List list = query.findList(); + + Order order = orders.get(0); + Customer customer = order.getCustomer(); + + // this invokes lazy loading on a property that is + // not one of the selected ones (name, status) ... and + // therefore the lazy load query selects all properties + // in the customer (not just name and status) + Address billingAddress = customer.getBillingAddress(); + + Assert.assertNotNull(billingAddress); + + List list = Ebean.find(Order.class).fetch("customer", "name", new FetchConfig().lazy(5)) + .fetch("customer.contacts", "contactName, phone, email").fetch("customer.shippingAddress") + .where().eq("status", Order.Status.NEW).order().asc("id").findList(); + + Order order2 = list.get(0); + Customer customer2 = order2.getCustomer(); + // customer2.getStatus(); + String name = customer2.getName(); + Assert.assertNotNull(name); + + String q = "find order join customer (+query(1) +lazy(10) name, status) join customer.contacts "; + Query query = Ebean.createQuery(Order.class, q); + + List list3 = query.findList(); + Order order3 = list3.get(0); + String n3 = order3.getCustomer().getName(); + + for (Order o3 : list3) { + o3.getCustomer().getName(); + } + + Assert.assertNotNull(n3); + + } - Assert.assertNotNull(billingAddress); - - - List list = Ebean.find(Order.class) - .fetch("customer","name", new FetchConfig().lazy(5)) - .fetch("customer.contacts","contactName, phone, email") - .fetch("customer.shippingAddress") - .where().eq("status",Order.Status.NEW) - .order().asc("id") - .findList(); - - Order order2 = list.get(0); - Customer customer2 = order2.getCustomer(); - //customer2.getStatus(); - String name = customer2.getName(); - Assert.assertNotNull(name); - - String q = "find order join customer (+query(1) +lazy(10) name, status) join customer.contacts "; - Query query = Ebean.createQuery(Order.class, q); - - List list3 = query.findList(); - Order order3 = list3.get(0); - String n3 = order3.getCustomer().getName(); - - for (Order o3 : list3) { - o3.getCustomer().getName(); - } - - Assert.assertNotNull(n3); - - } - } diff --git a/src/test/java/com/avaje/tests/batchload/TestLazyLoadEmptyCollection.java b/src/test/java/com/avaje/tests/batchload/TestLazyLoadEmptyCollection.java index 0e92f8b96..b586dc422 100644 --- a/src/test/java/com/avaje/tests/batchload/TestLazyLoadEmptyCollection.java +++ b/src/test/java/com/avaje/tests/batchload/TestLazyLoadEmptyCollection.java @@ -2,43 +2,42 @@ package com.avaje.tests.batchload; import java.util.List; -import junit.framework.TestCase; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.FetchConfig; import com.avaje.tests.model.basic.Contact; import com.avaje.tests.model.basic.Customer; import com.avaje.tests.model.basic.ResetBasicData; -public class TestLazyLoadEmptyCollection extends TestCase { +public class TestLazyLoadEmptyCollection extends BaseTestCase { - public void test() { - - ResetBasicData.reset(); - - Customer c = new Customer(); - c.setName("lazytest"); - - Contact con = new Contact("jim", "slim"); - c.addContact(con); - - Ebean.save(c); - - List list = Ebean.find(Customer.class) - .fetch("contacts", new FetchConfig().query(0)) - .fetch("contacts.notes", new FetchConfig().query(100)) - .findList(); - - for (Customer customer : list) { - List contacts = customer.getContacts(); - for (Contact contact : contacts) { - contact.getNotes(); - } - System.out.println(customer); - System.out.println(contacts); - } - - + @Test + public void test() { + + ResetBasicData.reset(); + + Customer c = new Customer(); + c.setName("lazytest"); + + Contact con = new Contact("jim", "slim"); + c.addContact(con); + + Ebean.save(c); + + List list = Ebean.find(Customer.class).fetch("contacts", new FetchConfig().query(0)) + .fetch("contacts.notes", new FetchConfig().query(100)).findList(); + + for (Customer customer : list) { + List contacts = customer.getContacts(); + for (Contact contact : contacts) { + contact.getNotes(); + } + System.out.println(customer); + System.out.println(contacts); } - + + } + } diff --git a/src/test/java/com/avaje/tests/batchload/TestLazyLoadNonExistantBean.java b/src/test/java/com/avaje/tests/batchload/TestLazyLoadNonExistantBean.java index e17cc75a1..ccbcaa3a5 100644 --- a/src/test/java/com/avaje/tests/batchload/TestLazyLoadNonExistantBean.java +++ b/src/test/java/com/avaje/tests/batchload/TestLazyLoadNonExistantBean.java @@ -5,13 +5,16 @@ import java.util.UUID; import javax.persistence.EntityNotFoundException; import junit.framework.Assert; -import junit.framework.TestCase; +import org.junit.Test; + +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.tests.model.basic.UUOne; -public class TestLazyLoadNonExistantBean extends TestCase { +public class TestLazyLoadNonExistantBean extends BaseTestCase { + @Test public void testSimple() { UUID uuid = UUID.randomUUID(); diff --git a/src/test/java/com/avaje/tests/batchload/TestLoadOnDirty.java b/src/test/java/com/avaje/tests/batchload/TestLoadOnDirty.java index 059a1eaf7..025ea47f0 100644 --- a/src/test/java/com/avaje/tests/batchload/TestLoadOnDirty.java +++ b/src/test/java/com/avaje/tests/batchload/TestLoadOnDirty.java @@ -2,45 +2,44 @@ package com.avaje.tests.batchload; import java.util.List; -import junit.framework.TestCase; - import org.junit.Assert; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.BeanState; import com.avaje.ebean.Ebean; import com.avaje.tests.model.basic.Customer; import com.avaje.tests.model.basic.ResetBasicData; -public class TestLoadOnDirty extends TestCase { +public class TestLoadOnDirty extends BaseTestCase { - public void test() { - - ResetBasicData.reset(); - - List custs = Ebean.find(Customer.class).findList(); - - Customer customer = Ebean.find(Customer.class) - .setId(custs.get(0).getId()) - .select("name") - .findUnique(); - - BeanState beanState = Ebean.getBeanState(customer); - Assert.assertTrue(!beanState.isNew()); - Assert.assertTrue(!beanState.isDirty()); - Assert.assertTrue(!beanState.isNewOrDirty()); - Assert.assertNotNull(beanState.getLoadedProps()); - - customer.setName("dirtyNameProp"); - Assert.assertTrue(beanState.isDirty()); - Assert.assertTrue(beanState.getChangedProps().contains("name")); - Assert.assertEquals(1, beanState.getChangedProps().size()); - - customer.setStatus(Customer.Status.INACTIVE); - - Assert.assertTrue(beanState.isDirty()); - Assert.assertTrue(beanState.getChangedProps().contains("status")); - Assert.assertTrue(beanState.getChangedProps().contains("name")); - Assert.assertEquals(2, beanState.getChangedProps().size()); - - } + @Test + public void test() { + + ResetBasicData.reset(); + + List custs = Ebean.find(Customer.class).findList(); + + Customer customer = Ebean.find(Customer.class).setId(custs.get(0).getId()).select("name") + .findUnique(); + + BeanState beanState = Ebean.getBeanState(customer); + Assert.assertTrue(!beanState.isNew()); + Assert.assertTrue(!beanState.isDirty()); + Assert.assertTrue(!beanState.isNewOrDirty()); + Assert.assertNotNull(beanState.getLoadedProps()); + + customer.setName("dirtyNameProp"); + Assert.assertTrue(beanState.isDirty()); + Assert.assertTrue(beanState.getChangedProps().contains("name")); + Assert.assertEquals(1, beanState.getChangedProps().size()); + + customer.setStatus(Customer.Status.INACTIVE); + + Assert.assertTrue(beanState.isDirty()); + Assert.assertTrue(beanState.getChangedProps().contains("status")); + Assert.assertTrue(beanState.getChangedProps().contains("name")); + Assert.assertEquals(2, beanState.getChangedProps().size()); + + } } diff --git a/src/test/java/com/avaje/tests/batchload/TestQueryJoin.java b/src/test/java/com/avaje/tests/batchload/TestQueryJoin.java index a61a44080..a8cc6e6d4 100644 --- a/src/test/java/com/avaje/tests/batchload/TestQueryJoin.java +++ b/src/test/java/com/avaje/tests/batchload/TestQueryJoin.java @@ -3,8 +3,10 @@ package com.avaje.tests.batchload; import java.util.List; import junit.framework.Assert; -import junit.framework.TestCase; +import org.junit.Test; + +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.BeanState; import com.avaje.ebean.Ebean; import com.avaje.ebean.Query; @@ -14,56 +16,52 @@ import com.avaje.tests.model.basic.Customer; import com.avaje.tests.model.basic.Order; import com.avaje.tests.model.basic.ResetBasicData; -public class TestQueryJoin extends TestCase { +public class TestQueryJoin extends BaseTestCase { - - public void test() { - - ResetBasicData.reset(); - - - // Need to make sure the customer cache is cleared for the later - // asserts on the lazy loading - ServerCache custCache = Ebean.getServerCacheManager().getBeanCache(Customer.class); - custCache.clear(); - - Query query = Ebean.find(Order.class) - .select("status") - //.join("details","+query(10)") - .fetch("customer","+lazy(10) name, status") - .fetch("customer.contacts") - .orderBy().asc("id"); - //.join("customer.billingAddress"); - - List list = query.findList(); - - //list.get(0).getShipDate(); - - Order order = list.get(0); - BeanState beanStateOrder = Ebean.getBeanState(order); - Assert.assertNotNull(beanStateOrder.getLoadedProps()); - //Assert.assertTrue(beanStateOrder.getLoadedProps().contains("id")); - Assert.assertTrue(beanStateOrder.getLoadedProps().contains("status")); - Assert.assertTrue(beanStateOrder.getLoadedProps().contains("shipments")); - Assert.assertTrue(beanStateOrder.getLoadedProps().contains("customer")); - - Customer customer = order.getCustomer(); - BeanState beanStateCustomer = Ebean.getBeanState(customer); - Assert.assertNull(beanStateCustomer.getLoadedProps()); - - customer.getName(); - Assert.assertNotNull(beanStateCustomer.getLoadedProps()); - Assert.assertTrue(beanStateCustomer.getLoadedProps().contains("name")); - Assert.assertTrue(beanStateCustomer.getLoadedProps().contains("status")); - Assert.assertFalse(beanStateCustomer.getLoadedProps().contains("billingAddress")); - - customer.getName(); - - Address billingAddress = customer.getBillingAddress(); - System.out.println(billingAddress); - billingAddress.getLine1(); - - Assert.assertTrue(list.size() > 0); - - } + @Test + public void test() { + + ResetBasicData.reset(); + + // Need to make sure the customer cache is cleared for the later + // asserts on the lazy loading + ServerCache custCache = Ebean.getServerCacheManager().getBeanCache(Customer.class); + custCache.clear(); + + Query query = Ebean.find(Order.class).select("status") + // .join("details","+query(10)") + .fetch("customer", "+lazy(10) name, status").fetch("customer.contacts").orderBy().asc("id"); + // .join("customer.billingAddress"); + + List list = query.findList(); + + // list.get(0).getShipDate(); + + Order order = list.get(0); + BeanState beanStateOrder = Ebean.getBeanState(order); + Assert.assertNotNull(beanStateOrder.getLoadedProps()); + // Assert.assertTrue(beanStateOrder.getLoadedProps().contains("id")); + Assert.assertTrue(beanStateOrder.getLoadedProps().contains("status")); + Assert.assertTrue(beanStateOrder.getLoadedProps().contains("shipments")); + Assert.assertTrue(beanStateOrder.getLoadedProps().contains("customer")); + + Customer customer = order.getCustomer(); + BeanState beanStateCustomer = Ebean.getBeanState(customer); + Assert.assertNull(beanStateCustomer.getLoadedProps()); + + customer.getName(); + Assert.assertNotNull(beanStateCustomer.getLoadedProps()); + Assert.assertTrue(beanStateCustomer.getLoadedProps().contains("name")); + Assert.assertTrue(beanStateCustomer.getLoadedProps().contains("status")); + Assert.assertFalse(beanStateCustomer.getLoadedProps().contains("billingAddress")); + + customer.getName(); + + Address billingAddress = customer.getBillingAddress(); + System.out.println(billingAddress); + billingAddress.getLine1(); + + Assert.assertTrue(list.size() > 0); + + } } diff --git a/src/test/java/com/avaje/tests/batchload/TestQueryJoinToAssocOne.java b/src/test/java/com/avaje/tests/batchload/TestQueryJoinToAssocOne.java index 53df3226f..22630be9b 100644 --- a/src/test/java/com/avaje/tests/batchload/TestQueryJoinToAssocOne.java +++ b/src/test/java/com/avaje/tests/batchload/TestQueryJoinToAssocOne.java @@ -3,32 +3,33 @@ package com.avaje.tests.batchload; import java.util.List; import junit.framework.Assert; -import junit.framework.TestCase; +import org.junit.Test; + +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.FetchConfig; import com.avaje.tests.model.basic.Order; import com.avaje.tests.model.basic.ResetBasicData; -public class TestQueryJoinToAssocOne extends TestCase { +public class TestQueryJoinToAssocOne extends BaseTestCase { - public void testLazyOnNonLoaded() { + @Test + public void testLazyOnNonLoaded() { - ResetBasicData.reset(); + ResetBasicData.reset(); - // This will use 3 SQL queries to build this object graph - List l0 = Ebean.find(Order.class) - .select("status, shipDate") - .fetch("details", "orderQty, unitPrice", new FetchConfig().query()) - .fetch("details.product", "sku, name") - - //.join("customer", "name", new JoinConfig().query(10)) - //.join("customer.contacts","firstName, lastName, mobile") - //.join("customer.shippingAddress","line1, city") - .findList(); - - Assert.assertTrue(l0.size() > 0); - - - } + // This will use 3 SQL queries to build this object graph + List l0 = Ebean.find(Order.class).select("status, shipDate") + .fetch("details", "orderQty, unitPrice", new FetchConfig().query()) + .fetch("details.product", "sku, name") + + // .join("customer", "name", new JoinConfig().query(10)) + // .join("customer.contacts","firstName, lastName, mobile") + // .join("customer.shippingAddress","line1, city") + .findList(); + + Assert.assertTrue(l0.size() > 0); + + } } diff --git a/src/test/java/com/avaje/tests/batchload/TestSecondQueryNoRows.java b/src/test/java/com/avaje/tests/batchload/TestSecondQueryNoRows.java index 307b6ec1d..6ae9587ed 100644 --- a/src/test/java/com/avaje/tests/batchload/TestSecondQueryNoRows.java +++ b/src/test/java/com/avaje/tests/batchload/TestSecondQueryNoRows.java @@ -1,27 +1,27 @@ package com.avaje.tests.batchload; import junit.framework.Assert; -import junit.framework.TestCase; +import org.junit.Test; + +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.FetchConfig; import com.avaje.tests.model.basic.Customer; -public class TestSecondQueryNoRows extends TestCase { +public class TestSecondQueryNoRows extends BaseTestCase { - public void test() { + @Test + public void test() { - Customer cnew = new Customer(); - cnew.setName("testSecQueryNoRows"); + Customer cnew = new Customer(); + cnew.setName("testSecQueryNoRows"); - Ebean.save(cnew); + Ebean.save(cnew); - Customer c = Ebean.find(Customer.class) - .setAutofetch(false) - .setId(cnew.getId()) - .fetch("contacts", new FetchConfig().query()) - .findUnique(); + Customer c = Ebean.find(Customer.class).setAutofetch(false).setId(cnew.getId()) + .fetch("contacts", new FetchConfig().query()).findUnique(); - Assert.assertNotNull(c); - } + Assert.assertNotNull(c); + } } diff --git a/src/test/java/com/avaje/tests/batchload/TestSecondaryQueries.java b/src/test/java/com/avaje/tests/batchload/TestSecondaryQueries.java index c74a7fd61..81e71073c 100644 --- a/src/test/java/com/avaje/tests/batchload/TestSecondaryQueries.java +++ b/src/test/java/com/avaje/tests/batchload/TestSecondaryQueries.java @@ -2,42 +2,35 @@ package com.avaje.tests.batchload; import java.util.List; -import junit.framework.TestCase; - import org.junit.Assert; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.tests.model.basic.Customer; import com.avaje.tests.model.basic.Order; import com.avaje.tests.model.basic.ResetBasicData; -public class TestSecondaryQueries extends TestCase { +public class TestSecondaryQueries extends BaseTestCase { - public void testQueries() { - - ResetBasicData.reset(); - - Order testOrder = ResetBasicData.createOrderCustAndOrder("testSecQry10"); - Integer custId = testOrder.getCustomer().getId(); - - - Customer cust = Ebean.find(Customer.class) - .select("name") - .fetch("contacts","+query") - .setId(custId) - .findUnique(); - - Assert.assertNotNull(cust); - - List list = Ebean.find(Order.class) - .select("status") - .fetch("details","+query(10)") - .fetch("customer","+query name, status") - .fetch("customer.contacts") - .where().eq("status", Order.Status.NEW) - .findList(); + @Test + public void testQueries() { + + ResetBasicData.reset(); + + Order testOrder = ResetBasicData.createOrderCustAndOrder("testSecQry10"); + Integer custId = testOrder.getCustomer().getId(); + + Customer cust = Ebean.find(Customer.class).select("name").fetch("contacts", "+query") + .setId(custId).findUnique(); + + Assert.assertNotNull(cust); + + List list = Ebean.find(Order.class).select("status").fetch("details", "+query(10)") + .fetch("customer", "+query name, status").fetch("customer.contacts").where() + .eq("status", Order.Status.NEW).findList(); + + Assert.assertTrue(list.size() > 0); + } - Assert.assertTrue(list.size() > 0); - } - } diff --git a/src/test/java/com/avaje/tests/cache/TestCacheBasic.java b/src/test/java/com/avaje/tests/cache/TestCacheBasic.java index 679743c1f..2aef9f56a 100644 --- a/src/test/java/com/avaje/tests/cache/TestCacheBasic.java +++ b/src/test/java/com/avaje/tests/cache/TestCacheBasic.java @@ -1,144 +1,147 @@ package com.avaje.tests.cache; import junit.framework.Assert; -import junit.framework.TestCase; +import org.junit.Test; + +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.cache.ServerCache; import com.avaje.ebean.cache.ServerCacheStatistics; import com.avaje.tests.model.basic.Country; import com.avaje.tests.model.basic.ResetBasicData; -public class TestCacheBasic extends TestCase { +public class TestCacheBasic extends BaseTestCase { - - public void test(){ - - ResetBasicData.reset(); - - Ebean.getServerCacheManager().clear(Country.class); - ServerCache countryCache = Ebean.getServerCacheManager().getBeanCache(Country.class); - - Ebean.runCacheWarming(Country.class); - Assert.assertTrue(countryCache.size() > 0); - - // reset the statistics - countryCache.getStatistics(true); - - Country c0 = Ebean.getReference(Country.class, "NZ"); - ServerCacheStatistics statistics = countryCache.getStatistics(false); - int hc = statistics.getHitCount(); - Assert.assertEquals(1, hc); + @Test + public void test() { -// Country c1 = Ebean.getReference(Country.class, "NZ"); -// Assert.assertEquals(2, countryCache.getStatistics(false).getHitCount()); -// //Assert.assertEquals(100, countryCache.getStatistics(false).getHitRatio()); -// -// // same instance as caching with readOnly=true -// Assert.assertTrue(c0 != c1); -// -// c0.getName(); -// c1.getName(); -// -// // reset the statistics -// Assert.assertEquals(2,countryCache.getStatistics(true).getHitCount()); -// // now the count should be 0 again -// Assert.assertEquals(0, countryCache.getStatistics(false).getHitCount()); -// // and hitRatio is 0 as well -// Assert.assertEquals(0, countryCache.getStatistics(false).getHitRatio()); -// -// // hit the country cache automatically via join -// -// Customer custTest = ResetBasicData.createCustAndOrder("cacheBasic"); -// Integer id = custTest.getId(); -// Customer customer = Ebean.find(Customer.class, id); -// -// Address billingAddress = customer.getBillingAddress(); -// Country c2 = billingAddress.getCountry(); -// c2.getName(); -// -// Assert.assertTrue(countryCache.getStatistics(false).getHitCount() > 0); -// -// //Country c3 = Ebean.getReference(Country.class, "NZ"); -// //Country c4 = Ebean.find(Country.class, "NZ"); -// -// -// // clear the cache -// Ebean.getServerCacheManager().clear(Country.class); -// // reset statistics -// countryCache.getStatistics(true); -// -// // try to hit the country cache automatically via join -// customer = Ebean.find(Customer.class, id); -// billingAddress = customer.getBillingAddress(); -// Country c5 = billingAddress.getCountry(); -// // but cache is empty so c5 is reference that will load cache -// // if it is lazy loaded -// Assert.assertEquals("empty cache",0,countryCache.getStatistics(false).getSize()); -// //Assert.assertEquals("missCount 1",1,countryCache.getStatistics(false).getMissCount()); -// -// // lazy load on c5 populates the cache -// c5.getName(); -// Assert.assertEquals("cache populated via lazy load",1,countryCache.getStatistics(false).getSize()); -// -// // now these get hits in the cache -// Country c6 = Ebean.find(Country.class, "NZ"); -// -// Assert.assertTrue("different instance as cache cleared",c2 != c5); -// Assert.assertTrue("these 2 are different",c5 != c6); -// -// // by default readOnly based on deployment annotation -// Assert.assertTrue("read only",Ebean.getBeanState(c6).isReadOnly()); -// -// try { -// // can't modify a readOnly bean -// c6.setName("Nu Zilund"); -// Assert.assertFalse("Never get here",true); -// } catch (IllegalStateException e){ -// Assert.assertTrue("This is readOnly",true); -// } -// -// Country c8 = Ebean.find(Country.class) -// .setId("NZ") -// .setReadOnly(false) -// .findUnique(); -// -// // Explicitly NOT readOnly -// Assert.assertFalse("NOT read only",Ebean.getBeanState(c8).isReadOnly()); -// -// Assert.assertEquals("1 countries in cache", 1, countryCache.size()); -// c8.setName("Nu Zilund"); -// // the update will remove the entry from the cache -// Ebean.save(c8); -// -// Assert.assertEquals("1 country in cache", 1, countryCache.size()); -// -// Country c9 = Ebean.find(Country.class) -// .setReadOnly(false) -// .setId("NZ") -// .findUnique(); -// -// // Find loads cache ... -// Assert.assertFalse(Ebean.getBeanState(c9).isReadOnly()); -// Assert.assertTrue(countryCache.size() > 0); -// -// Country c10 = Ebean.find(Country.class,"NZ"); -// -// Assert.assertTrue(Ebean.getBeanState(c10).isReadOnly()); -// Assert.assertTrue(countryCache.size() > 0); -// -// Ebean.getServerCacheManager().clear(Country.class); -// Assert.assertEquals("0 country in cache", 0, countryCache.size()); -// -// // reference doesn't load cache yet -// Country c11 = Ebean.getReference(Country.class, "NZ"); -// -// // still 0 in cache -// Assert.assertEquals("0 country in cache", 0, countryCache.size()); -// -// // will invoke lazy loading.. -// c11.getName(); -// Assert.assertTrue(countryCache.size() > 0); + ResetBasicData.reset(); - } + Ebean.getServerCacheManager().clear(Country.class); + ServerCache countryCache = Ebean.getServerCacheManager().getBeanCache(Country.class); + + Ebean.runCacheWarming(Country.class); + Assert.assertTrue(countryCache.size() > 0); + + // reset the statistics + countryCache.getStatistics(true); + + Country c0 = Ebean.getReference(Country.class, "NZ"); + ServerCacheStatistics statistics = countryCache.getStatistics(false); + int hc = statistics.getHitCount(); + Assert.assertEquals(1, hc); + + // Country c1 = Ebean.getReference(Country.class, "NZ"); + // Assert.assertEquals(2, countryCache.getStatistics(false).getHitCount()); + // //Assert.assertEquals(100, + // countryCache.getStatistics(false).getHitRatio()); + // + // // same instance as caching with readOnly=true + // Assert.assertTrue(c0 != c1); + // + // c0.getName(); + // c1.getName(); + // + // // reset the statistics + // Assert.assertEquals(2,countryCache.getStatistics(true).getHitCount()); + // // now the count should be 0 again + // Assert.assertEquals(0, countryCache.getStatistics(false).getHitCount()); + // // and hitRatio is 0 as well + // Assert.assertEquals(0, countryCache.getStatistics(false).getHitRatio()); + // + // // hit the country cache automatically via join + // + // Customer custTest = ResetBasicData.createCustAndOrder("cacheBasic"); + // Integer id = custTest.getId(); + // Customer customer = Ebean.find(Customer.class, id); + // + // Address billingAddress = customer.getBillingAddress(); + // Country c2 = billingAddress.getCountry(); + // c2.getName(); + // + // Assert.assertTrue(countryCache.getStatistics(false).getHitCount() > 0); + // + // //Country c3 = Ebean.getReference(Country.class, "NZ"); + // //Country c4 = Ebean.find(Country.class, "NZ"); + // + // + // // clear the cache + // Ebean.getServerCacheManager().clear(Country.class); + // // reset statistics + // countryCache.getStatistics(true); + // + // // try to hit the country cache automatically via join + // customer = Ebean.find(Customer.class, id); + // billingAddress = customer.getBillingAddress(); + // Country c5 = billingAddress.getCountry(); + // // but cache is empty so c5 is reference that will load cache + // // if it is lazy loaded + // Assert.assertEquals("empty cache",0,countryCache.getStatistics(false).getSize()); + // //Assert.assertEquals("missCount 1",1,countryCache.getStatistics(false).getMissCount()); + // + // // lazy load on c5 populates the cache + // c5.getName(); + // Assert.assertEquals("cache populated via lazy load",1,countryCache.getStatistics(false).getSize()); + // + // // now these get hits in the cache + // Country c6 = Ebean.find(Country.class, "NZ"); + // + // Assert.assertTrue("different instance as cache cleared",c2 != c5); + // Assert.assertTrue("these 2 are different",c5 != c6); + // + // // by default readOnly based on deployment annotation + // Assert.assertTrue("read only",Ebean.getBeanState(c6).isReadOnly()); + // + // try { + // // can't modify a readOnly bean + // c6.setName("Nu Zilund"); + // Assert.assertFalse("Never get here",true); + // } catch (IllegalStateException e){ + // Assert.assertTrue("This is readOnly",true); + // } + // + // Country c8 = Ebean.find(Country.class) + // .setId("NZ") + // .setReadOnly(false) + // .findUnique(); + // + // // Explicitly NOT readOnly + // Assert.assertFalse("NOT read only",Ebean.getBeanState(c8).isReadOnly()); + // + // Assert.assertEquals("1 countries in cache", 1, countryCache.size()); + // c8.setName("Nu Zilund"); + // // the update will remove the entry from the cache + // Ebean.save(c8); + // + // Assert.assertEquals("1 country in cache", 1, countryCache.size()); + // + // Country c9 = Ebean.find(Country.class) + // .setReadOnly(false) + // .setId("NZ") + // .findUnique(); + // + // // Find loads cache ... + // Assert.assertFalse(Ebean.getBeanState(c9).isReadOnly()); + // Assert.assertTrue(countryCache.size() > 0); + // + // Country c10 = Ebean.find(Country.class,"NZ"); + // + // Assert.assertTrue(Ebean.getBeanState(c10).isReadOnly()); + // Assert.assertTrue(countryCache.size() > 0); + // + // Ebean.getServerCacheManager().clear(Country.class); + // Assert.assertEquals("0 country in cache", 0, countryCache.size()); + // + // // reference doesn't load cache yet + // Country c11 = Ebean.getReference(Country.class, "NZ"); + // + // // still 0 in cache + // Assert.assertEquals("0 country in cache", 0, countryCache.size()); + // + // // will invoke lazy loading.. + // c11.getName(); + // Assert.assertTrue(countryCache.size() > 0); + + } } diff --git a/src/test/java/com/avaje/tests/cache/TestCacheCollectionIds.java b/src/test/java/com/avaje/tests/cache/TestCacheCollectionIds.java index e0137cddb..31af49c39 100644 --- a/src/test/java/com/avaje/tests/cache/TestCacheCollectionIds.java +++ b/src/test/java/com/avaje/tests/cache/TestCacheCollectionIds.java @@ -2,76 +2,78 @@ package com.avaje.tests.cache; import java.util.List; -import junit.framework.TestCase; - import org.junit.Assert; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.cache.ServerCache; import com.avaje.tests.model.basic.Contact; import com.avaje.tests.model.basic.Customer; import com.avaje.tests.model.basic.ResetBasicData; -public class TestCacheCollectionIds extends TestCase { +public class TestCacheCollectionIds extends BaseTestCase { - public void test() { - - ResetBasicData.reset(); + @Test + public void test() { - ServerCache custCache = Ebean.getServerCacheManager().getBeanCache(Customer.class); - ServerCache contactCache = Ebean.getServerCacheManager().getBeanCache(Contact.class); - ServerCache custManyIdsCache = Ebean.getServerCacheManager().getCollectionIdsCache(Customer.class,"contacts"); - - //Ebean.getServerCacheManager().setCaching(Customer.class, true); - //Ebean.getServerCacheManager().setCaching(Contact.class, true); - - custCache.clear(); - custManyIdsCache.clear(); - - List list = Ebean.find(Customer.class) - .setAutofetch(false) - .setLoadBeanCache(true) - .order().asc("id") - .findList(); - - Assert.assertTrue(list.size() > 1); - //Assert.assertEquals(list.size(), custCache.getStatistics(false).getSize()); - - Customer customer = list.get(0); - List contacts = customer.getContacts(); - //Assert.assertEquals(0, custManyIdsCache.getStatistics(false).getSize()); - contacts.size(); - Assert.assertTrue(contacts.size() > 1); - //Assert.assertEquals(1, custManyIdsCache.getStatistics(false).getSize()); - //Assert.assertEquals(0, custManyIdsCache.getStatistics(false).getHitCount()); - - fetchCustomer(customer.getId()); - //Assert.assertEquals(1, custManyIdsCache.getStatistics(false).getHitCount()); - - fetchCustomer(customer.getId()); - //Assert.assertEquals(2, custManyIdsCache.getStatistics(false).getHitCount()); - - int currentNumContacts = fetchCustomer(customer.getId()); - //Assert.assertEquals(3, custManyIdsCache.getStatistics(false).getHitCount()); - - - Contact newContact = ResetBasicData.createContact("Check", "CollIds"); - newContact.setCustomer(customer); - - Ebean.save(newContact); + ResetBasicData.reset(); - int currentNumContacts2 = fetchCustomer(customer.getId()); - Assert.assertEquals(currentNumContacts+1, currentNumContacts2); - - - System.out.println("custCache:"+custCache.getStatistics(false)); - System.out.println("contactCache:"+contactCache.getStatistics(false)); - System.out.println("custManyIdsCache:"+custManyIdsCache.getStatistics(false)); - - } + ServerCache custCache = Ebean.getServerCacheManager().getBeanCache(Customer.class); + ServerCache contactCache = Ebean.getServerCacheManager().getBeanCache(Contact.class); + ServerCache custManyIdsCache = Ebean.getServerCacheManager().getCollectionIdsCache( + Customer.class, "contacts"); + + // Ebean.getServerCacheManager().setCaching(Customer.class, true); + // Ebean.getServerCacheManager().setCaching(Contact.class, true); + + custCache.clear(); + custManyIdsCache.clear(); + + List list = Ebean.find(Customer.class).setAutofetch(false).setLoadBeanCache(true) + .order().asc("id").findList(); + + Assert.assertTrue(list.size() > 1); + // Assert.assertEquals(list.size(), + // custCache.getStatistics(false).getSize()); + + Customer customer = list.get(0); + List contacts = customer.getContacts(); + // Assert.assertEquals(0, custManyIdsCache.getStatistics(false).getSize()); + contacts.size(); + Assert.assertTrue(contacts.size() > 1); + // Assert.assertEquals(1, custManyIdsCache.getStatistics(false).getSize()); + // Assert.assertEquals(0, + // custManyIdsCache.getStatistics(false).getHitCount()); + + fetchCustomer(customer.getId()); + // Assert.assertEquals(1, + // custManyIdsCache.getStatistics(false).getHitCount()); + + fetchCustomer(customer.getId()); + // Assert.assertEquals(2, + // custManyIdsCache.getStatistics(false).getHitCount()); + + int currentNumContacts = fetchCustomer(customer.getId()); + // Assert.assertEquals(3, + // custManyIdsCache.getStatistics(false).getHitCount()); + + Contact newContact = ResetBasicData.createContact("Check", "CollIds"); + newContact.setCustomer(customer); + + Ebean.save(newContact); + + int currentNumContacts2 = fetchCustomer(customer.getId()); + Assert.assertEquals(currentNumContacts + 1, currentNumContacts2); + + System.out.println("custCache:" + custCache.getStatistics(false)); + System.out.println("contactCache:" + contactCache.getStatistics(false)); + System.out.println("custManyIdsCache:" + custManyIdsCache.getStatistics(false)); + + } private int fetchCustomer(Integer id) { - + Customer customer2 = Ebean.find(Customer.class).setId(id) // .setUseCache(true) .findUnique(); diff --git a/src/test/java/com/avaje/tests/cache/TestCacheCustomer.java b/src/test/java/com/avaje/tests/cache/TestCacheCustomer.java index 4dda4d98e..494fe39a7 100644 --- a/src/test/java/com/avaje/tests/cache/TestCacheCustomer.java +++ b/src/test/java/com/avaje/tests/cache/TestCacheCustomer.java @@ -2,44 +2,43 @@ package com.avaje.tests.cache; import java.util.List; -import junit.framework.TestCase; - import org.junit.Assert; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.tests.model.basic.Address; import com.avaje.tests.model.basic.Contact; import com.avaje.tests.model.basic.Customer; import com.avaje.tests.model.basic.ResetBasicData; -public class TestCacheCustomer extends TestCase { +public class TestCacheCustomer extends BaseTestCase { - public void test() { - - ResetBasicData.reset(); - - List list = Ebean.find(Customer.class) - .setAutofetch(false) - .setLoadBeanCache(true) - .findList(); - - Assert.assertTrue(list.size() > 1); - - for (Customer customer : list) { - Address billingAddress = customer.getBillingAddress(); - if (billingAddress != null){ - billingAddress.getLine1(); - } - Address shippingAddress = customer.getShippingAddress(); - if (shippingAddress != null){ - shippingAddress.getLine1(); - } - List contacts = customer.getContacts(); - for (Contact contact : contacts) { - contact.getFirstName(); - } - - } - - } + @Test + public void test() { + + ResetBasicData.reset(); + + List list = Ebean.find(Customer.class).setAutofetch(false).setLoadBeanCache(true) + .findList(); + + Assert.assertTrue(list.size() > 1); + + for (Customer customer : list) { + Address billingAddress = customer.getBillingAddress(); + if (billingAddress != null) { + billingAddress.getLine1(); + } + Address shippingAddress = customer.getShippingAddress(); + if (shippingAddress != null) { + shippingAddress.getLine1(); + } + List contacts = customer.getContacts(); + for (Contact contact : contacts) { + contact.getFirstName(); + } + + } + + } } diff --git a/src/test/java/com/avaje/tests/cache/TestCacheNaturalId.java b/src/test/java/com/avaje/tests/cache/TestCacheNaturalId.java index f44acedf7..0e12db919 100644 --- a/src/test/java/com/avaje/tests/cache/TestCacheNaturalId.java +++ b/src/test/java/com/avaje/tests/cache/TestCacheNaturalId.java @@ -3,70 +3,65 @@ package com.avaje.tests.cache; import java.util.List; import junit.framework.Assert; -import junit.framework.TestCase; +import org.junit.Test; + +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.cache.ServerCache; import com.avaje.ebean.cache.ServerCacheStatistics; import com.avaje.tests.model.basic.Contact; import com.avaje.tests.model.basic.ResetBasicData; -public class TestCacheNaturalId extends TestCase { +public class TestCacheNaturalId extends BaseTestCase { - - public void test(){ - - ResetBasicData.reset(); + @Test + public void test() { - ServerCache contactCache = Ebean.getServerCacheManager().getBeanCache(Contact.class); + ResetBasicData.reset(); - List list = Ebean.find(Contact.class) - .setLoadBeanCache(true) - .findList(); - - Assert.assertTrue(contactCache.size() > 0); - - String emailToSearch = null; - for (Contact contact : list) { - if (contact.getEmail() != null){ - emailToSearch = contact.getEmail(); - break; - } - } - - contactCache.getStatistics(true); - - Contact c0 = Ebean.find(Contact.class) - .where().eq("email", emailToSearch) - .findUnique(); - - ServerCacheStatistics stats0 = contactCache.getStatistics(false); - - Contact c1 = Ebean.find(Contact.class) - .where().eq("email", emailToSearch) - .findUnique(); - - ServerCacheStatistics stats1 = contactCache.getStatistics(false); - - Assert.assertNotNull(c0); - Assert.assertNotNull(c1); + ServerCache contactCache = Ebean.getServerCacheManager().getBeanCache(Contact.class); - Assert.assertEquals(1, stats0.getHitCount()); - Assert.assertEquals(2, stats1.getHitCount()); + List list = Ebean.find(Contact.class).setLoadBeanCache(true).findList(); - c1.setEmail("mychangedemail@what.com"); - Ebean.save(c1); - - Contact c2 = Ebean.find(Contact.class) - .where().eq("email", "mychangedemail@what.com") - .findUnique(); - - ServerCacheStatistics stats2 = contactCache.getStatistics(false); - - Assert.assertNotNull(c2); - Assert.assertEquals(c2.getId(), c1.getId()); - Assert.assertEquals(c0.getId(), c1.getId()); - Assert.assertTrue(stats2.getHitCount() > stats1.getHitCount()); + Assert.assertTrue(contactCache.size() > 0); - } + String emailToSearch = null; + for (Contact contact : list) { + if (contact.getEmail() != null) { + emailToSearch = contact.getEmail(); + break; + } + } + + contactCache.getStatistics(true); + + Contact c0 = Ebean.find(Contact.class).where().eq("email", emailToSearch).findUnique(); + + ServerCacheStatistics stats0 = contactCache.getStatistics(false); + + Contact c1 = Ebean.find(Contact.class).where().eq("email", emailToSearch).findUnique(); + + ServerCacheStatistics stats1 = contactCache.getStatistics(false); + + Assert.assertNotNull(c0); + Assert.assertNotNull(c1); + + Assert.assertEquals(1, stats0.getHitCount()); + Assert.assertEquals(2, stats1.getHitCount()); + + c1.setEmail("mychangedemail@what.com"); + Ebean.save(c1); + + Contact c2 = Ebean.find(Contact.class).where().eq("email", "mychangedemail@what.com") + .findUnique(); + + ServerCacheStatistics stats2 = contactCache.getStatistics(false); + + Assert.assertNotNull(c2); + Assert.assertEquals(c2.getId(), c1.getId()); + Assert.assertEquals(c0.getId(), c1.getId()); + Assert.assertTrue(stats2.getHitCount() > stats1.getHitCount()); + + } } diff --git a/src/test/java/com/avaje/tests/cache/TestCacheReferenceLazyLoad.java b/src/test/java/com/avaje/tests/cache/TestCacheReferenceLazyLoad.java index 67116858a..79b873689 100644 --- a/src/test/java/com/avaje/tests/cache/TestCacheReferenceLazyLoad.java +++ b/src/test/java/com/avaje/tests/cache/TestCacheReferenceLazyLoad.java @@ -1,33 +1,34 @@ package com.avaje.tests.cache; -import junit.framework.TestCase; - import org.junit.Assert; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.cache.ServerCacheManager; import com.avaje.tests.model.basic.Customer; import com.avaje.tests.model.basic.ResetBasicData; -public class TestCacheReferenceLazyLoad extends TestCase { +public class TestCacheReferenceLazyLoad extends BaseTestCase { + @Test public void testLazyLoadOnRef() { - + ResetBasicData.reset(); ServerCacheManager serverCacheManager = Ebean.getServerCacheManager(); boolean originallyBeanCaching = serverCacheManager.isBeanCaching(Customer.class); Customer customer = Ebean.getReference(Customer.class, 1); - + // invoke lazy loading customer.getName(); - + if (!originallyBeanCaching) { // the lazy loading shouldn't start the L2 bean cache boolean beanCachingAfter = serverCacheManager.isBeanCaching(Customer.class); Assert.assertFalse(beanCachingAfter); } } - + } diff --git a/src/test/java/com/avaje/tests/cache/TestExternalNotification.java b/src/test/java/com/avaje/tests/cache/TestExternalNotification.java index 8c26b5568..2a636aa7f 100644 --- a/src/test/java/com/avaje/tests/cache/TestExternalNotification.java +++ b/src/test/java/com/avaje/tests/cache/TestExternalNotification.java @@ -1,8 +1,10 @@ package com.avaje.tests.cache; import junit.framework.Assert; -import junit.framework.TestCase; +import org.junit.Test; + +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.SqlUpdate; import com.avaje.ebean.cache.ServerCache; @@ -10,64 +12,65 @@ import com.avaje.ebean.cache.ServerCacheManager; import com.avaje.tests.model.basic.Country; import com.avaje.tests.model.basic.ResetBasicData; -public class TestExternalNotification extends TestCase { +public class TestExternalNotification extends BaseTestCase { - - public void testNotify() { - - ResetBasicData.reset(); - - Ebean.runCacheWarming(Country.class); - - ServerCache countryCache = Ebean.getServerCacheManager().getBeanCache(Country.class); - - Assert.assertTrue(countryCache.size() > 0); - - // inserts don't remove from bean cache - Ebean.externalModification("o_country", true, false, false); - Assert.assertTrue(countryCache.size() > 0); + @Test + public void testNotify() { - // updates flush cache - Ebean.externalModification("o_country", false, true, false); - Assert.assertEquals(0, countryCache.size()); + ResetBasicData.reset(); - Ebean.runCacheWarming(Country.class); - Assert.assertTrue(countryCache.size() > 0); + Ebean.runCacheWarming(Country.class); - // deletes flush cache - Ebean.externalModification("o_country", false, false, true); - Assert.assertEquals(0, countryCache.size()); + ServerCache countryCache = Ebean.getServerCacheManager().getBeanCache(Country.class); - Ebean.runCacheWarming(Country.class); - Assert.assertTrue(countryCache.size() > 0); + Assert.assertTrue(countryCache.size() > 0); - ServerCacheManager serverCacheManager = Ebean.getServerCacheManager(); - serverCacheManager.clearAll(); - Assert.assertEquals(0, countryCache.size()); + // inserts don't remove from bean cache + Ebean.externalModification("o_country", true, false, false); + Assert.assertTrue(countryCache.size() > 0); - Ebean.runCacheWarming(Country.class); - Assert.assertTrue(countryCache.size() > 0); + // updates flush cache + Ebean.externalModification("o_country", false, true, false); + Assert.assertEquals(0, countryCache.size()); - Ebean.getServerCacheManager().clear(Country.class); - Assert.assertEquals(0, countryCache.size()); + Ebean.runCacheWarming(Country.class); + Assert.assertTrue(countryCache.size() > 0); - Ebean.runCacheWarming(Country.class); - int cacheSize = countryCache.size(); - Assert.assertTrue("cacheSize: "+cacheSize,cacheSize > 0); + // deletes flush cache + Ebean.externalModification("o_country", false, false, true); + Assert.assertEquals(0, countryCache.size()); - SqlUpdate sqlUpdate = Ebean.createSqlUpdate("update o_country set name = :name where code = :code"); - sqlUpdate.setParameter("name", "Aotearoa"); - sqlUpdate.setParameter("code","NZ"); - - // this should just clear the entire country cache - int rows = sqlUpdate.execute(); - Assert.assertEquals(1, rows); - Assert.assertEquals(0, countryCache.size()); + Ebean.runCacheWarming(Country.class); + Assert.assertTrue(countryCache.size() > 0); - // set it back... - sqlUpdate.setParameter("name","New Zealand"); - sqlUpdate.setParameter("code","NZ"); - rows = sqlUpdate.execute(); - Assert.assertEquals(1, rows); - } + ServerCacheManager serverCacheManager = Ebean.getServerCacheManager(); + serverCacheManager.clearAll(); + Assert.assertEquals(0, countryCache.size()); + + Ebean.runCacheWarming(Country.class); + Assert.assertTrue(countryCache.size() > 0); + + Ebean.getServerCacheManager().clear(Country.class); + Assert.assertEquals(0, countryCache.size()); + + Ebean.runCacheWarming(Country.class); + int cacheSize = countryCache.size(); + Assert.assertTrue("cacheSize: " + cacheSize, cacheSize > 0); + + SqlUpdate sqlUpdate = Ebean + .createSqlUpdate("update o_country set name = :name where code = :code"); + sqlUpdate.setParameter("name", "Aotearoa"); + sqlUpdate.setParameter("code", "NZ"); + + // this should just clear the entire country cache + int rows = sqlUpdate.execute(); + Assert.assertEquals(1, rows); + Assert.assertEquals(0, countryCache.size()); + + // set it back... + sqlUpdate.setParameter("name", "New Zealand"); + sqlUpdate.setParameter("code", "NZ"); + rows = sqlUpdate.execute(); + Assert.assertEquals(1, rows); + } } diff --git a/src/test/java/com/avaje/tests/cache/TestQueryCache.java b/src/test/java/com/avaje/tests/cache/TestQueryCache.java index bfc367afb..efc7b00b4 100644 --- a/src/test/java/com/avaje/tests/cache/TestQueryCache.java +++ b/src/test/java/com/avaje/tests/cache/TestQueryCache.java @@ -2,67 +2,57 @@ package com.avaje.tests.cache; import java.util.List; -import junit.framework.TestCase; - import org.junit.Assert; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.bean.BeanCollection; import com.avaje.tests.model.basic.Customer; import com.avaje.tests.model.basic.ResetBasicData; -public class TestQueryCache extends TestCase { +public class TestQueryCache extends BaseTestCase { - @SuppressWarnings("unchecked") - public void test(){ - - ResetBasicData.reset(); - - List list = Ebean.find(Customer.class) - .setUseQueryCache(true) - .setReadOnly(true) - .where().ilike("name", "Rob") - .findList(); - - BeanCollection bc = (BeanCollection)list; - Assert.assertFalse(bc.isReadOnly()); - Assert.assertFalse(bc.isEmpty()); - Assert.assertTrue(list.size() > 0); - Assert.assertTrue(Ebean.getBeanState(list.get(0)).isReadOnly()); - - - List list2 = Ebean.find(Customer.class) - .setUseQueryCache(true) - .setReadOnly(true) - .where().ilike("name", "Rob") - .findList(); + @Test + @SuppressWarnings("unchecked") + public void test() { - List list2B = Ebean.find(Customer.class) - .setUseQueryCache(true) - //.setReadOnly(true) - .where().ilike("name", "Rob") - .findList(); + ResetBasicData.reset(); - -// Assert.assertTrue("same instance",list != list2); -// -// // readOnly defaults to true for query cache -// Assert.assertTrue("same instance",list != list2B); -// -// List list3 = Ebean.find(Customer.class) -// .setUseQueryCache(true) -// .setReadOnly(false) -// .where().ilike("name", "Rob") -// .findList(); -// -// Assert.assertTrue("diff instance",list != list3); -// BeanCollection bc3 = (BeanCollection)list3; -// Assert.assertFalse(bc3.isReadOnly()); -// Assert.assertFalse(bc3.isEmpty()); -// Assert.assertTrue(list3.size() > 0); -// Assert.assertFalse(Ebean.getBeanState(list3.get(0)).isReadOnly()); + List list = Ebean.find(Customer.class).setUseQueryCache(true).setReadOnly(true) + .where().ilike("name", "Rob").findList(); + BeanCollection bc = (BeanCollection) list; + Assert.assertFalse(bc.isReadOnly()); + Assert.assertFalse(bc.isEmpty()); + Assert.assertTrue(list.size() > 0); + Assert.assertTrue(Ebean.getBeanState(list.get(0)).isReadOnly()); + + List list2 = Ebean.find(Customer.class).setUseQueryCache(true).setReadOnly(true) + .where().ilike("name", "Rob").findList(); + + List list2B = Ebean.find(Customer.class).setUseQueryCache(true) + // .setReadOnly(true) + .where().ilike("name", "Rob").findList(); + + // Assert.assertTrue("same instance",list != list2); + // + // // readOnly defaults to true for query cache + // Assert.assertTrue("same instance",list != list2B); + // + // List list3 = Ebean.find(Customer.class) + // .setUseQueryCache(true) + // .setReadOnly(false) + // .where().ilike("name", "Rob") + // .findList(); + // + // Assert.assertTrue("diff instance",list != list3); + // BeanCollection bc3 = (BeanCollection)list3; + // Assert.assertFalse(bc3.isReadOnly()); + // Assert.assertFalse(bc3.isEmpty()); + // Assert.assertTrue(list3.size() > 0); + // Assert.assertFalse(Ebean.getBeanState(list3.get(0)).isReadOnly()); + + } - } - } diff --git a/src/test/java/com/avaje/tests/cache/TestQueryCacheInsert.java b/src/test/java/com/avaje/tests/cache/TestQueryCacheInsert.java index 894fd70c4..811bdee55 100644 --- a/src/test/java/com/avaje/tests/cache/TestQueryCacheInsert.java +++ b/src/test/java/com/avaje/tests/cache/TestQueryCacheInsert.java @@ -3,40 +3,35 @@ package com.avaje.tests.cache; import java.util.List; import junit.framework.Assert; -import junit.framework.TestCase; +import org.junit.Test; + +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.EbeanServer; import com.avaje.tests.model.basic.EBasicVer; -public class TestQueryCacheInsert extends TestCase { +public class TestQueryCacheInsert extends BaseTestCase { - public void test() { + @Test + public void test() { - EbeanServer server = Ebean.getServer(null); + EbeanServer server = Ebean.getServer(null); - EBasicVer account = new EBasicVer(); - server.save(account); + EBasicVer account = new EBasicVer(); + server.save(account); - List alist0 = - server.find(EBasicVer.class) - .setUseQueryCache(true) - .findList(); + List alist0 = server.find(EBasicVer.class).setUseQueryCache(true).findList(); - + EBasicVer a2 = new EBasicVer(); + server.save(a2); - EBasicVer a2 = new EBasicVer(); - server.save(a2); + List alist1 = server.find(EBasicVer.class).setUseQueryCache(true).findList(); - List alist1 = server.find(EBasicVer.class) - .setUseQueryCache(true) - .findList(); - - - Assert.assertEquals(alist0.size()+1,alist1.size()); -// List noQueryCacheList = server.find(EBasicVer.class) -// .setUseQueryCache(false) -// .findList(); -// Assert.assertTrue(sizeOne != noQueryCacheList.size()); - } + Assert.assertEquals(alist0.size() + 1, alist1.size()); + // List noQueryCacheList = server.find(EBasicVer.class) + // .setUseQueryCache(false) + // .findList(); + // Assert.assertTrue(sizeOne != noQueryCacheList.size()); + } } diff --git a/src/test/java/com/avaje/tests/cascade/TestPrivateOwned.java b/src/test/java/com/avaje/tests/cascade/TestPrivateOwned.java index df1b6125c..b6bedd9d4 100644 --- a/src/test/java/com/avaje/tests/cascade/TestPrivateOwned.java +++ b/src/test/java/com/avaje/tests/cascade/TestPrivateOwned.java @@ -3,50 +3,51 @@ package com.avaje.tests.cascade; import java.util.List; import java.util.Set; -import junit.framework.TestCase; - import org.junit.Assert; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.bean.BeanCollection; import com.avaje.tests.model.basic.TSDetail; import com.avaje.tests.model.basic.TSMaster; -public class TestPrivateOwned extends TestCase { +public class TestPrivateOwned extends BaseTestCase { - public void test() { - - TSMaster m0 = new TSMaster(); - m0.setName("m1"); - - m0.addDetail(new TSDetail("m1 detail 1")); - m0.addDetail(new TSDetail("m1 detail 2")); - - Ebean.save(m0); - - TSMaster master = Ebean.find(TSMaster.class, m0.getId()); - List details = master.getDetails(); - - TSDetail removedDetail = details.remove(1); - - BeanCollection bc = (BeanCollection)details; - Set modifyRemovals = bc.getModifyRemovals(); - - Assert.assertNotNull(modifyRemovals); - Assert.assertTrue(modifyRemovals.size() == 1); - Assert.assertTrue(modifyRemovals.contains(removedDetail)); - - Ebean.save(master); - - TSMaster masterReload = Ebean.find(TSMaster.class, m0.getId()); - List detailsReload = masterReload.getDetails(); + @Test + public void test() { + + TSMaster m0 = new TSMaster(); + m0.setName("m1"); + + m0.addDetail(new TSDetail("m1 detail 1")); + m0.addDetail(new TSDetail("m1 detail 2")); + + Ebean.save(m0); + + TSMaster master = Ebean.find(TSMaster.class, m0.getId()); + List details = master.getDetails(); + + TSDetail removedDetail = details.remove(1); + + BeanCollection bc = (BeanCollection) details; + Set modifyRemovals = bc.getModifyRemovals(); + + Assert.assertNotNull(modifyRemovals); + Assert.assertTrue(modifyRemovals.size() == 1); + Assert.assertTrue(modifyRemovals.contains(removedDetail)); + + Ebean.save(master); + + TSMaster masterReload = Ebean.find(TSMaster.class, m0.getId()); + List detailsReload = masterReload.getDetails(); + + // the removed bean has really been removed + Assert.assertTrue(detailsReload.size() == 1); + + TSMaster master3 = Ebean.find(TSMaster.class, m0.getId()); + List details3 = master3.getDetails(); + details3.clear(); + } - // the removed bean has really been removed - Assert.assertTrue(detailsReload.size() == 1); - - TSMaster master3 = Ebean.find(TSMaster.class, m0.getId()); - List details3 = master3.getDetails(); - details3.clear(); - } - } diff --git a/src/test/java/com/avaje/tests/cascade/TestPrivateOwnedNoCascadeRemove.java b/src/test/java/com/avaje/tests/cascade/TestPrivateOwnedNoCascadeRemove.java index 85155111b..f69f9ccac 100644 --- a/src/test/java/com/avaje/tests/cascade/TestPrivateOwnedNoCascadeRemove.java +++ b/src/test/java/com/avaje/tests/cascade/TestPrivateOwnedNoCascadeRemove.java @@ -3,53 +3,54 @@ package com.avaje.tests.cascade; import java.util.List; import java.util.Set; -import junit.framework.TestCase; - import org.junit.Assert; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.bean.BeanCollection; import com.avaje.tests.model.basic.TSDetailTwo; import com.avaje.tests.model.basic.TSMasterTwo; -public class TestPrivateOwnedNoCascadeRemove extends TestCase { +public class TestPrivateOwnedNoCascadeRemove extends BaseTestCase { - public void test() { - - TSMasterTwo m0 = new TSMasterTwo(); - m0.setName("m1"); - - m0.addDetail(new TSDetailTwo("m1 detail 1")); - m0.addDetail(new TSDetailTwo("m1 detail 2")); - - Ebean.save(m0); - - TSMasterTwo master = Ebean.find(TSMasterTwo.class, m0.getId()); - List details = master.getDetails(); - - TSDetailTwo removedDetail = details.remove(1); - - BeanCollection bc = (BeanCollection)details; - Set modifyRemovals = bc.getModifyRemovals(); - - Assert.assertNotNull(modifyRemovals); - Assert.assertTrue(modifyRemovals.size() == 1); - Assert.assertTrue(modifyRemovals.contains(removedDetail)); - - Ebean.save(master); - - TSMasterTwo masterReload = Ebean.find(TSMasterTwo.class, m0.getId()); - List detailsReload = masterReload.getDetails(); + @Test + public void test() { + + TSMasterTwo m0 = new TSMasterTwo(); + m0.setName("m1"); + + m0.addDetail(new TSDetailTwo("m1 detail 1")); + m0.addDetail(new TSDetailTwo("m1 detail 2")); + + Ebean.save(m0); + + TSMasterTwo master = Ebean.find(TSMasterTwo.class, m0.getId()); + List details = master.getDetails(); + + TSDetailTwo removedDetail = details.remove(1); + + BeanCollection bc = (BeanCollection) details; + Set modifyRemovals = bc.getModifyRemovals(); + + Assert.assertNotNull(modifyRemovals); + Assert.assertTrue(modifyRemovals.size() == 1); + Assert.assertTrue(modifyRemovals.contains(removedDetail)); + + Ebean.save(master); + + TSMasterTwo masterReload = Ebean.find(TSMasterTwo.class, m0.getId()); + List detailsReload = masterReload.getDetails(); + + // the removed bean has really been removed + Assert.assertTrue(detailsReload.size() == 1); + + try { + Ebean.delete(masterReload); + Assert.fail("delete should error"); + } catch (Exception e) { + Assert.assertTrue("delete failed", true); + } + } - // the removed bean has really been removed - Assert.assertTrue(detailsReload.size() == 1); - - try { - Ebean.delete(masterReload); - fail("delete should error"); - } catch (Exception e){ - assertTrue("delete failed",true); - } - } - } diff --git a/src/test/java/com/avaje/tests/compositekeys/TestCKeyDelete.java b/src/test/java/com/avaje/tests/compositekeys/TestCKeyDelete.java index d3175a144..a7b0b392d 100644 --- a/src/test/java/com/avaje/tests/compositekeys/TestCKeyDelete.java +++ b/src/test/java/com/avaje/tests/compositekeys/TestCKeyDelete.java @@ -1,40 +1,37 @@ package com.avaje.tests.compositekeys; import junit.framework.Assert; -import junit.framework.TestCase; +import org.junit.Test; + +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.tests.model.basic.CKeyParent; import com.avaje.tests.model.basic.CKeyParentId; -public class TestCKeyDelete extends TestCase { +public class TestCKeyDelete extends BaseTestCase { - public void test() { - - CKeyParentId id = new CKeyParentId(100, "deleteMe"); - CKeyParentId searchId = new CKeyParentId(100, "deleteMe"); - - CKeyParent p = new CKeyParent(); - p.setId(id); - p.setName("testDelete"); + @Test + public void test() { - Ebean.save(p); + CKeyParentId id = new CKeyParentId(100, "deleteMe"); + CKeyParentId searchId = new CKeyParentId(100, "deleteMe"); - CKeyParent found = Ebean.find(CKeyParent.class) - .where().idEq(searchId) - .findUnique(); - - Assert.assertNotNull(found); + CKeyParent p = new CKeyParent(); + p.setId(id); + p.setName("testDelete"); - Ebean.delete(CKeyParent.class, searchId); - - - CKeyParent notFound = Ebean.find(CKeyParent.class) - .where().idEq(searchId) - .findUnique(); - - Assert.assertNull(notFound); + Ebean.save(p); - - } + CKeyParent found = Ebean.find(CKeyParent.class).where().idEq(searchId).findUnique(); + + Assert.assertNotNull(found); + + Ebean.delete(CKeyParent.class, searchId); + + CKeyParent notFound = Ebean.find(CKeyParent.class).where().idEq(searchId).findUnique(); + + Assert.assertNull(notFound); + + } } diff --git a/src/test/java/com/avaje/tests/compositekeys/TestCKeyIdInExpression.java b/src/test/java/com/avaje/tests/compositekeys/TestCKeyIdInExpression.java index 188046e23..ec0dd60fb 100644 --- a/src/test/java/com/avaje/tests/compositekeys/TestCKeyIdInExpression.java +++ b/src/test/java/com/avaje/tests/compositekeys/TestCKeyIdInExpression.java @@ -3,58 +3,58 @@ package com.avaje.tests.compositekeys; import java.util.ArrayList; import java.util.List; -import junit.framework.TestCase; +import org.junit.Assert; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.EbeanServer; import com.avaje.ebean.Query; import com.avaje.ebean.config.GlobalProperties; import com.avaje.tests.model.composite.ROrder; import com.avaje.tests.model.composite.ROrderPK; -public class TestCKeyIdInExpression extends TestCase { +public class TestCKeyIdInExpression extends BaseTestCase { - public void testDummy() { + @Test + public void testDummy() { - } - //public void testRunManually() { - public void notRanAutomatically() { - - GlobalProperties.put("datasource.default", ""); - EbeanServer server = CreateIdExpandedFormServer.create(); - - ROrderPK k0 = new ROrderPK("compa", 100); - ROrderPK k1 = new ROrderPK("compa", 101); - ROrderPK k2 = new ROrderPK("b", 105); - ROrderPK k3 = new ROrderPK("c", 106); + } + + // public void testRunManually() { + public void notRanAutomatically() { + + GlobalProperties.put("datasource.default", ""); + EbeanServer server = CreateIdExpandedFormServer.create(); + + ROrderPK k0 = new ROrderPK("compa", 100); + ROrderPK k1 = new ROrderPK("compa", 101); + ROrderPK k2 = new ROrderPK("b", 105); + ROrderPK k3 = new ROrderPK("c", 106); + + List keys = new ArrayList(); + keys.add(k0); + keys.add(k1); + keys.add(k2); + keys.add(k3); + + Query query = server.find(ROrder.class).where().idIn(keys).query(); + + query.findList(); + String sql = query.getGeneratedSql(); + + Assert.assertTrue(sql.contains("(r.company=? and r.order_number=?) or")); + + Query query2 = server.find(ROrder.class).setId(k0); + + query2.findUnique(); + sql = query2.getGeneratedSql(); + Assert.assertTrue(sql.contains("r.company = ? ")); + Assert.assertTrue(sql.contains(" and r.order_number = ?")); + + server.delete(ROrder.class, k0); + + server.delete(ROrder.class, keys); + + } - List keys = new ArrayList(); - keys.add(k0); - keys.add(k1); - keys.add(k2); - keys.add(k3); - - Query query = server.find(ROrder.class) - .where().idIn(keys) - .query(); - - query.findList(); - String sql = query.getGeneratedSql(); - - assertTrue(sql.contains("(r.company=? and r.order_number=?) or")); - - Query query2 = server.find(ROrder.class) - .setId(k0); - - query2.findUnique(); - sql = query2.getGeneratedSql(); - assertTrue(sql.contains("r.company = ? ")); - assertTrue(sql.contains(" and r.order_number = ?")); - - - server.delete(ROrder.class, k0); - - server.delete(ROrder.class, keys); - - } - } diff --git a/src/test/java/com/avaje/tests/compositekeys/TestCKeyLazyLoad.java b/src/test/java/com/avaje/tests/compositekeys/TestCKeyLazyLoad.java index dff942cd4..fc43f8c2f 100644 --- a/src/test/java/com/avaje/tests/compositekeys/TestCKeyLazyLoad.java +++ b/src/test/java/com/avaje/tests/compositekeys/TestCKeyLazyLoad.java @@ -4,8 +4,10 @@ import java.util.ArrayList; import java.util.List; import junit.framework.Assert; -import junit.framework.TestCase; +import org.junit.Test; + +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.Query; import com.avaje.tests.model.basic.CKeyAssoc; @@ -13,72 +15,65 @@ import com.avaje.tests.model.basic.CKeyDetail; import com.avaje.tests.model.basic.CKeyParent; import com.avaje.tests.model.basic.CKeyParentId; -public class TestCKeyLazyLoad extends TestCase { +public class TestCKeyLazyLoad extends BaseTestCase { - public void test() { - - CKeyAssoc assoc = new CKeyAssoc(); - assoc.setAssocOne("assocOne"); - - CKeyParentId id = new CKeyParentId(1, "one"); - - CKeyParent p = new CKeyParent(); - p.setId(id); - p.setName("testone"); - p.setAssoc(assoc); - p.add(new CKeyDetail("somethine one")); - p.add(new CKeyDetail("somethine two")); + @Test + public void test() { - Ebean.save(p); - - CKeyAssoc assoc2 = new CKeyAssoc(); - assoc2.setAssocOne("assocTwo"); - - CKeyParentId id2 = new CKeyParentId(2, "two"); - - CKeyParent p2 = new CKeyParent(); - p2.setId(id2); - p2.setName("testone"); - p2.setAssoc(assoc2); - p2.add(new CKeyDetail("somethine one")); - p2.add(new CKeyDetail("somethine two")); - - Ebean.save(p2); + CKeyAssoc assoc = new CKeyAssoc(); + assoc.setAssocOne("assocOne"); - CKeyParentId searchId = new CKeyParentId(1, "one"); + CKeyParentId id = new CKeyParentId(1, "one"); - CKeyParent found = Ebean.find(CKeyParent.class) - .where().idEq(searchId) - .findUnique(); - - Assert.assertNotNull(found); - Assert.assertTrue(found.getDetails().size() == 2); - - - List list = Ebean.find(CKeyParent.class) - .findList(); + CKeyParent p = new CKeyParent(); + p.setId(id); + p.setName("testone"); + p.setAssoc(assoc); + p.add(new CKeyDetail("somethine one")); + p.add(new CKeyDetail("somethine two")); - Assert.assertTrue(list.size() > 1); - - CKeyParent foundFirst = list.get(0); - List details = foundFirst.getDetails(); - - int size = details.size(); - Assert.assertTrue(size > 0); - - - List idList = new ArrayList(); - idList.add(id); - idList.add(id2); - - - Query queryIdIn = Ebean.find(CKeyParent.class) - .where().idIn(idList) - .query(); - - List idInTestList = queryIdIn.findList(); - - Assert.assertTrue(idInTestList.size() == 2); - - } + Ebean.save(p); + + CKeyAssoc assoc2 = new CKeyAssoc(); + assoc2.setAssocOne("assocTwo"); + + CKeyParentId id2 = new CKeyParentId(2, "two"); + + CKeyParent p2 = new CKeyParent(); + p2.setId(id2); + p2.setName("testone"); + p2.setAssoc(assoc2); + p2.add(new CKeyDetail("somethine one")); + p2.add(new CKeyDetail("somethine two")); + + Ebean.save(p2); + + CKeyParentId searchId = new CKeyParentId(1, "one"); + + CKeyParent found = Ebean.find(CKeyParent.class).where().idEq(searchId).findUnique(); + + Assert.assertNotNull(found); + Assert.assertTrue(found.getDetails().size() == 2); + + List list = Ebean.find(CKeyParent.class).findList(); + + Assert.assertTrue(list.size() > 1); + + CKeyParent foundFirst = list.get(0); + List details = foundFirst.getDetails(); + + int size = details.size(); + Assert.assertTrue(size > 0); + + List idList = new ArrayList(); + idList.add(id); + idList.add(id2); + + Query queryIdIn = Ebean.find(CKeyParent.class).where().idIn(idList).query(); + + List idInTestList = queryIdIn.findList(); + + Assert.assertTrue(idInTestList.size() == 2); + + } } diff --git a/src/test/java/com/avaje/tests/m2m/TestM2MDeleteNoCascade.java b/src/test/java/com/avaje/tests/m2m/TestM2MDeleteNoCascade.java index db795285c..38d275e29 100644 --- a/src/test/java/com/avaje/tests/m2m/TestM2MDeleteNoCascade.java +++ b/src/test/java/com/avaje/tests/m2m/TestM2MDeleteNoCascade.java @@ -2,44 +2,45 @@ package com.avaje.tests.m2m; import javax.persistence.PersistenceException; -import junit.framework.TestCase; - import org.junit.Assert; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.tests.model.basic.MnocRole; import com.avaje.tests.model.basic.MnocUser; -public class TestM2MDeleteNoCascade extends TestCase { +public class TestM2MDeleteNoCascade extends BaseTestCase { - public void test() { - - MnocRole r0 = new MnocRole("r0"); - MnocRole r1 = new MnocRole("r0"); - - Ebean.save(r0); - Ebean.save(r1); - - MnocUser u0 = new MnocUser("usr0"); - u0.addValidRole(r0); - u0.addValidRole(r1); - - Ebean.save(u0); - - try { - Ebean.delete(u0); - Assert.assertTrue("expecting an exception",false); - - } catch (PersistenceException e){ - // we expect this - Assert.assertTrue(true); - } - - int rc = Ebean.deleteManyToManyAssociations(u0, "validRoles"); - Assert.assertTrue(rc != 0); - - Ebean.delete(u0); - Assert.assertTrue(true); - + @Test + public void test() { + + MnocRole r0 = new MnocRole("r0"); + MnocRole r1 = new MnocRole("r0"); + + Ebean.save(r0); + Ebean.save(r1); + + MnocUser u0 = new MnocUser("usr0"); + u0.addValidRole(r0); + u0.addValidRole(r1); + + Ebean.save(u0); + + try { + Ebean.delete(u0); + Assert.assertTrue("expecting an exception", false); + + } catch (PersistenceException e) { + // we expect this + Assert.assertTrue(true); } + + int rc = Ebean.deleteManyToManyAssociations(u0, "validRoles"); + Assert.assertTrue(rc != 0); + + Ebean.delete(u0); + Assert.assertTrue(true); + + } } diff --git a/src/test/java/com/avaje/tests/m2m/TestM2MDeleteWithCascade.java b/src/test/java/com/avaje/tests/m2m/TestM2MDeleteWithCascade.java index eecaa310f..a901efdf0 100644 --- a/src/test/java/com/avaje/tests/m2m/TestM2MDeleteWithCascade.java +++ b/src/test/java/com/avaje/tests/m2m/TestM2MDeleteWithCascade.java @@ -4,53 +4,50 @@ import java.util.ArrayList; import java.util.Collections; import java.util.List; -import junit.framework.TestCase; - import org.junit.Assert; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.tests.model.basic.MRole; import com.avaje.tests.model.basic.MUser; -public class TestM2MDeleteWithCascade extends TestCase { +public class TestM2MDeleteWithCascade extends BaseTestCase { - public void test() { - - MRole r0 = new MRole("r0"); - MRole r1 = new MRole("r1"); - - Ebean.save(r0); - //Ebean.save(r1); - - MUser u0 = new MUser("usr0"); - u0.addRole(r0); - u0.addRole(r1); - - Ebean.save(u0); - - List roles = u0.getRoles(); - - // this will delete - Ebean.delete(u0); - - MUser notThere = Ebean.find(MUser.class, u0.getUserid()); - Assert.assertNull("been deleted",notThere); - - List roleIds = new ArrayList(); - Collections.addAll(roleIds, r0.getRoleid(), r1.getRoleid()); - - int rc = Ebean.find(MRole.class) - .where().idIn(roleIds) - .findRowCount(); - - Assert.assertEquals("roles not deleted",2, rc); - - Ebean.delete(roles); + @Test + public void test() { - rc = Ebean.find(MRole.class) - .where().idIn(roleIds) - .findRowCount(); - - Assert.assertEquals("roles deleted now",0, rc); - } + MRole r0 = new MRole("r0"); + MRole r1 = new MRole("r1"); + + Ebean.save(r0); + // Ebean.save(r1); + + MUser u0 = new MUser("usr0"); + u0.addRole(r0); + u0.addRole(r1); + + Ebean.save(u0); + + List roles = u0.getRoles(); + + // this will delete + Ebean.delete(u0); + + MUser notThere = Ebean.find(MUser.class, u0.getUserid()); + Assert.assertNull("been deleted", notThere); + + List roleIds = new ArrayList(); + Collections.addAll(roleIds, r0.getRoleid(), r1.getRoleid()); + + int rc = Ebean.find(MRole.class).where().idIn(roleIds).findRowCount(); + + Assert.assertEquals("roles not deleted", 2, rc); + + Ebean.delete(roles); + + rc = Ebean.find(MRole.class).where().idIn(roleIds).findRowCount(); + + Assert.assertEquals("roles deleted now", 0, rc); + } } diff --git a/src/test/java/com/avaje/tests/m2m/TestM2MModifyTest.java b/src/test/java/com/avaje/tests/m2m/TestM2MModifyTest.java index 95fbee7cb..11b29ec05 100644 --- a/src/test/java/com/avaje/tests/m2m/TestM2MModifyTest.java +++ b/src/test/java/com/avaje/tests/m2m/TestM2MModifyTest.java @@ -2,58 +2,59 @@ package com.avaje.tests.m2m; import java.util.List; -import junit.framework.TestCase; - import org.junit.Assert; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.tests.model.basic.MRole; import com.avaje.tests.model.basic.MUser; -public class TestM2MModifyTest extends TestCase { +public class TestM2MModifyTest extends BaseTestCase { - public void test() { + @Test + public void test() { - // Create 2 roles r0 and r1 - MRole r0 = new MRole("r0"); - MRole r1 = new MRole("r1"); + // Create 2 roles r0 and r1 + MRole r0 = new MRole("r0"); + MRole r1 = new MRole("r1"); - // Save r1 and r2 - Ebean.save(r0); - Ebean.save(r1); + // Save r1 and r2 + Ebean.save(r0); + Ebean.save(r1); - // Create a new user - MUser u0 = new MUser("usr0"); - u0.addRole(r0); - u0.addRole(r1); + // Create a new user + MUser u0 = new MUser("usr0"); + u0.addRole(r0); + u0.addRole(r1); - // Save the user - Ebean.save(u0); + // Save the user + Ebean.save(u0); - List roles = u0.getRoles(); + List roles = u0.getRoles(); - Assert.assertTrue(roles.size() == 2); + Assert.assertTrue(roles.size() == 2); - u0 = Ebean.find(MUser.class, u0.getUserid()); + u0 = Ebean.find(MUser.class, u0.getUserid()); - roles = u0.getRoles(); - int nrRoles = roles.size(); - - Assert.assertTrue(nrRoles == 2); + roles = u0.getRoles(); + int nrRoles = roles.size(); - roles.clear(); - roles.add(r0); - roles.add(r1); - roles.remove(r1); + Assert.assertTrue(nrRoles == 2); - Ebean.save(u0); + roles.clear(); + roles.add(r0); + roles.add(r1); + roles.remove(r1); - u0 = Ebean.find(MUser.class, u0.getUserid()); + Ebean.save(u0); - roles = u0.getRoles(); - - nrRoles = roles.size(); + u0 = Ebean.find(MUser.class, u0.getUserid()); - Assert.assertTrue(nrRoles == 1); - } + roles = u0.getRoles(); + + nrRoles = roles.size(); + + Assert.assertTrue(nrRoles == 1); + } } diff --git a/src/test/java/com/avaje/tests/model/basic/Order.java b/src/test/java/com/avaje/tests/model/basic/Order.java index 64ffc21c0..59d9e00eb 100644 --- a/src/test/java/com/avaje/tests/model/basic/Order.java +++ b/src/test/java/com/avaje/tests/model/basic/Order.java @@ -34,7 +34,7 @@ import com.avaje.ebean.annotation.Where; public class Order implements Serializable { private static final long serialVersionUID = 1L; - + @XmlType(name="status") public enum Status { NEW, diff --git a/src/test/java/com/avaje/tests/model/basic/mapsuper/TestMapSuperEquals.java b/src/test/java/com/avaje/tests/model/basic/mapsuper/TestMapSuperEquals.java index af22b1549..6a13fdb0c 100644 --- a/src/test/java/com/avaje/tests/model/basic/mapsuper/TestMapSuperEquals.java +++ b/src/test/java/com/avaje/tests/model/basic/mapsuper/TestMapSuperEquals.java @@ -1,17 +1,18 @@ package com.avaje.tests.model.basic.mapsuper; -import junit.framework.TestCase; - import org.junit.Assert; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.bean.EntityBean; -public class TestMapSuperEquals extends TestCase { +public class TestMapSuperEquals extends BaseTestCase { + @Test public void testEquals() { - + MapSuperActual a = new MapSuperActual(); - + if (a instanceof EntityBean) { // test on enhanced beans only @@ -20,18 +21,18 @@ public class TestMapSuperEquals extends TestCase { MapSuperActual c = new MapSuperActual(); c.setId(2l); - + a.setId(456l); - - Assert.assertTrue("equals By Id value on enhanced mapped super",a.equals(b)); + + Assert.assertTrue("equals By Id value on enhanced mapped super", a.equals(b)); Assert.assertTrue(b.equals(a)); Assert.assertTrue(!a.equals(c)); Assert.assertTrue(!b.equals(c)); - + } else { System.out.println("--- ok, not running TestMapSuperEquals test"); } - + } - + } diff --git a/src/test/java/com/avaje/tests/model/basic/xtra/TestDeleteUnloadedChildren.java b/src/test/java/com/avaje/tests/model/basic/xtra/TestDeleteUnloadedChildren.java index 2542b5623..b27d248f4 100644 --- a/src/test/java/com/avaje/tests/model/basic/xtra/TestDeleteUnloadedChildren.java +++ b/src/test/java/com/avaje/tests/model/basic/xtra/TestDeleteUnloadedChildren.java @@ -1,96 +1,92 @@ package com.avaje.tests.model.basic.xtra; - - import java.util.ArrayList; -import junit.framework.TestCase; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.SqlUpdate; +public class TestDeleteUnloadedChildren extends BaseTestCase { -public class TestDeleteUnloadedChildren extends TestCase { + private void init() { + Ebean.beginTransaction(); + try { + String sql; + SqlUpdate delete; - private void init() { + sql = "delete from td_child"; + delete = Ebean.createSqlUpdate(sql); + delete.execute(); - Ebean.beginTransaction(); - try { - String sql; - SqlUpdate delete; - + sql = "delete from td_parent"; + delete = Ebean.createSqlUpdate(sql); + delete.execute(); - sql = "delete from td_child"; - delete = Ebean.createSqlUpdate(sql); - delete.execute(); + EdParent parent = new EdParent(); + parent.setName("MyComputer"); - sql = "delete from td_parent"; - delete = Ebean.createSqlUpdate(sql); - delete.execute(); + EdChild child = new EdChild(); + child.setName("Harddisk 123"); + child.setParent(parent); + ArrayList children = new ArrayList(); + children.add(child); + parent.setChildren(children); - EdParent parent = new EdParent(); - parent.setName("MyComputer"); + Ebean.save(parent); + EdExtendedParent extendedParent = new EdExtendedParent(); + extendedParent.setName("My second computer"); + extendedParent.setExtendedName("Multimedia"); - EdChild child = new EdChild(); - child.setName("Harddisk 123"); - child.setParent(parent); - ArrayList children = new ArrayList(); - children.add(child); - parent.setChildren(children); + child = new EdChild(); + child.setName("DVBS Card"); + children = new ArrayList(); + children.add(child); + extendedParent.setChildren(children); - Ebean.save(parent); + Ebean.save(extendedParent); - EdExtendedParent extendedParent = new EdExtendedParent(); - extendedParent.setName("My second computer"); - extendedParent.setExtendedName("Multimedia"); - - child = new EdChild(); - child.setName("DVBS Card"); - children = new ArrayList(); - children.add(child); - extendedParent.setChildren(children); - - Ebean.save(extendedParent); - - Ebean.commitTransaction(); - } finally { - Ebean.endTransaction(); - } + Ebean.commitTransaction(); + } finally { + Ebean.endTransaction(); } + } + @Test + public void testCascadeDelete2() { - public void testCascadeDelete2() { - - init(); - - Ebean.beginTransaction(); - try { - EdParent parent = Ebean.find(EdParent.class).where().eq("name","MyComputer").findUnique(); -// // Works only if the following statement is included -// int x = parent.getChildren().size(); - Ebean.delete(parent); - Ebean.commitTransaction(); - } finally { - Ebean.endTransaction(); - } + init(); + + Ebean.beginTransaction(); + try { + EdParent parent = Ebean.find(EdParent.class).where().eq("name", "MyComputer").findUnique(); + // // Works only if the following statement is included + // int x = parent.getChildren().size(); + Ebean.delete(parent); + Ebean.commitTransaction(); + } finally { + Ebean.endTransaction(); } + } - public void testCascadeDelete3() { - - init(); - - Ebean.beginTransaction(); - try { - EdExtendedParent extendedParent = Ebean.find(EdExtendedParent.class).where().eq("name","My second computer").findUnique(); - extendedParent.getChildren().size(); - Ebean.delete(extendedParent); - Ebean.commitTransaction(); - } finally { - Ebean.endTransaction(); - } + @Test + public void testCascadeDelete3() { + + init(); + + Ebean.beginTransaction(); + try { + EdExtendedParent extendedParent = Ebean.find(EdExtendedParent.class).where() + .eq("name", "My second computer").findUnique(); + extendedParent.getChildren().size(); + Ebean.delete(extendedParent); + Ebean.commitTransaction(); + } finally { + Ebean.endTransaction(); } - + } } diff --git a/src/test/java/com/avaje/tests/model/ivo/TestCheckImmutable.java b/src/test/java/com/avaje/tests/model/ivo/TestCheckImmutable.java index 0bee252c4..cc91d7311 100644 --- a/src/test/java/com/avaje/tests/model/ivo/TestCheckImmutable.java +++ b/src/test/java/com/avaje/tests/model/ivo/TestCheckImmutable.java @@ -5,62 +5,62 @@ import java.lang.reflect.Method; import java.math.BigDecimal; import java.util.Currency; -import junit.framework.TestCase; - import org.junit.Assert; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebeaninternal.server.type.reflect.CheckImmutable; import com.avaje.ebeaninternal.server.type.reflect.CheckImmutableResponse; import com.avaje.ebeaninternal.server.type.reflect.ImmutableMeta; import com.avaje.ebeaninternal.server.type.reflect.ImmutableMetaFactory; -public class TestCheckImmutable extends TestCase { +public class TestCheckImmutable extends BaseTestCase { - public void test() { - - SimpleKnownImmutable known = new SimpleKnownImmutable(); - - CheckImmutable check = new CheckImmutable(known); - - CheckImmutableResponse response = check.checkImmutable(Money.class); - - Assert.assertTrue(response.isImmutable()); - Assert.assertTrue(!response.isCompoundType()); - } - - public void testMeta() { - - ImmutableMetaFactory factory = new ImmutableMetaFactory(); - - ImmutableMeta meta = factory.createImmutableMeta(Money.class); - - Assert.assertNotNull(meta); - Constructor c = meta.getConstructor(); - Class[] parameterTypes = c.getParameterTypes(); - - Method[] readers = meta.getReaders(); - Assert.assertTrue(parameterTypes.length == 1); - Assert.assertTrue(readers.length == 1); - - Assert.assertEquals("getAmount",readers[0].getName()); - Assert.assertEquals(BigDecimal.class, parameterTypes[0]); - - - meta = factory.createImmutableMeta(CMoney.class); - - Assert.assertNotNull(meta); - c = meta.getConstructor(); - parameterTypes = c.getParameterTypes(); - readers = meta.getReaders(); + @Test + public void test() { - Assert.assertTrue(parameterTypes.length == 2); - Assert.assertTrue(readers.length == 2); - - Assert.assertEquals(Money.class, parameterTypes[0]); - Assert.assertEquals("getAmount",readers[0].getName()); - Assert.assertEquals(Currency.class, parameterTypes[1]); - Assert.assertEquals("getCurrency",readers[1].getName()); + SimpleKnownImmutable known = new SimpleKnownImmutable(); + + CheckImmutable check = new CheckImmutable(known); + + CheckImmutableResponse response = check.checkImmutable(Money.class); + + Assert.assertTrue(response.isImmutable()); + Assert.assertTrue(!response.isCompoundType()); + } + + public void testMeta() { + + ImmutableMetaFactory factory = new ImmutableMetaFactory(); + + ImmutableMeta meta = factory.createImmutableMeta(Money.class); + + Assert.assertNotNull(meta); + Constructor c = meta.getConstructor(); + Class[] parameterTypes = c.getParameterTypes(); + + Method[] readers = meta.getReaders(); + Assert.assertTrue(parameterTypes.length == 1); + Assert.assertTrue(readers.length == 1); + + Assert.assertEquals("getAmount", readers[0].getName()); + Assert.assertEquals(BigDecimal.class, parameterTypes[0]); + + meta = factory.createImmutableMeta(CMoney.class); + + Assert.assertNotNull(meta); + c = meta.getConstructor(); + parameterTypes = c.getParameterTypes(); + readers = meta.getReaders(); + + Assert.assertTrue(parameterTypes.length == 2); + Assert.assertTrue(readers.length == 2); + + Assert.assertEquals(Money.class, parameterTypes[0]); + Assert.assertEquals("getAmount", readers[0].getName()); + Assert.assertEquals(Currency.class, parameterTypes[1]); + Assert.assertEquals("getCurrency", readers[1].getName()); + + } - } - } diff --git a/src/test/java/com/avaje/tests/noid/TestNoId.java b/src/test/java/com/avaje/tests/noid/TestNoId.java index 644d2b20b..c33965722 100644 --- a/src/test/java/com/avaje/tests/noid/TestNoId.java +++ b/src/test/java/com/avaje/tests/noid/TestNoId.java @@ -3,40 +3,42 @@ package com.avaje.tests.noid; import java.util.List; import junit.framework.Assert; -import junit.framework.TestCase; +import org.junit.Test; + +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.Update; +public class TestNoId extends BaseTestCase { -public class TestNoId extends TestCase { + @Test + public void testNoIdQuery() { - public void testNoIdQuery() { + Update upd = Ebean.createUpdate(NoIdEntity.class, "delete from NoIdEntity"); + upd.execute(); - Update upd = Ebean.createUpdate(NoIdEntity.class,"delete from NoIdEntity"); - upd.execute(); + NoIdEntity e0 = new NoIdEntity(); + e0.setId(1); + e0.setValue("one"); - NoIdEntity e0 = new NoIdEntity(); - e0.setId(1); - e0.setValue("one"); - - NoIdEntity e1 = new NoIdEntity(); - e1.setId(2); - e1.setValue("two"); - - Ebean.save(e0); - Ebean.save(e1); + NoIdEntity e1 = new NoIdEntity(); + e1.setId(2); + e1.setValue("two"); - List list = Ebean.createNamedQuery(NoIdEntity.class,"noid").findList(); - - Assert.assertEquals(2,list.size()); - NoIdEntity noIdEntity0 = list.get(0); - Assert.assertNotNull(noIdEntity0); - Assert.assertEquals(noIdEntity0.getValue(), "one"); - - NoIdEntity noIdEntity1 = list.get(1); - Assert.assertNotNull(noIdEntity1); - Assert.assertEquals(noIdEntity1.getValue(), "two"); - - } + Ebean.save(e0); + Ebean.save(e1); + + List list = Ebean.createNamedQuery(NoIdEntity.class, "noid").findList(); + + Assert.assertEquals(2, list.size()); + NoIdEntity noIdEntity0 = list.get(0); + Assert.assertNotNull(noIdEntity0); + Assert.assertEquals(noIdEntity0.getValue(), "one"); + + NoIdEntity noIdEntity1 = list.get(1); + Assert.assertNotNull(noIdEntity1); + Assert.assertEquals(noIdEntity1.getValue(), "two"); + + } } diff --git a/src/test/java/com/avaje/tests/query/TestAutofetchTuneWithJoin.java b/src/test/java/com/avaje/tests/query/TestAutofetchTuneWithJoin.java index 45976b362..0693038fe 100644 --- a/src/test/java/com/avaje/tests/query/TestAutofetchTuneWithJoin.java +++ b/src/test/java/com/avaje/tests/query/TestAutofetchTuneWithJoin.java @@ -2,9 +2,10 @@ package com.avaje.tests.query; import java.util.List; -import junit.framework.TestCase; +import org.junit.Test; import com.avaje.ebean.AdminAutofetch; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.Query; import com.avaje.ebean.bean.ObjectGraphNode; @@ -15,65 +16,64 @@ import com.avaje.tests.model.basic.Customer; import com.avaje.tests.model.basic.Order; import com.avaje.tests.model.basic.ResetBasicData; -public class TestAutofetchTuneWithJoin extends TestCase { +public class TestAutofetchTuneWithJoin extends BaseTestCase { - public void test() { - runQuery(); - collectUsage(); + @Test + public void test() { + runQuery(); + collectUsage(); + } + + private void runQuery() { + + ResetBasicData.reset(); + + Query q = Ebean.find(Order.class).setAutofetch(true).fetch("customer") + .fetch("customer.contacts").where().lt("id", 3).query(); + + List list = q.findList(); + + for (int i = 0; i < list.size(); i++) { + Order order = list.get(i); + order.getOrderDate(); + order.getShipDate(); + // order.setShipDate(new Date(System.currentTimeMillis())); + Customer customer = order.getCustomer(); + customer.getName(); + Address shippingAddress = customer.getShippingAddress(); + if (shippingAddress != null) { + shippingAddress.getLine1(); + shippingAddress.getCity(); + } + // customer.getContacts() } - private void runQuery() { + SpiQuery sq = (SpiQuery) q; + ObjectGraphNode parentNode = sq.getParentNode(); + ObjectGraphOrigin origin = parentNode.getOriginQueryPoint(); - ResetBasicData.reset(); + System.out.println("Origin:" + origin.getKey()); - Query q = Ebean.find(Order.class) - .setAutofetch(true) - .fetch("customer") - .fetch("customer.contacts") - .where().lt("id", 3) - .query(); + // MetaAutoFetchStatistic metaAutoFetchStatistic = + // ((DefaultOrmQuery)q).getMetaAutoFetchStatistic(); + // if (metaAutoFetchStatistic != null) { + // List nodeUsageStats = + // metaAutoFetchStatistic.getNodeUsageStats(); + // System.out.println(nodeUsageStats); + // List queryStats = metaAutoFetchStatistic.getQueryStats(); + // System.out.println(queryStats); + // } - List list = q.findList(); - - for (int i = 0; i < list.size(); i++) { - Order order = list.get(i); - order.getOrderDate(); - order.getShipDate(); - // order.setShipDate(new Date(System.currentTimeMillis())); - Customer customer = order.getCustomer(); - customer.getName(); - Address shippingAddress = customer.getShippingAddress(); - if (shippingAddress != null) { - shippingAddress.getLine1(); - shippingAddress.getCity(); - } - // customer.getContacts() - } - - SpiQuery sq = (SpiQuery) q; - ObjectGraphNode parentNode = sq.getParentNode(); - ObjectGraphOrigin origin = parentNode.getOriginQueryPoint(); - - System.out.println("Origin:" + origin.getKey()); - -// MetaAutoFetchStatistic metaAutoFetchStatistic = ((DefaultOrmQuery)q).getMetaAutoFetchStatistic(); -// if (metaAutoFetchStatistic != null) { -// List nodeUsageStats = metaAutoFetchStatistic.getNodeUsageStats(); -// System.out.println(nodeUsageStats); -// List queryStats = metaAutoFetchStatistic.getQueryStats(); -// System.out.println(queryStats); -// } - - if (q.isAutofetchTuned()) { - System.out.println("TUNED..."); - } + if (q.isAutofetchTuned()) { + System.out.println("TUNED..."); } + } - private static void collectUsage() { + private static void collectUsage() { - AdminAutofetch adminAutofetch = Ebean.getServer(null).getAdminAutofetch(); - adminAutofetch.collectUsageViaGC(); + AdminAutofetch adminAutofetch = Ebean.getServer(null).getAdminAutofetch(); + adminAutofetch.collectUsageViaGC(); - } + } } diff --git a/src/test/java/com/avaje/tests/query/TestConnectionCloseOnSqlerr.java b/src/test/java/com/avaje/tests/query/TestConnectionCloseOnSqlerr.java index 9ec818d31..24caa19f2 100644 --- a/src/test/java/com/avaje/tests/query/TestConnectionCloseOnSqlerr.java +++ b/src/test/java/com/avaje/tests/query/TestConnectionCloseOnSqlerr.java @@ -1,15 +1,18 @@ package com.avaje.tests.query; -import junit.framework.TestCase; +import org.junit.Assert; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.Query; import com.avaje.tests.model.basic.Customer; -public class TestConnectionCloseOnSqlerr extends TestCase { +public class TestConnectionCloseOnSqlerr extends BaseTestCase { static boolean runManuallyNow = true; + @Test public void test() { if (runManuallyNow) { @@ -19,12 +22,13 @@ public class TestConnectionCloseOnSqlerr extends TestCase { try { for (int i = 0; i < 100; i++) { try { - Query q0 = Ebean.find(Customer.class).where().icontains("namexxx", "Rob").query(); + Query q0 = Ebean.find(Customer.class).where().icontains("namexxx", "Rob") + .query(); q0.findList(); } catch (Exception e) { if (e.getMessage().contains("Unsuccessfully waited")) { - fail("No connections found while only one thread is running. (after " + i + " queries)"); + Assert.fail("No connections found while only one thread is running. (after " + i + " queries)"); } else { e.printStackTrace(); } @@ -37,6 +41,7 @@ public class TestConnectionCloseOnSqlerr extends TestCase { } + @Test public void testTransactional() { if (runManuallyNow) { @@ -47,13 +52,14 @@ public class TestConnectionCloseOnSqlerr extends TestCase { for (int i = 0; i < 100; i++) { try { Ebean.beginTransaction(); - Query q0 = Ebean.find(Customer.class).where().icontains("namexxx", "Rob").query(); + Query q0 = Ebean.find(Customer.class).where().icontains("namexxx", "Rob") + .query(); q0.findList(); Ebean.commitTransaction(); } catch (Exception e) { if (e.getMessage().contains("Unsuccessfully waited")) { - fail("No connections found while only one thread is running. (after " + i + " queries)"); + Assert.fail("No connections found while only one thread is running. (after " + i + " queries)"); } else { e.printStackTrace(); } diff --git a/src/test/java/com/avaje/tests/query/TestDefaultFetchLazy.java b/src/test/java/com/avaje/tests/query/TestDefaultFetchLazy.java index f59670753..0b9bfc318 100644 --- a/src/test/java/com/avaje/tests/query/TestDefaultFetchLazy.java +++ b/src/test/java/com/avaje/tests/query/TestDefaultFetchLazy.java @@ -3,50 +3,51 @@ package com.avaje.tests.query; import java.util.Set; import junit.framework.Assert; -import junit.framework.TestCase; +import org.junit.Test; + +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.BeanState; import com.avaje.ebean.Ebean; import com.avaje.ebean.Query; import com.avaje.tests.model.basic.MyLobSize; -public class TestDefaultFetchLazy extends TestCase { +public class TestDefaultFetchLazy extends BaseTestCase { - public void testFetchTypeLazy(){ - - MyLobSize m = new MyLobSize(); - m.setName("aname"); - m.setMyCount(10); - m.setMyLob("A big lob of data"); - - Ebean.save(m); + @Test + public void testFetchTypeLazy() { - Assert.assertNotNull(m.getId()); + MyLobSize m = new MyLobSize(); + m.setName("aname"); + m.setMyCount(10); + m.setMyLob("A big lob of data"); - MyLobSize myLobSize = Ebean.find(MyLobSize.class, m.getId()); - - BeanState beanState = Ebean.getBeanState(myLobSize); - Set loadedProps = beanState.getLoadedProps(); - - Assert.assertNotNull(loadedProps); - Assert.assertTrue(loadedProps.contains("id")); - Assert.assertTrue(loadedProps.contains("name")); - - // FetchType.LAZY properties excluded - Assert.assertFalse(loadedProps.contains("myLob")); - Assert.assertFalse(loadedProps.contains("myCount")); - + Ebean.save(m); - // the details is also tuned - Query queryMany = Ebean.find(MyLobSize.class) - .fetch("details")// ,"+query") - .where().gt("id", 0).query(); + Assert.assertNotNull(m.getId()); - queryMany.findList(); + MyLobSize myLobSize = Ebean.find(MyLobSize.class, m.getId()); + + BeanState beanState = Ebean.getBeanState(myLobSize); + Set loadedProps = beanState.getLoadedProps(); + + Assert.assertNotNull(loadedProps); + Assert.assertTrue(loadedProps.contains("id")); + Assert.assertTrue(loadedProps.contains("name")); + + // FetchType.LAZY properties excluded + Assert.assertFalse(loadedProps.contains("myLob")); + Assert.assertFalse(loadedProps.contains("myCount")); + + // the details is also tuned + Query queryMany = Ebean.find(MyLobSize.class).fetch("details")// ,"+query") + .where().gt("id", 0).query(); + + queryMany.findList(); + + String generatedSql = queryMany.getGeneratedSql(); + Assert.assertTrue(generatedSql.contains("t1.other ")); + Assert.assertFalse(generatedSql.contains("t1.something ")); + } - String generatedSql = queryMany.getGeneratedSql(); - Assert.assertTrue(generatedSql.contains("t1.other ")); - Assert.assertFalse(generatedSql.contains("t1.something ")); - } - } diff --git a/src/test/java/com/avaje/tests/query/TestExprNestedDisjunction.java b/src/test/java/com/avaje/tests/query/TestExprNestedDisjunction.java index 5f4aee420..f0b524995 100644 --- a/src/test/java/com/avaje/tests/query/TestExprNestedDisjunction.java +++ b/src/test/java/com/avaje/tests/query/TestExprNestedDisjunction.java @@ -1,41 +1,36 @@ package com.avaje.tests.query; -import junit.framework.TestCase; +import org.junit.Assert; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.Query; import com.avaje.ebean.Query.UseIndex; import com.avaje.tests.model.basic.Customer; import com.avaje.tests.model.basic.ResetBasicData; -public class TestExprNestedDisjunction extends TestCase { +public class TestExprNestedDisjunction extends BaseTestCase { - public void test() { - - ResetBasicData.reset(); - -// java.sql.Date dateAfter = java.sql.Date.valueOf("2010-01-01"); + @Test + public void test() { - java.sql.Date onAfter = java.sql.Date.valueOf("2009-08-31"); + ResetBasicData.reset(); - Query q = Ebean.find(Customer.class) - .setUseIndex(UseIndex.NO) - .where() - .disjunction() - .conjunction() - .startsWith("name", "r") - .eq("anniversary", onAfter) - .endJunction() - .conjunction() - .eq("status", Customer.Status.ACTIVE) - .gt("id", 0) - .endJunction() - .orderBy().asc("name"); - - q.findList(); - String s = q.getGeneratedSql(); + // java.sql.Date dateAfter = java.sql.Date.valueOf("2010-01-01"); + + java.sql.Date onAfter = java.sql.Date.valueOf("2009-08-31"); + + Query q = Ebean.find(Customer.class).setUseIndex(UseIndex.NO).where().disjunction() + .conjunction().startsWith("name", "r").eq("anniversary", onAfter).endJunction() + .conjunction().eq("status", Customer.Status.ACTIVE).gt("id", 0).endJunction().orderBy() + .asc("name"); + + q.findList(); + String s = q.getGeneratedSql(); + + Assert.assertTrue(s + .contains("(t0.name like ? and t0.anniversary = ? ) or (t0.status = ? and t0.id > ? )")); + } - assertTrue(s.contains("(t0.name like ? and t0.anniversary = ? ) or (t0.status = ? and t0.id > ? )")); - } - } diff --git a/src/test/java/com/avaje/tests/query/TestIContains.java b/src/test/java/com/avaje/tests/query/TestIContains.java index 16f5f7cf9..cbcd38870 100644 --- a/src/test/java/com/avaje/tests/query/TestIContains.java +++ b/src/test/java/com/avaje/tests/query/TestIContains.java @@ -1,43 +1,38 @@ package com.avaje.tests.query; import junit.framework.Assert; -import junit.framework.TestCase; +import org.junit.Test; + +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.Query; import com.avaje.tests.model.basic.Customer; import com.avaje.tests.model.basic.ResetBasicData; -public class TestIContains extends TestCase { +public class TestIContains extends BaseTestCase { - public void testIContains() { - - ResetBasicData.reset(); - - // case insensitive - Query q0 = Ebean.find(Customer.class) - .where().icontains("name", "Rob") - .query(); - - - q0.findList(); - String generatedSql = q0.getGeneratedSql(); - - Assert.assertTrue(generatedSql.contains("lower(t0.name)")); - + @Test + public void testIContains() { - // not case insensitive - q0 = Ebean.find(Customer.class) - .where().contains("name", "Rob") - .query(); - - - q0.findList(); - generatedSql = q0.getGeneratedSql(); - - Assert.assertTrue(generatedSql.contains(" t0.name ")); + ResetBasicData.reset(); + + // case insensitive + Query q0 = Ebean.find(Customer.class).where().icontains("name", "Rob").query(); + + q0.findList(); + String generatedSql = q0.getGeneratedSql(); + + Assert.assertTrue(generatedSql.contains("lower(t0.name)")); + + // not case insensitive + q0 = Ebean.find(Customer.class).where().contains("name", "Rob").query(); + + q0.findList(); + generatedSql = q0.getGeneratedSql(); + + Assert.assertTrue(generatedSql.contains(" t0.name ")); + + } - - } - } diff --git a/src/test/java/com/avaje/tests/query/TestInCollectionQueryPlan.java b/src/test/java/com/avaje/tests/query/TestInCollectionQueryPlan.java index 3db93a352..75b4cca63 100644 --- a/src/test/java/com/avaje/tests/query/TestInCollectionQueryPlan.java +++ b/src/test/java/com/avaje/tests/query/TestInCollectionQueryPlan.java @@ -3,34 +3,31 @@ package com.avaje.tests.query; import java.util.ArrayList; import java.util.List; -import junit.framework.TestCase; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.tests.model.basic.Customer; import com.avaje.tests.model.basic.ResetBasicData; -public class TestInCollectionQueryPlan extends TestCase { +public class TestInCollectionQueryPlan extends BaseTestCase { - public void test() { - - ResetBasicData.reset(); - - List idList1 = new ArrayList(); - idList1.add(1); - - String oq = "find customer where id in (:idList)"; - Ebean.createQuery(Customer.class, oq) - .setParameter("idList", idList1) - .findList(); - - List idList2 = new ArrayList(); - idList2.add(1); - idList2.add(2); - - Ebean.createQuery(Customer.class, oq) - .setParameter("idList", idList2) - .findList(); - - - } + @Test + public void test() { + + ResetBasicData.reset(); + + List idList1 = new ArrayList(); + idList1.add(1); + + String oq = "find customer where id in (:idList)"; + Ebean.createQuery(Customer.class, oq).setParameter("idList", idList1).findList(); + + List idList2 = new ArrayList(); + idList2.add(1); + idList2.add(2); + + Ebean.createQuery(Customer.class, oq).setParameter("idList", idList2).findList(); + + } } diff --git a/src/test/java/com/avaje/tests/query/TestJoinOptOneCascade.java b/src/test/java/com/avaje/tests/query/TestJoinOptOneCascade.java index 11059af48..95db810f9 100644 --- a/src/test/java/com/avaje/tests/query/TestJoinOptOneCascade.java +++ b/src/test/java/com/avaje/tests/query/TestJoinOptOneCascade.java @@ -1,27 +1,26 @@ package com.avaje.tests.query; -import junit.framework.TestCase; - import org.junit.Assert; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.Query; import com.avaje.tests.model.basic.EOptOneA; -public class TestJoinOptOneCascade extends TestCase { +public class TestJoinOptOneCascade extends BaseTestCase { + + @Test + public void test() { + + // the left outer join cascades to the join for c + Query query = Ebean.find(EOptOneA.class).fetch("b").fetch("b.c"); + + query.findList(); + String sql = query.getGeneratedSql(); + + Assert.assertTrue(sql.contains("left outer join eopt_one_b ")); + Assert.assertTrue(sql.contains("left outer join eopt_one_c ")); + } - public void test() { - - // the left outer join cascades to the join for c - Query query = Ebean.find(EOptOneA.class) - .fetch("b") - .fetch("b.c"); - - query.findList(); - String sql = query.getGeneratedSql(); - - Assert.assertTrue(sql.contains("left outer join eopt_one_b ")); - Assert.assertTrue(sql.contains("left outer join eopt_one_c ")); - } - } diff --git a/src/test/java/com/avaje/tests/query/TestJoinQuery.java b/src/test/java/com/avaje/tests/query/TestJoinQuery.java index dfdc9c662..ce1de1ff1 100644 --- a/src/test/java/com/avaje/tests/query/TestJoinQuery.java +++ b/src/test/java/com/avaje/tests/query/TestJoinQuery.java @@ -3,38 +3,36 @@ package com.avaje.tests.query; import java.util.List; import junit.framework.Assert; -import junit.framework.TestCase; +import org.junit.Test; + +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.Query; import com.avaje.tests.model.basic.Customer; import com.avaje.tests.model.basic.OrderShipment; import com.avaje.tests.model.basic.ResetBasicData; -public class TestJoinQuery extends TestCase { - - public void test() { - - ResetBasicData.reset(); - - // test that join to order.details is not included - Query query = Ebean.find(Customer.class) - .setAutofetch(false) - .fetch("orders") - .fetch("orders.details"); - - List list = query.findList(); - Assert.assertTrue("has rows", list.size() > 0); - - // test that join to order.details is not included - Query shipQuery = Ebean.find(OrderShipment.class) - .setAutofetch(false) - .fetch("order") - .fetch("order.details"); - - - List shipList = shipQuery.findList(); - Assert.assertTrue("has rows", shipList.size() > 0); - } - +public class TestJoinQuery extends BaseTestCase { + + @Test + public void test() { + + ResetBasicData.reset(); + + // test that join to order.details is not included + Query query = Ebean.find(Customer.class).setAutofetch(false).fetch("orders") + .fetch("orders.details"); + + List list = query.findList(); + Assert.assertTrue("has rows", list.size() > 0); + + // test that join to order.details is not included + Query shipQuery = Ebean.find(OrderShipment.class).setAutofetch(false) + .fetch("order").fetch("order.details"); + + List shipList = shipQuery.findList(); + Assert.assertTrue("has rows", shipList.size() > 0); + } + } diff --git a/src/test/java/com/avaje/tests/query/TestLimitAlterFetchMany.java b/src/test/java/com/avaje/tests/query/TestLimitAlterFetchMany.java index 703029124..e426c1142 100644 --- a/src/test/java/com/avaje/tests/query/TestLimitAlterFetchMany.java +++ b/src/test/java/com/avaje/tests/query/TestLimitAlterFetchMany.java @@ -2,34 +2,35 @@ package com.avaje.tests.query; import java.util.List; -import junit.framework.TestCase; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.Query; import com.avaje.tests.model.basic.Customer; import com.avaje.tests.model.basic.ResetBasicData; -public class TestLimitAlterFetchMany extends TestCase { +public class TestLimitAlterFetchMany extends BaseTestCase { + + @Test + public void test() { + + ResetBasicData.reset(); + + // Due to the use of maxRows... we will convert + // the fetch join to contacts over to a query join + // ... otherwise we wouldn't be able to use the + // limit offset clause + + Query query = Ebean.find(Customer.class) + // this will automatically get converted to a + // query join ... due to the maxRows + .fetch("contacts").setMaxRows(5); + + List list = query.findList(); + + System.out.println(list); + + } - public void test() { - - ResetBasicData.reset(); - - // Due to the use of maxRows... we will convert - // the fetch join to contacts over to a query join - // ... otherwise we wouldn't be able to use the - // limit offset clause - - Query query = Ebean.find(Customer.class) - // this will automatically get converted to a - // query join ... due to the maxRows - .fetch("contacts") - .setMaxRows(5); - - List list = query.findList(); - - System.out.println(list); - - } - } diff --git a/src/test/java/com/avaje/tests/query/TestLimitQuery.java b/src/test/java/com/avaje/tests/query/TestLimitQuery.java index 7621a0787..251c9d836 100644 --- a/src/test/java/com/avaje/tests/query/TestLimitQuery.java +++ b/src/test/java/com/avaje/tests/query/TestLimitQuery.java @@ -2,8 +2,10 @@ package com.avaje.tests.query; import java.util.List; -import junit.framework.TestCase; +import org.junit.Assert; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.Expr; import com.avaje.ebean.Junction; @@ -11,22 +13,23 @@ import com.avaje.ebean.Query; import com.avaje.tests.model.basic.Customer; import com.avaje.tests.model.basic.ResetBasicData; -public class TestLimitQuery extends TestCase { +public class TestLimitQuery extends BaseTestCase { - public void testHasManyWithLimit() - { - ResetBasicData.reset(); + @Test + public void testHasManyWithLimit() { + ResetBasicData.reset(); - Query query = Ebean.find(Customer.class); - query.setAutofetch(false); - query.setFirstRow(0); - query.setMaxRows(10); + Query query = Ebean.find(Customer.class); + query.setAutofetch(false); + query.setFirstRow(0); + query.setMaxRows(10); - Junction junc = Expr.disjunction(query); - junc.add(Expr.like("name", "%A%")); - query.where(junc); + Junction junc = Expr.disjunction(query); + junc.add(Expr.like("name", "%A%")); + query.where(junc); - List customer = query.findList(); - assertTrue(customer.size() > 0); // should at least find the "Cust NoAddress" customer - } + List customer = query.findList(); + Assert.assertTrue(customer.size() > 0); // should at least find the + // "Cust NoAddress" customer + } } \ No newline at end of file diff --git a/src/test/java/com/avaje/tests/query/TestManyWhereJoin.java b/src/test/java/com/avaje/tests/query/TestManyWhereJoin.java index aa667e54d..46ee23788 100644 --- a/src/test/java/com/avaje/tests/query/TestManyWhereJoin.java +++ b/src/test/java/com/avaje/tests/query/TestManyWhereJoin.java @@ -1,36 +1,36 @@ package com.avaje.tests.query; -import junit.framework.TestCase; - import org.junit.Assert; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.Query; import com.avaje.tests.model.basic.Customer; import com.avaje.tests.model.basic.Order; import com.avaje.tests.model.basic.ResetBasicData; -public class TestManyWhereJoin extends TestCase { +public class TestManyWhereJoin extends BaseTestCase { - public void test() { - - ResetBasicData.reset(); - - Query query = Ebean.find(Customer.class) - .select("id,status") - //.join("orders") - // the where on a 'many' (like orders) requires an - // additional join and distinct which is independent - // of a fetch join (if there is a fetch join) - .where().eq("orders.status", Order.Status.NEW) - //.where().eq("orders.details.product.name", "Desk") - .query(); - - query.findList(); - String sql = query.getGeneratedSql(); - - Assert.assertTrue(sql.indexOf("select distinct ") > -1); - Assert.assertTrue(sql.indexOf("join o_order ") > -1); - Assert.assertTrue(sql.indexOf(".status = ?") > -1); - } + @Test + public void test() { + + ResetBasicData.reset(); + + Query query = Ebean.find(Customer.class).select("id,status") + // .join("orders") + // the where on a 'many' (like orders) requires an + // additional join and distinct which is independent + // of a fetch join (if there is a fetch join) + .where().eq("orders.status", Order.Status.NEW) + // .where().eq("orders.details.product.name", "Desk") + .query(); + + query.findList(); + String sql = query.getGeneratedSql(); + + Assert.assertTrue(sql.indexOf("select distinct ") > -1); + Assert.assertTrue(sql.indexOf("join o_order ") > -1); + Assert.assertTrue(sql.indexOf(".status = ?") > -1); + } } diff --git a/src/test/java/com/avaje/tests/query/TestManyWhereJoinM2M.java b/src/test/java/com/avaje/tests/query/TestManyWhereJoinM2M.java index 81bc9a98f..e8d7ae969 100644 --- a/src/test/java/com/avaje/tests/query/TestManyWhereJoinM2M.java +++ b/src/test/java/com/avaje/tests/query/TestManyWhereJoinM2M.java @@ -2,66 +2,63 @@ package com.avaje.tests.query; import java.util.List; -import junit.framework.TestCase; - import org.junit.Assert; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.Query; import com.avaje.tests.model.basic.MRole; import com.avaje.tests.model.basic.MUser; -public class TestManyWhereJoinM2M extends TestCase { +public class TestManyWhereJoinM2M extends BaseTestCase { - public void test() { - - Ebean.beginTransaction(); - - MRole r1 = new MRole(); - r1.setRoleName("role1"); - Ebean.save(r1); + @Test + public void test() { - MRole r2 = new MRole(); - r2.setRoleName("role2special"); - Ebean.save(r2); + Ebean.beginTransaction(); - MRole r3 = new MRole(); - r3.setRoleName("role3"); - Ebean.save(r3); + MRole r1 = new MRole(); + r1.setRoleName("role1"); + Ebean.save(r1); - MUser u0 = new MUser(); - u0.setUserName("user0"); - u0.addRole(r1); - u0.addRole(r2); + MRole r2 = new MRole(); + r2.setRoleName("role2special"); + Ebean.save(r2); - Ebean.save(u0); + MRole r3 = new MRole(); + r3.setRoleName("role3"); + Ebean.save(r3); - MUser u1 = new MUser(); - u1.setUserName("user1"); - u1.addRole(r1); + MUser u0 = new MUser(); + u0.setUserName("user0"); + u0.addRole(r1); + u0.addRole(r2); - Ebean.save(u1); - - Ebean.commitTransaction(); - - - - Query query = Ebean.find(MUser.class) - .fetch("roles") - // the where on a 'many' (like orders) requires an - // additional join and distinct which is independent - // of a fetch join (if there is a fetch join) - .where().eq("roles.roleName", "role2special") - .query(); - - List list = query.findList(); - System.out.println(list); - - String sql = query.getGeneratedSql(); - Assert.assertTrue(sql.indexOf("select distinct") > -1); - Assert.assertTrue(sql.indexOf("left outer join mrole ") > -1); - Assert.assertTrue(sql.indexOf("join mrole ") > -1); - Assert.assertTrue(sql.indexOf(".role_name = ?") > -1); - - } + Ebean.save(u0); + + MUser u1 = new MUser(); + u1.setUserName("user1"); + u1.addRole(r1); + + Ebean.save(u1); + + Ebean.commitTransaction(); + + Query query = Ebean.find(MUser.class).fetch("roles") + // the where on a 'many' (like orders) requires an + // additional join and distinct which is independent + // of a fetch join (if there is a fetch join) + .where().eq("roles.roleName", "role2special").query(); + + List list = query.findList(); + System.out.println(list); + + String sql = query.getGeneratedSql(); + Assert.assertTrue(sql.indexOf("select distinct") > -1); + Assert.assertTrue(sql.indexOf("left outer join mrole ") > -1); + Assert.assertTrue(sql.indexOf("join mrole ") > -1); + Assert.assertTrue(sql.indexOf(".role_name = ?") > -1); + + } } diff --git a/src/test/java/com/avaje/tests/query/TestMyAdHocSqlSelect.java b/src/test/java/com/avaje/tests/query/TestMyAdHocSqlSelect.java index ac8d92adf..108f19b8c 100644 --- a/src/test/java/com/avaje/tests/query/TestMyAdHocSqlSelect.java +++ b/src/test/java/com/avaje/tests/query/TestMyAdHocSqlSelect.java @@ -2,26 +2,25 @@ package com.avaje.tests.query; import java.util.List; -import junit.framework.TestCase; - import org.junit.Assert; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.tests.model.basic.MyAdHoc; import com.avaje.tests.model.basic.ResetBasicData; -public class TestMyAdHocSqlSelect extends TestCase { +public class TestMyAdHocSqlSelect extends BaseTestCase { + + @Test + public void test() { + + ResetBasicData.reset(); + + List list = Ebean.find(MyAdHoc.class).where().gt("order_id", 0).having() + .gt("detailCount", 0).findList(); + + Assert.assertNotNull(list); + } - public void test() { - - ResetBasicData.reset(); - - List list = Ebean.find(MyAdHoc.class) - .where().gt("order_id", 0) - .having().gt("detailCount", 0) - .findList(); - - Assert.assertNotNull(list); - } - } diff --git a/src/test/java/com/avaje/tests/query/TestNoSpaceBracket.java b/src/test/java/com/avaje/tests/query/TestNoSpaceBracket.java index 670dd61d6..2b32118b1 100644 --- a/src/test/java/com/avaje/tests/query/TestNoSpaceBracket.java +++ b/src/test/java/com/avaje/tests/query/TestNoSpaceBracket.java @@ -1,20 +1,21 @@ package com.avaje.tests.query; -import junit.framework.TestCase; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.Query; import com.avaje.tests.model.basic.Order; -public class TestNoSpaceBracket extends TestCase { +public class TestNoSpaceBracket extends BaseTestCase { + + @Test + public void test() { + + Query query = Ebean.createQuery(Order.class, "find order join customer(id,name) "); + + query.findList(); + + } - - public void test() { - - Query query = Ebean.createQuery(Order.class, "find order join customer(id,name) "); - - query.findList(); - - } - } diff --git a/src/test/java/com/avaje/tests/query/TestPagingListLoop.java b/src/test/java/com/avaje/tests/query/TestPagingListLoop.java index 74108ee26..e02e98b9d 100644 --- a/src/test/java/com/avaje/tests/query/TestPagingListLoop.java +++ b/src/test/java/com/avaje/tests/query/TestPagingListLoop.java @@ -2,45 +2,47 @@ package com.avaje.tests.query; import java.util.concurrent.ExecutionException; -import junit.framework.TestCase; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.PagingList; import com.avaje.tests.model.basic.Customer; import com.avaje.tests.model.basic.ResetBasicData; -public class TestPagingListLoop extends TestCase { +public class TestPagingListLoop extends BaseTestCase { - public void test() throws InterruptedException, ExecutionException { - -// boolean autoRunTest = false; -// if (!autoRunTest){ -// // we only want to run this test manually. -// return; -// } - - try { - ResetBasicData.reset(); - - for (int i = 0; i < 50; i++) { - PagingList pagingList = Ebean.find(Customer.class).findPagingList(10); - pagingList.getFutureRowCount();//.get(); - - //createLeak(); - Thread.sleep(10); - } - - } catch (Exception e){ - e.printStackTrace(); - } - + @Test + public void test() throws InterruptedException, ExecutionException { + + // boolean autoRunTest = false; + // if (!autoRunTest){ + // // we only want to run this test manually. + // return; + // } + + try { + ResetBasicData.reset(); + + for (int i = 0; i < 50; i++) { + PagingList pagingList = Ebean.find(Customer.class).findPagingList(10); + pagingList.getFutureRowCount();// .get(); + + // createLeak(); + Thread.sleep(10); + } + + } catch (Exception e) { + e.printStackTrace(); } - -// private void createLeak() { -// -// // create a transaction we never close ... -// // ... a connection pool leak -// Ebean.getServer(null).createTransaction(); -// } - + + } + + // private void createLeak() { + // + // // create a transaction we never close ... + // // ... a connection pool leak + // Ebean.getServer(null).createTransaction(); + // } + } diff --git a/src/test/java/com/avaje/tests/query/TestQueryFetchJoinWithOrder.java b/src/test/java/com/avaje/tests/query/TestQueryFetchJoinWithOrder.java index 1ea054a6e..a74bfa83c 100644 --- a/src/test/java/com/avaje/tests/query/TestQueryFetchJoinWithOrder.java +++ b/src/test/java/com/avaje/tests/query/TestQueryFetchJoinWithOrder.java @@ -2,45 +2,38 @@ package com.avaje.tests.query; import java.util.List; -import junit.framework.TestCase; +import org.junit.Assert; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.FetchConfig; import com.avaje.tests.model.basic.Customer; import com.avaje.tests.model.basic.Order; import com.avaje.tests.model.basic.ResetBasicData; -public class TestQueryFetchJoinWithOrder extends TestCase { +public class TestQueryFetchJoinWithOrder extends BaseTestCase { - public void test() { - - ResetBasicData.reset(); - - List list = Ebean.find(Order.class) - .fetch("details", new FetchConfig().query()) - .order().asc("id") - .order().desc("details.id") - .findList(); - - assertNotNull(list); + @Test + public void test() { - List list2 = Ebean.find(Order.class) - .fetch("customer", new FetchConfig().query()) - .fetch("customer.contacts") - .order().asc("id") - .order().asc("customer.contacts.lastName") - .findList(); + ResetBasicData.reset(); - assertNotNull(list2); + List list = Ebean.find(Order.class).fetch("details", new FetchConfig().query()).order() + .asc("id").order().desc("details.id").findList(); - - List list3 = Ebean.find(Customer.class) - .fetch("orders") - .filterMany("orders").eq("status", Order.Status.NEW) - .order().desc("orders.id") - .findList(); - - assertNotNull(list3); + Assert.assertNotNull(list); - } + List list2 = Ebean.find(Order.class).fetch("customer", new FetchConfig().query()) + .fetch("customer.contacts").order().asc("id").order().asc("customer.contacts.lastName") + .findList(); + + Assert.assertNotNull(list2); + + List list3 = Ebean.find(Customer.class).fetch("orders").filterMany("orders") + .eq("status", Order.Status.NEW).order().desc("orders.id").findList(); + + Assert.assertNotNull(list3); + + } } diff --git a/src/test/java/com/avaje/tests/query/TestQueryFetchSkipPath.java b/src/test/java/com/avaje/tests/query/TestQueryFetchSkipPath.java index a3e8c795a..9743fc7cd 100644 --- a/src/test/java/com/avaje/tests/query/TestQueryFetchSkipPath.java +++ b/src/test/java/com/avaje/tests/query/TestQueryFetchSkipPath.java @@ -2,8 +2,9 @@ package com.avaje.tests.query; import java.util.List; -import junit.framework.TestCase; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.tests.model.basic.Contact; import com.avaje.tests.model.basic.ContactNote; @@ -11,36 +12,34 @@ import com.avaje.tests.model.basic.Customer; import com.avaje.tests.model.basic.Order; import com.avaje.tests.model.basic.ResetBasicData; -public class TestQueryFetchSkipPath extends TestCase { +public class TestQueryFetchSkipPath extends BaseTestCase { - public void test() { - - ResetBasicData.reset(); - - List list = Ebean.find(Order.class) - - //.setAutofetch(true) - .setAutofetch(false) - .select("status") -// .fetch("customer","id") -// .fetch("customer.contacts","id") - .fetch("customer.contacts.notes","title") - .findList(); - - for (Order order : list) { - order.getStatus(); - Customer customer = order.getCustomer(); - List contacts = customer.getContacts(); - for (Contact contact : contacts) { - System.out.println("contact:"+contact); - List notes = contact.getNotes(); - for (ContactNote contactNote : notes) { - System.out.println("note:"+contactNote.getTitle()); - } - } + @Test + public void test() { + + ResetBasicData.reset(); + + List list = Ebean.find(Order.class) + + // .setAutofetch(true) + .setAutofetch(false).select("status") + // .fetch("customer","id") + // .fetch("customer.contacts","id") + .fetch("customer.contacts.notes", "title").findList(); + + for (Order order : list) { + order.getStatus(); + Customer customer = order.getCustomer(); + List contacts = customer.getContacts(); + for (Contact contact : contacts) { + System.out.println("contact:" + contact); + List notes = contact.getNotes(); + for (ContactNote contactNote : notes) { + System.out.println("note:" + contactNote.getTitle()); } - - + } } - + + } + } diff --git a/src/test/java/com/avaje/tests/query/TestQueryFilterMany.java b/src/test/java/com/avaje/tests/query/TestQueryFilterMany.java index 687154251..a6c445586 100644 --- a/src/test/java/com/avaje/tests/query/TestQueryFilterMany.java +++ b/src/test/java/com/avaje/tests/query/TestQueryFilterMany.java @@ -2,8 +2,9 @@ package com.avaje.tests.query; import java.util.List; -import junit.framework.TestCase; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.FetchConfig; import com.avaje.ebean.Query; @@ -11,29 +12,27 @@ import com.avaje.tests.model.basic.Customer; import com.avaje.tests.model.basic.Order; import com.avaje.tests.model.basic.ResetBasicData; -public class TestQueryFilterMany extends TestCase { +public class TestQueryFilterMany extends BaseTestCase { - public void test() { - - ResetBasicData.reset(); - - Query query = Ebean.find(Customer.class) - .fetch("orders", new FetchConfig().lazy()) - .where().ilike("name","Rob%") - .filterMany("orders").eq("status", Order.Status.NEW) - .where().gt("id", 0) - .query(); - - //query.filterMany("orders").eq("status", Order.Status.NEW); - - List list = query.findList(); - for (Customer customer : list) { - customer.getOrders().size(); - } - - Customer c0 = list.get(0); - System.out.println("......... refreshMany ..."); - Ebean.refreshMany(c0, "orders"); - + @Test + public void test() { + + ResetBasicData.reset(); + + Query query = Ebean.find(Customer.class).fetch("orders", new FetchConfig().lazy()) + .where().ilike("name", "Rob%").filterMany("orders").eq("status", Order.Status.NEW).where() + .gt("id", 0).query(); + + // query.filterMany("orders").eq("status", Order.Status.NEW); + + List list = query.findList(); + for (Customer customer : list) { + customer.getOrders().size(); } + + Customer c0 = list.get(0); + System.out.println("......... refreshMany ..."); + Ebean.refreshMany(c0, "orders"); + + } } diff --git a/src/test/java/com/avaje/tests/query/TestQueryFilterManyOnM2M.java b/src/test/java/com/avaje/tests/query/TestQueryFilterManyOnM2M.java index 3874c705b..e5136f52a 100644 --- a/src/test/java/com/avaje/tests/query/TestQueryFilterManyOnM2M.java +++ b/src/test/java/com/avaje/tests/query/TestQueryFilterManyOnM2M.java @@ -1,20 +1,18 @@ package com.avaje.tests.query; -import junit.framework.TestCase; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.tests.model.basic.MUser; -public class TestQueryFilterManyOnM2M extends TestCase { +public class TestQueryFilterManyOnM2M extends BaseTestCase { + + @Test + public void test() { + + Ebean.find(MUser.class).fetch("roles").filterMany("roles").ilike("roleName", "Jim%").findList(); + + } - public void test() { - - Ebean.find(MUser.class) - .fetch("roles") - .filterMany("roles").ilike("roleName","Jim%") - .findList(); - - - } - } diff --git a/src/test/java/com/avaje/tests/query/TestQueryFilterManySimple.java b/src/test/java/com/avaje/tests/query/TestQueryFilterManySimple.java index 9fa72694e..abd450dbe 100644 --- a/src/test/java/com/avaje/tests/query/TestQueryFilterManySimple.java +++ b/src/test/java/com/avaje/tests/query/TestQueryFilterManySimple.java @@ -3,38 +3,36 @@ package com.avaje.tests.query; import java.sql.Date; import java.util.List; -import junit.framework.TestCase; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.FetchConfig; import com.avaje.tests.model.basic.Customer; import com.avaje.tests.model.basic.Order; import com.avaje.tests.model.basic.ResetBasicData; -public class TestQueryFilterManySimple extends TestCase { +public class TestQueryFilterManySimple extends BaseTestCase { - public void test() { - - ResetBasicData.reset(); - - // not really last week :) - Date lastWeek = Date.valueOf("2010-01-01"); - - List list = Ebean.find(Customer.class) - // .join("orders", new JoinConfig().lazy()) - // .join("orders", new JoinConfig().query()) - .fetch("orders") - .fetch("contacts", new FetchConfig().query()) - .where().ilike("name","rob%") - .filterMany("orders") - .eq("status", Order.Status.NEW) - .gt("orderDate", lastWeek) - .filterMany("contacts").isNotNull("firstName") - .findList(); - - System.out.println(list); - // invoke lazy loading - list.get(0).getOrders().size(); - System.out.println(list.get(0).getOrders()); - } + @Test + public void test() { + + ResetBasicData.reset(); + + // not really last week :) + Date lastWeek = Date.valueOf("2010-01-01"); + + List list = Ebean + .find(Customer.class) + // .join("orders", new JoinConfig().lazy()) + // .join("orders", new JoinConfig().query()) + .fetch("orders").fetch("contacts", new FetchConfig().query()).where().ilike("name", "rob%") + .filterMany("orders").eq("status", Order.Status.NEW).gt("orderDate", lastWeek) + .filterMany("contacts").isNotNull("firstName").findList(); + + System.out.println(list); + // invoke lazy loading + list.get(0).getOrders().size(); + System.out.println(list.get(0).getOrders()); + } } diff --git a/src/test/java/com/avaje/tests/query/TestQueryFindIterate.java b/src/test/java/com/avaje/tests/query/TestQueryFindIterate.java index 9067d04ea..cc99f147f 100644 --- a/src/test/java/com/avaje/tests/query/TestQueryFindIterate.java +++ b/src/test/java/com/avaje/tests/query/TestQueryFindIterate.java @@ -1,9 +1,9 @@ package com.avaje.tests.query; -import junit.framework.TestCase; - import org.junit.Assert; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.EbeanServer; import com.avaje.ebean.FetchConfig; @@ -12,34 +12,32 @@ import com.avaje.ebean.QueryIterator; import com.avaje.tests.model.basic.Customer; import com.avaje.tests.model.basic.ResetBasicData; -public class TestQueryFindIterate extends TestCase { +public class TestQueryFindIterate extends BaseTestCase { - public void test() { - - ResetBasicData.reset(); - - EbeanServer server = Ebean.getServer(null); - - Query query = server.find(Customer.class) - .setAutofetch(false) - .fetch("contacts",new FetchConfig().query(2)) - .where().gt("id", 0) - .orderBy("id") - .setMaxRows(2); - - int count = 0; - - QueryIterator it = query.findIterate(); - try { - while (it.hasNext()) { - Customer customer = it.next(); - customer.hashCode(); - count++; - } - } finally { - it.close(); - } + @Test + public void test() { - Assert.assertEquals(2, count); + ResetBasicData.reset(); + + EbeanServer server = Ebean.getServer(null); + + Query query = server.find(Customer.class).setAutofetch(false) + .fetch("contacts", new FetchConfig().query(2)).where().gt("id", 0).orderBy("id") + .setMaxRows(2); + + int count = 0; + + QueryIterator it = query.findIterate(); + try { + while (it.hasNext()) { + Customer customer = it.next(); + customer.hashCode(); + count++; + } + } finally { + it.close(); } + + Assert.assertEquals(2, count); + } } diff --git a/src/test/java/com/avaje/tests/query/TestQueryFindMapTypedKey.java b/src/test/java/com/avaje/tests/query/TestQueryFindMapTypedKey.java index a77e29c61..8aaa9c12d 100644 --- a/src/test/java/com/avaje/tests/query/TestQueryFindMapTypedKey.java +++ b/src/test/java/com/avaje/tests/query/TestQueryFindMapTypedKey.java @@ -2,25 +2,24 @@ package com.avaje.tests.query; import java.util.Map; -import junit.framework.TestCase; - import org.junit.Assert; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.tests.model.basic.Customer; import com.avaje.tests.model.basic.ResetBasicData; -public class TestQueryFindMapTypedKey extends TestCase { +public class TestQueryFindMapTypedKey extends BaseTestCase { - public void test() { - - ResetBasicData.reset(); - - Map map = - Ebean.find(Customer.class) - .select("id, name") - .findMap("name", String.class); - - Assert.assertNotNull(map); - } + @Test + public void test() { + + ResetBasicData.reset(); + + Map map = Ebean.find(Customer.class).select("id, name") + .findMap("name", String.class); + + Assert.assertNotNull(map); + } } diff --git a/src/test/java/com/avaje/tests/query/TestQueryFindReadOnly.java b/src/test/java/com/avaje/tests/query/TestQueryFindReadOnly.java index 3b35a2d77..d099d54db 100644 --- a/src/test/java/com/avaje/tests/query/TestQueryFindReadOnly.java +++ b/src/test/java/com/avaje/tests/query/TestQueryFindReadOnly.java @@ -2,50 +2,47 @@ package com.avaje.tests.query; import java.util.List; -import junit.framework.TestCase; - import org.junit.Assert; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.tests.model.basic.Article; import com.avaje.tests.model.basic.Section; -public class TestQueryFindReadOnly extends TestCase { +public class TestQueryFindReadOnly extends BaseTestCase { - public void test() { - - Section s0 = new Section("some content"); - Article a0 = new Article("art1","auth1"); - a0.addSection(s0); - - Ebean.save(a0); - - Article ar1 = Ebean.find(Article.class) - .setReadOnly(true) - .setId(a0.getId()) - .findUnique(); - - Assert.assertNotNull(ar1); - Assert.assertTrue("readonly",Ebean.getBeanState(ar1).isReadOnly()); - - List
ar1sections = ar1.getSections(); - Assert.assertEquals(1, ar1sections.size()); - - Section s2 = ar1sections.get(0); - Assert.assertTrue("readonly cascading",Ebean.getBeanState(s2).isReadOnly()); - - - Ebean.runCacheWarming(Article.class); - - Article ar0 = Ebean.find(Article.class, a0.getId()); - - Assert.assertNotNull(ar0); - Assert.assertFalse(Ebean.getBeanState(ar0).isReadOnly()); + @Test + public void test() { + + Section s0 = new Section("some content"); + Article a0 = new Article("art1", "auth1"); + a0.addSection(s0); + + Ebean.save(a0); + + Article ar1 = Ebean.find(Article.class).setReadOnly(true).setId(a0.getId()).findUnique(); + + Assert.assertNotNull(ar1); + Assert.assertTrue("readonly", Ebean.getBeanState(ar1).isReadOnly()); + + List
ar1sections = ar1.getSections(); + Assert.assertEquals(1, ar1sections.size()); + + Section s2 = ar1sections.get(0); + Assert.assertTrue("readonly cascading", Ebean.getBeanState(s2).isReadOnly()); + + Ebean.runCacheWarming(Article.class); + + Article ar0 = Ebean.find(Article.class, a0.getId()); + + Assert.assertNotNull(ar0); + Assert.assertFalse(Ebean.getBeanState(ar0).isReadOnly()); + + List
ar0sections = ar0.getSections(); + Section s1 = ar0sections.get(0); + Assert.assertFalse(Ebean.getBeanState(s1).isReadOnly()); + + } - List
ar0sections = ar0.getSections(); - Section s1 = ar0sections.get(0); - Assert.assertFalse(Ebean.getBeanState(s1).isReadOnly()); - - } - } diff --git a/src/test/java/com/avaje/tests/query/TestQueryFindVisit.java b/src/test/java/com/avaje/tests/query/TestQueryFindVisit.java index 6f6a54b90..31f65fee3 100644 --- a/src/test/java/com/avaje/tests/query/TestQueryFindVisit.java +++ b/src/test/java/com/avaje/tests/query/TestQueryFindVisit.java @@ -2,10 +2,10 @@ package com.avaje.tests.query; import java.util.concurrent.atomic.AtomicInteger; -import junit.framework.TestCase; - import org.junit.Assert; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.EbeanServer; import com.avaje.ebean.FetchConfig; @@ -14,31 +14,29 @@ import com.avaje.ebean.QueryResultVisitor; import com.avaje.tests.model.basic.Customer; import com.avaje.tests.model.basic.ResetBasicData; -public class TestQueryFindVisit extends TestCase { +public class TestQueryFindVisit extends BaseTestCase { - public void test() { - - ResetBasicData.reset(); - - EbeanServer server = Ebean.getServer(null); - - Query query = server.find(Customer.class) - .setAutofetch(false) - .fetch("contacts",new FetchConfig().query(2)) - .where().gt("id", 0) - .orderBy("id") - .setMaxRows(2); - - final AtomicInteger counter = new AtomicInteger(0); - - query.findVisit(new QueryResultVisitor() { - - public boolean accept(Customer bean) { - counter.incrementAndGet(); - return true; - } - }); - - Assert.assertEquals(2, counter.get()); - } + @Test + public void test() { + + ResetBasicData.reset(); + + EbeanServer server = Ebean.getServer(null); + + Query query = server.find(Customer.class).setAutofetch(false) + .fetch("contacts", new FetchConfig().query(2)).where().gt("id", 0).orderBy("id") + .setMaxRows(2); + + final AtomicInteger counter = new AtomicInteger(0); + + query.findVisit(new QueryResultVisitor() { + + public boolean accept(Customer bean) { + counter.incrementAndGet(); + return true; + } + }); + + Assert.assertEquals(2, counter.get()); + } } diff --git a/src/test/java/com/avaje/tests/query/TestQueryInAssocOne.java b/src/test/java/com/avaje/tests/query/TestQueryInAssocOne.java index 1182055fb..69cf32d41 100644 --- a/src/test/java/com/avaje/tests/query/TestQueryInAssocOne.java +++ b/src/test/java/com/avaje/tests/query/TestQueryInAssocOne.java @@ -2,36 +2,32 @@ package com.avaje.tests.query; import java.util.List; -import junit.framework.TestCase; - import org.junit.Assert; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.Query; import com.avaje.tests.model.basic.Customer; import com.avaje.tests.model.basic.Order; import com.avaje.tests.model.basic.ResetBasicData; -public class TestQueryInAssocOne extends TestCase { +public class TestQueryInAssocOne extends BaseTestCase { - - public void test() { - - ResetBasicData.reset(); - - List list = Ebean.find(Customer.class) - .where().lt("id",200) - .findList(); - - Query query = Ebean.find(Order.class) - .where().in("customer", list) - .query(); - - query.findList(); - String sql = query.getGeneratedSql(); - - Assert.assertTrue(sql, sql.indexOf("join o_customer t1 on t1.id = t0.kcustomer_id") > -1); - Assert.assertTrue(sql, sql.indexOf("t0.kcustomer_id in (?") > -1); - - } + @Test + public void test() { + + ResetBasicData.reset(); + + List list = Ebean.find(Customer.class).where().lt("id", 200).findList(); + + Query query = Ebean.find(Order.class).where().in("customer", list).query(); + + query.findList(); + String sql = query.getGeneratedSql(); + + Assert.assertTrue(sql, sql.indexOf("join o_customer t1 on t1.id = t0.kcustomer_id") > -1); + Assert.assertTrue(sql, sql.indexOf("t0.kcustomer_id in (?") > -1); + + } } diff --git a/src/test/java/com/avaje/tests/query/TestQueryInIdTypeConversion.java b/src/test/java/com/avaje/tests/query/TestQueryInIdTypeConversion.java index 7d6dc7c03..911f8ff63 100644 --- a/src/test/java/com/avaje/tests/query/TestQueryInIdTypeConversion.java +++ b/src/test/java/com/avaje/tests/query/TestQueryInIdTypeConversion.java @@ -3,27 +3,28 @@ package com.avaje.tests.query; import java.util.ArrayList; import java.util.List; -import junit.framework.TestCase; +import org.junit.Assert; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.tests.model.basic.Customer; import com.avaje.tests.model.basic.ResetBasicData; -public class TestQueryInIdTypeConversion extends TestCase { +public class TestQueryInIdTypeConversion extends BaseTestCase { - public void test() { - - ResetBasicData.reset(); - - List idList = new ArrayList(); - idList.add("1"); - idList.add("2"); - - List list = Ebean.find(Customer.class) - .where().idIn(idList) - .findList(); - - assertNotNull(list); - - } + @Test + public void test() { + + ResetBasicData.reset(); + + List idList = new ArrayList(); + idList.add("1"); + idList.add("2"); + + List list = Ebean.find(Customer.class).where().idIn(idList).findList(); + + Assert.assertNotNull(list); + + } } diff --git a/src/test/java/com/avaje/tests/query/TestQueryJoinManyNonRoot.java b/src/test/java/com/avaje/tests/query/TestQueryJoinManyNonRoot.java index 8247157b4..16e7e6d1b 100644 --- a/src/test/java/com/avaje/tests/query/TestQueryJoinManyNonRoot.java +++ b/src/test/java/com/avaje/tests/query/TestQueryJoinManyNonRoot.java @@ -2,84 +2,72 @@ package com.avaje.tests.query; import java.util.List; -import junit.framework.TestCase; - import org.junit.Assert; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.Query; import com.avaje.tests.model.basic.Order; import com.avaje.tests.model.basic.ResetBasicData; -public class TestQueryJoinManyNonRoot extends TestCase { +public class TestQueryJoinManyNonRoot extends BaseTestCase { - public void test_manyNonRoot() { - - ResetBasicData.reset(); - - Query q = Ebean.find(Order.class) - .fetch("customer") - .fetch("customer.contacts") - .where().gt("id", 0) - .query(); + @Test + public void test_manyNonRoot() { - List list = q.findList(); - String sql = q.getGeneratedSql(); - - Assert.assertTrue(list.size() > 0); - Assert.assertTrue(sql.contains("join o_customer t1 on t1.id ")); - Assert.assertTrue(sql.contains("left outer join contact t2 on")); - - } + ResetBasicData.reset(); - public void test_manyRootQueryJoinOrderDetailsFirst() { - - ResetBasicData.reset(); - - Query q = Ebean.find(Order.class) - .fetch("details") - .fetch("details.product") - .fetch("customer") - .fetch("customer.contacts") - .where().gt("id", 0) - .query(); + Query q = Ebean.find(Order.class).fetch("customer").fetch("customer.contacts").where() + .gt("id", 0).query(); - List list = q.findList(); - String sql = q.getGeneratedSql(); - - Assert.assertTrue(list.size() > 0); - Assert.assertTrue(sql.contains("join o_customer t1 on t1.id ")); - Assert.assertTrue(sql.contains("left outer join o_order_detail ")); - Assert.assertTrue(sql.contains("left outer join o_product ")); - - Assert.assertFalse(sql.contains("left outer join contact")); - - } - - - public void test_manyRootQueryJoinCustomerContactsFirst() { - - ResetBasicData.reset(); - - Query q = Ebean.find(Order.class) - .fetch("customer") - .fetch("customer.contacts") - .fetch("details") - .fetch("details.product") - .where().gt("id", 0) - .query(); + List list = q.findList(); + String sql = q.getGeneratedSql(); - List list = q.findList(); - String sql = q.getGeneratedSql(); - - Assert.assertTrue(list.size() > 0); - Assert.assertTrue(sql.contains("join o_customer t1 on t1.id ")); - Assert.assertTrue(sql.contains("left outer join contact ")); + Assert.assertTrue(list.size() > 0); + Assert.assertTrue(sql.contains("join o_customer t1 on t1.id ")); + Assert.assertTrue(sql.contains("left outer join contact t2 on")); - Assert.assertFalse(sql.contains("left outer join o_order_detail ")); - Assert.assertFalse(sql.contains("left outer join o_product ")); - - - } + } + + @Test + public void test_manyRootQueryJoinOrderDetailsFirst() { + + ResetBasicData.reset(); + + Query q = Ebean.find(Order.class).fetch("details").fetch("details.product") + .fetch("customer").fetch("customer.contacts").where().gt("id", 0).query(); + + List list = q.findList(); + String sql = q.getGeneratedSql(); + + Assert.assertTrue(list.size() > 0); + Assert.assertTrue(sql.contains("join o_customer t1 on t1.id ")); + Assert.assertTrue(sql.contains("left outer join o_order_detail ")); + Assert.assertTrue(sql.contains("left outer join o_product ")); + + Assert.assertFalse(sql.contains("left outer join contact")); + + } + + @Test + public void test_manyRootQueryJoinCustomerContactsFirst() { + + ResetBasicData.reset(); + + Query q = Ebean.find(Order.class).fetch("customer").fetch("customer.contacts") + .fetch("details").fetch("details.product").where().gt("id", 0).query(); + + List list = q.findList(); + String sql = q.getGeneratedSql(); + + Assert.assertTrue(list.size() > 0); + Assert.assertTrue(sql.contains("join o_customer t1 on t1.id ")); + Assert.assertTrue(sql.contains("left outer join contact ")); + + Assert.assertFalse(sql.contains("left outer join o_order_detail ")); + Assert.assertFalse(sql.contains("left outer join o_product ")); + + } } diff --git a/src/test/java/com/avaje/tests/query/TestQueryJoinMulipleMany.java b/src/test/java/com/avaje/tests/query/TestQueryJoinMulipleMany.java index 89759adec..7e4bb7032 100644 --- a/src/test/java/com/avaje/tests/query/TestQueryJoinMulipleMany.java +++ b/src/test/java/com/avaje/tests/query/TestQueryJoinMulipleMany.java @@ -2,35 +2,32 @@ package com.avaje.tests.query; import java.util.List; -import junit.framework.TestCase; - import org.junit.Assert; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.tests.model.basic.Contact; import com.avaje.tests.model.basic.Order; import com.avaje.tests.model.basic.ResetBasicData; -public class TestQueryJoinMulipleMany extends TestCase { +public class TestQueryJoinMulipleMany extends BaseTestCase { - public void test() { - - ResetBasicData.reset(); - - List list = Ebean.find(Order.class) - .fetch("customer") - .fetch("customer.contacts") - .where().gt("id", 0) - .findList(); + @Test + public void test() { - Assert.assertNotNull(list); - System.out.println(list); - - for (Order order : list) { - List contacts = order.getCustomer().getContacts(); - contacts.size(); - } - - + ResetBasicData.reset(); + + List list = Ebean.find(Order.class).fetch("customer").fetch("customer.contacts").where() + .gt("id", 0).findList(); + + Assert.assertNotNull(list); + System.out.println(list); + + for (Order order : list) { + List contacts = order.getCustomer().getContacts(); + contacts.size(); } + + } } diff --git a/src/test/java/com/avaje/tests/query/TestQueryJoinQueryNonRoot.java b/src/test/java/com/avaje/tests/query/TestQueryJoinQueryNonRoot.java index a5b71e864..9fffbefc2 100644 --- a/src/test/java/com/avaje/tests/query/TestQueryJoinQueryNonRoot.java +++ b/src/test/java/com/avaje/tests/query/TestQueryJoinQueryNonRoot.java @@ -2,10 +2,10 @@ package com.avaje.tests.query; import java.util.List; -import junit.framework.TestCase; - import org.junit.Assert; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.FetchConfig; import com.avaje.ebeaninternal.api.SpiEbeanServer; @@ -15,44 +15,40 @@ import com.avaje.tests.model.basic.Contact; import com.avaje.tests.model.basic.Order; import com.avaje.tests.model.basic.ResetBasicData; -public class TestQueryJoinQueryNonRoot extends TestCase { +public class TestQueryJoinQueryNonRoot extends BaseTestCase { - public void test() { - - - SpiEbeanServer server = (SpiEbeanServer)Ebean.getServer(null); - BeanDescriptor d = server.getBeanDescriptor(Order.class); - ElPropertyValue elGetValue = d.getElGetValue("customer.contacts"); - - Assert.assertTrue(elGetValue.containsMany()); - - - ResetBasicData.reset(); - - List list = Ebean.find(Order.class) - .fetch("customer") - .fetch("customer.contacts", "firstName", new FetchConfig().query().lazy(10)) - .fetch("customer.contacts.group") - .where().lt("id", 3) - .findList(); + @Test + public void test() { - Assert.assertNotNull(list); - Assert.assertTrue(list.size() > 0); - - for (Order order : list) { - List contacts = order.getCustomer().getContacts(); - for (Contact contact : contacts) { - contact.getFirstName(); - } - } - - -// String oq = "find order join customer join customer.contacts join details (+query(4),+lazy(5))"; -// Query q = Ebean.createQuery(Order.class, oq); -// q.setAutofetch(false); -// List list2 = q.findList(); -// -// Assert.assertTrue(list2.size() > 0); - + SpiEbeanServer server = (SpiEbeanServer) Ebean.getServer(null); + BeanDescriptor d = server.getBeanDescriptor(Order.class); + ElPropertyValue elGetValue = d.getElGetValue("customer.contacts"); + + Assert.assertTrue(elGetValue.containsMany()); + + ResetBasicData.reset(); + + List list = Ebean.find(Order.class).fetch("customer") + .fetch("customer.contacts", "firstName", new FetchConfig().query().lazy(10)) + .fetch("customer.contacts.group").where().lt("id", 3).findList(); + + Assert.assertNotNull(list); + Assert.assertTrue(list.size() > 0); + + for (Order order : list) { + List contacts = order.getCustomer().getContacts(); + for (Contact contact : contacts) { + contact.getFirstName(); + } } + + // String oq = + // "find order join customer join customer.contacts join details (+query(4),+lazy(5))"; + // Query q = Ebean.createQuery(Order.class, oq); + // q.setAutofetch(false); + // List list2 = q.findList(); + // + // Assert.assertTrue(list2.size() > 0); + + } } diff --git a/src/test/java/com/avaje/tests/query/TestQueryLimitOffsetSimple.java b/src/test/java/com/avaje/tests/query/TestQueryLimitOffsetSimple.java index 60580e654..d0a8716d8 100644 --- a/src/test/java/com/avaje/tests/query/TestQueryLimitOffsetSimple.java +++ b/src/test/java/com/avaje/tests/query/TestQueryLimitOffsetSimple.java @@ -1,17 +1,19 @@ package com.avaje.tests.query; -import junit.framework.TestCase; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.Query; import com.avaje.tests.model.basic.Order; import com.avaje.tests.model.basic.ResetBasicData; -public class TestQueryLimitOffsetSimple extends TestCase { +public class TestQueryLimitOffsetSimple extends BaseTestCase { /** * Test the syntax of the limit offset clause. */ + @Test public void testMe() { ResetBasicData.reset(); diff --git a/src/test/java/com/avaje/tests/query/TestQueryMultiManyOrder.java b/src/test/java/com/avaje/tests/query/TestQueryMultiManyOrder.java index 484159444..67fa1aeda 100644 --- a/src/test/java/com/avaje/tests/query/TestQueryMultiManyOrder.java +++ b/src/test/java/com/avaje/tests/query/TestQueryMultiManyOrder.java @@ -2,39 +2,34 @@ package com.avaje.tests.query; import java.util.List; -import junit.framework.TestCase; - import org.junit.Assert; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.Query; import com.avaje.tests.model.basic.Order; import com.avaje.tests.model.basic.ResetBasicData; -public class TestQueryMultiManyOrder extends TestCase { +public class TestQueryMultiManyOrder extends BaseTestCase { - public void test() { - - ResetBasicData.reset(); - - Query q = Ebean.find(Order.class) - .fetch("shipments") - .fetch("details") - .fetch("details.product") - .fetch("customer") - .where().gt("id", 0) - .query(); + @Test + public void test() { - List list = q.findList(); - String sql = q.getGeneratedSql(); - - Assert.assertTrue(list.size() > 0); - Assert.assertTrue(sql.contains("join o_customer ")); - - Assert.assertFalse(sql.contains("left outer join contact ")); - Assert.assertFalse(sql.contains("left outer join o_order_detail ")); - Assert.assertFalse(sql.contains("left outer join o_product ")); - - - } + ResetBasicData.reset(); + + Query q = Ebean.find(Order.class).fetch("shipments").fetch("details") + .fetch("details.product").fetch("customer").where().gt("id", 0).query(); + + List list = q.findList(); + String sql = q.getGeneratedSql(); + + Assert.assertTrue(list.size() > 0); + Assert.assertTrue(sql.contains("join o_customer ")); + + Assert.assertFalse(sql.contains("left outer join contact ")); + Assert.assertFalse(sql.contains("left outer join o_order_detail ")); + Assert.assertFalse(sql.contains("left outer join o_product ")); + + } } diff --git a/src/test/java/com/avaje/tests/query/TestQueryNullAssocOne.java b/src/test/java/com/avaje/tests/query/TestQueryNullAssocOne.java index 5a5fbe33e..90c9367bc 100644 --- a/src/test/java/com/avaje/tests/query/TestQueryNullAssocOne.java +++ b/src/test/java/com/avaje/tests/query/TestQueryNullAssocOne.java @@ -2,49 +2,45 @@ package com.avaje.tests.query; import java.util.List; -import junit.framework.TestCase; +import org.junit.Assert; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.Query; import com.avaje.tests.model.basic.Order; import com.avaje.tests.model.basic.ResetBasicData; -public class TestQueryNullAssocOne extends TestCase { +public class TestQueryNullAssocOne extends BaseTestCase { - public void test() { - - ResetBasicData.reset(); - - - Query q0 = Ebean.find(Order.class) - .where().eq("customer", null).query(); - - List orders = q0.findList(); - assertNotNull(orders); - assertTrue(q0.getGeneratedSql().contains("where t0.kcustomer_id is null")); + @Test + public void test() { - Query q1 = Ebean.find(Order.class) - .where().eq("customer.id", null).query(); - - List o1 = q1.findList(); - assertTrue(o1.size() == orders.size()); - assertTrue(q1.getGeneratedSql().contains("where t0.kcustomer_id is null")); + ResetBasicData.reset(); + Query q0 = Ebean.find(Order.class).where().eq("customer", null).query(); - Query q2 = Ebean.find(Order.class) - .where().isNull("customer").query(); - - List o2 = q2.findList(); - assertTrue(o2.size() == orders.size()); - assertTrue(q2.getGeneratedSql().contains("where t0.kcustomer_id is null")); + List orders = q0.findList(); + Assert.assertNotNull(orders); + Assert.assertTrue(q0.getGeneratedSql().contains("where t0.kcustomer_id is null")); + Query q1 = Ebean.find(Order.class).where().eq("customer.id", null).query(); - Query q3 = Ebean.find(Order.class) - .where().isNull("customer").query(); - - List o3 = q3.findList(); - assertTrue(o3.size() == orders.size()); - assertTrue(q3.getGeneratedSql().contains("where t0.kcustomer_id is null")); + List o1 = q1.findList(); + Assert.assertTrue(o1.size() == orders.size()); + Assert.assertTrue(q1.getGeneratedSql().contains("where t0.kcustomer_id is null")); - } + Query q2 = Ebean.find(Order.class).where().isNull("customer").query(); + + List o2 = q2.findList(); + Assert.assertTrue(o2.size() == orders.size()); + Assert.assertTrue(q2.getGeneratedSql().contains("where t0.kcustomer_id is null")); + + Query q3 = Ebean.find(Order.class).where().isNull("customer").query(); + + List o3 = q3.findList(); + Assert.assertTrue(o3.size() == orders.size()); + Assert.assertTrue(q3.getGeneratedSql().contains("where t0.kcustomer_id is null")); + + } } diff --git a/src/test/java/com/avaje/tests/query/TestQueryParsing.java b/src/test/java/com/avaje/tests/query/TestQueryParsing.java index 54ac3e786..3b7c35d68 100644 --- a/src/test/java/com/avaje/tests/query/TestQueryParsing.java +++ b/src/test/java/com/avaje/tests/query/TestQueryParsing.java @@ -1,64 +1,64 @@ package com.avaje.tests.query; -import junit.framework.TestCase; - import org.junit.Assert; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.Query; import com.avaje.ebeaninternal.api.SpiQuery; import com.avaje.ebeaninternal.server.querydefn.OrmQueryDetail; import com.avaje.tests.model.basic.Order; -public class TestQueryParsing extends TestCase { +public class TestQueryParsing extends BaseTestCase { - public void test() { - - String oq = "find order join customer join customer.contacts join details (+query(4),+lazy(5))"; - Query q = Ebean.createQuery(Order.class, oq); - checkQuery(q); + @Test + public void test() { - String oq1 = "find order join customer join customer.contacts join details ( +query(4), +lazy(5) )"; - SpiQuery q1 = (SpiQuery)Ebean.createQuery(Order.class, oq1); - checkQuery(q1); + String oq = "find order join customer join customer.contacts join details (+query(4),+lazy(5))"; + Query q = Ebean.createQuery(Order.class, oq); + checkQuery(q); - String oq2 = "find order join customer join customer.contacts join details ( +query(4), +lazy(5) , *)"; - SpiQuery q2 = (SpiQuery)Ebean.createQuery(Order.class, oq2); - checkQuery(q2); - - String oq3 = "find order join customer join customer.contacts join details (+query(4),+lazy(5),*)"; - SpiQuery q3 = (SpiQuery)Ebean.createQuery(Order.class, oq3); - checkQuery(q3); + String oq1 = "find order join customer join customer.contacts join details ( +query(4), +lazy(5) )"; + SpiQuery q1 = (SpiQuery) Ebean.createQuery(Order.class, oq1); + checkQuery(q1); - String oq4 = "find order join customer join customer.contacts join details (+query(4) +lazy(5) *)"; - SpiQuery q4 = (SpiQuery)Ebean.createQuery(Order.class, oq4); - checkQuery(q4); + String oq2 = "find order join customer join customer.contacts join details ( +query(4), +lazy(5) , *)"; + SpiQuery q2 = (SpiQuery) Ebean.createQuery(Order.class, oq2); + checkQuery(q2); - } - - private void checkQuery(Query q){ - - - SpiQuery sq = (SpiQuery)q; - OrmQueryDetail detail = sq.getDetail(); - - Assert.assertNotNull(detail.getChunk("customer", false)); - Assert.assertFalse(detail.getChunk("customer", false).isQueryFetch()); - Assert.assertFalse(detail.getChunk("customer", false).isLazyFetch()); - - Assert.assertNotNull(detail.getChunk("customer.contacts", false)); - Assert.assertFalse(detail.getChunk("customer.contacts", false).isQueryFetch()); - Assert.assertFalse(detail.getChunk("customer.contacts", false).isLazyFetch()); + String oq3 = "find order join customer join customer.contacts join details (+query(4),+lazy(5),*)"; + SpiQuery q3 = (SpiQuery) Ebean.createQuery(Order.class, oq3); + checkQuery(q3); - Assert.assertNotNull(detail.getChunk("details", false)); - Assert.assertTrue(detail.getChunk("details", false).isQueryFetch()); - Assert.assertTrue(detail.getChunk("details", false).isLazyFetch()); + String oq4 = "find order join customer join customer.contacts join details (+query(4) +lazy(5) *)"; + SpiQuery q4 = (SpiQuery) Ebean.createQuery(Order.class, oq4); + checkQuery(q4); - Assert.assertEquals(4, detail.getChunk("details", false).getQueryFetchBatch()); - Assert.assertEquals(5, detail.getChunk("details", false).getLazyFetchBatch()); + } + + private void checkQuery(Query q) { + + SpiQuery sq = (SpiQuery) q; + OrmQueryDetail detail = sq.getDetail(); + + Assert.assertNotNull(detail.getChunk("customer", false)); + Assert.assertFalse(detail.getChunk("customer", false).isQueryFetch()); + Assert.assertFalse(detail.getChunk("customer", false).isLazyFetch()); + + Assert.assertNotNull(detail.getChunk("customer.contacts", false)); + Assert.assertFalse(detail.getChunk("customer.contacts", false).isQueryFetch()); + Assert.assertFalse(detail.getChunk("customer.contacts", false).isLazyFetch()); + + Assert.assertNotNull(detail.getChunk("details", false)); + Assert.assertTrue(detail.getChunk("details", false).isQueryFetch()); + Assert.assertTrue(detail.getChunk("details", false).isLazyFetch()); + + Assert.assertEquals(4, detail.getChunk("details", false).getQueryFetchBatch()); + Assert.assertEquals(5, detail.getChunk("details", false).getLazyFetchBatch()); + + Assert.assertTrue(detail.getChunk("details", false).allProperties()); + + } - Assert.assertTrue(detail.getChunk("details", false).allProperties()); - - } - } diff --git a/src/test/java/com/avaje/tests/query/TestQueryPathJoinAndOrder.java b/src/test/java/com/avaje/tests/query/TestQueryPathJoinAndOrder.java index 2dc72ceff..7c0016533 100644 --- a/src/test/java/com/avaje/tests/query/TestQueryPathJoinAndOrder.java +++ b/src/test/java/com/avaje/tests/query/TestQueryPathJoinAndOrder.java @@ -2,30 +2,28 @@ package com.avaje.tests.query; import java.util.List; -import junit.framework.TestCase; +import org.junit.Assert; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.tests.model.basic.Customer; import com.avaje.tests.model.basic.ResetBasicData; -public class TestQueryPathJoinAndOrder extends TestCase { +public class TestQueryPathJoinAndOrder extends BaseTestCase { - public void test() { - - ResetBasicData.reset(); - - List list = Ebean.find(Customer.class) - .select("id,name, status") - .fetch("contacts") - .order().asc("id") - .order().desc("contacts.firstName") - .setMaxRows(3) - .findList(); - - assertNotNull(list); - - // can't really assert that the contacts are batch loaded - // via a secondary query join - - } + @Test + public void test() { + + ResetBasicData.reset(); + + List list = Ebean.find(Customer.class).select("id,name, status").fetch("contacts") + .order().asc("id").order().desc("contacts.firstName").setMaxRows(3).findList(); + + Assert.assertNotNull(list); + + // can't really assert that the contacts are batch loaded + // via a secondary query join + + } } diff --git a/src/test/java/com/avaje/tests/query/TestQueryPlanCacheRowCount.java b/src/test/java/com/avaje/tests/query/TestQueryPlanCacheRowCount.java index 52cd10ed0..e0815876b 100644 --- a/src/test/java/com/avaje/tests/query/TestQueryPlanCacheRowCount.java +++ b/src/test/java/com/avaje/tests/query/TestQueryPlanCacheRowCount.java @@ -2,68 +2,63 @@ package com.avaje.tests.query; import java.util.List; -import junit.framework.TestCase; - import org.junit.Assert; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.Query; import com.avaje.tests.model.basic.Order; import com.avaje.tests.model.basic.ResetBasicData; -public class TestQueryPlanCacheRowCount extends TestCase { +public class TestQueryPlanCacheRowCount extends BaseTestCase { - public void test() { - - ResetBasicData.reset(); - - Query query = Ebean.find(Order.class) - .where() - .eq("status", Order.Status.NEW) - .ge("id", 1) - .order().desc("id"); - - int rc0 = query.findRowCount(); - - List ids = query.findIds(); - Assert.assertEquals(rc0,ids.size()); - - List list0 = query.findList(); - Assert.assertEquals(rc0,list0.size()); - - int rc1 = query.findRowCount(); - Assert.assertEquals(rc0,rc1); - - List ids1 = query.findIds(); - Assert.assertEquals(rc0,ids1.size()); - - List list1 = query.findList(); - Assert.assertEquals(rc0,list1.size()); - - int idGt = 5; - if (ids1.size() > 0){ - Object id = ids.get(0); - idGt = Integer.valueOf(""+id); - } - - // should still hit query plan cache - Query query2 = Ebean.find(Order.class) - .where() - .eq("status", Order.Status.NEW) - .ge("id", idGt) - .order().desc("id"); + @Test + public void test() { - int rc2 = query2.findRowCount(); - - System.out.println("Expection Not same "+rc0+" != "+rc2); - Assert.assertNotSame(rc0, rc2); + ResetBasicData.reset(); - List ids2 = query2.findIds(); - Assert.assertEquals(rc2,ids2.size()); - - List list2 = query2.findList(); - Assert.assertEquals(rc2,list2.size()); + Query query = Ebean.find(Order.class).where().eq("status", Order.Status.NEW).ge("id", 1) + .order().desc("id"); + int rc0 = query.findRowCount(); + + List ids = query.findIds(); + Assert.assertEquals(rc0, ids.size()); + + List list0 = query.findList(); + Assert.assertEquals(rc0, list0.size()); + + int rc1 = query.findRowCount(); + Assert.assertEquals(rc0, rc1); + + List ids1 = query.findIds(); + Assert.assertEquals(rc0, ids1.size()); + + List list1 = query.findList(); + Assert.assertEquals(rc0, list1.size()); + + int idGt = 5; + if (ids1.size() > 0) { + Object id = ids.get(0); + idGt = Integer.valueOf("" + id); } - + + // should still hit query plan cache + Query query2 = Ebean.find(Order.class).where().eq("status", Order.Status.NEW) + .ge("id", idGt).order().desc("id"); + + int rc2 = query2.findRowCount(); + + System.out.println("Expection Not same " + rc0 + " != " + rc2); + Assert.assertNotSame(rc0, rc2); + + List ids2 = query2.findIds(); + Assert.assertEquals(rc2, ids2.size()); + + List list2 = query2.findList(); + Assert.assertEquals(rc2, list2.size()); + + } + } diff --git a/src/test/java/com/avaje/tests/query/TestRefToLazyLoadMany.java b/src/test/java/com/avaje/tests/query/TestRefToLazyLoadMany.java index 546f63db1..f4310b8ae 100644 --- a/src/test/java/com/avaje/tests/query/TestRefToLazyLoadMany.java +++ b/src/test/java/com/avaje/tests/query/TestRefToLazyLoadMany.java @@ -2,41 +2,41 @@ package com.avaje.tests.query; import java.util.List; -import junit.framework.TestCase; +import org.junit.Assert; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.tests.model.basic.Contact; import com.avaje.tests.model.basic.Customer; import com.avaje.tests.model.basic.ResetBasicData; -public class TestRefToLazyLoadMany extends TestCase { +public class TestRefToLazyLoadMany extends BaseTestCase { - public void test() { - - ResetBasicData.reset(); + @Test + public void test() { - List custList = Ebean.find(Customer.class) - .select("id") - .findList(); - - Customer c = custList.get(0); - - List contacts2 = c.getContacts(); - assertEquals(3, Ebean.getBeanState(c).getLoadedProps().size()); + ResetBasicData.reset(); - // now lazy load the contacts - contacts2.size(); - - - Customer c2 = Ebean.getReference(Customer.class, c.getId()); - - // we only "loaded" the contacts BeanList and not all of c2 - List contacts = c2.getContacts(); - //Set loadedProps = Ebean.getBeanState(c2).getLoadedProps(); - //assertEquals(1, loadedProps.size()); - - // now lazy load the contacts - contacts.size(); - - } + List custList = Ebean.find(Customer.class).select("id").findList(); + + Customer c = custList.get(0); + + List contacts2 = c.getContacts(); + Assert.assertEquals(3, Ebean.getBeanState(c).getLoadedProps().size()); + + // now lazy load the contacts + contacts2.size(); + + Customer c2 = Ebean.getReference(Customer.class, c.getId()); + + // we only "loaded" the contacts BeanList and not all of c2 + List contacts = c2.getContacts(); + // Set loadedProps = Ebean.getBeanState(c2).getLoadedProps(); + // assertEquals(1, loadedProps.size()); + + // now lazy load the contacts + contacts.size(); + + } } diff --git a/src/test/java/com/avaje/tests/query/TestRowCount.java b/src/test/java/com/avaje/tests/query/TestRowCount.java index 5dd58ff56..852a097b3 100644 --- a/src/test/java/com/avaje/tests/query/TestRowCount.java +++ b/src/test/java/com/avaje/tests/query/TestRowCount.java @@ -3,37 +3,36 @@ package com.avaje.tests.query; import java.util.List; import junit.framework.Assert; -import junit.framework.TestCase; +import org.junit.Test; + +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.Query; import com.avaje.tests.model.basic.Order; import com.avaje.tests.model.basic.ResetBasicData; -public class TestRowCount extends TestCase { +public class TestRowCount extends BaseTestCase { + + @Test + public void test() { + + ResetBasicData.reset(); + + Query query = Ebean.find(Order.class).fetch("details").where().gt("id", 1) + .gt("details.id", 1).order("id desc"); + + int rc = query.findRowCount(); + System.out.println("rc:" + rc); + + List ids = query.findIds(); + System.out.println("ids:" + ids); + + List list = query.findList(); + System.out.println(list); + + Assert.assertEquals("same rc to ids.size() ", rc, ids.size()); + Assert.assertEquals("same rc to list.size()", rc, list.size()); + } - public void test(){ - - ResetBasicData.reset(); - - Query query = Ebean.find(Order.class) - .fetch("details") - .where().gt("id", 1) - .gt("details.id", 1) - .order("id desc"); - - - int rc = query.findRowCount(); - System.out.println("rc:"+rc); - - List ids = query.findIds(); - System.out.println("ids:"+ids); - - List list = query.findList(); - System.out.println(list); - - Assert.assertEquals("same rc to ids.size() ", rc, ids.size()); - Assert.assertEquals("same rc to list.size()", rc, list.size()); - } - } diff --git a/src/test/java/com/avaje/tests/query/TestSubQuery.java b/src/test/java/com/avaje/tests/query/TestSubQuery.java index 2299bf5bf..80a2f0cc8 100644 --- a/src/test/java/com/avaje/tests/query/TestSubQuery.java +++ b/src/test/java/com/avaje/tests/query/TestSubQuery.java @@ -3,8 +3,10 @@ package com.avaje.tests.query; import java.util.ArrayList; import java.util.List; -import junit.framework.TestCase; +import org.junit.Assert; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.Query; import com.avaje.tests.model.basic.CKeyParent; @@ -13,195 +15,157 @@ import com.avaje.tests.model.basic.ResetBasicData; import com.avaje.tests.model.basic.Vehicle; import com.avaje.tests.model.basic.VehicleDriver; -public class TestSubQuery extends TestCase { +public class TestSubQuery extends BaseTestCase { - public void testId() { - - ResetBasicData.reset(); + @Test + public void testId() { - List productIds = new ArrayList(); - productIds.add(3); - - Query sq = Ebean.createQuery(Order.class) - .select("id") - .where().in("details.product.id", productIds) - .query(); - - List list = Ebean.find(Order.class) - .where().in("id", sq) - .findList(); - - System.out.println(list); - // FIXME: need to clear out old orders.. - //Assert.assertEquals(2,list.size()); - - String oq = " find order (id, status) where id in " - +"(select a.id from o_order a join o_order_detail ad on ad.order_id = a.id where ad.product_id in (:prods)) "; + ResetBasicData.reset(); - List list2 = Ebean.createQuery(Order.class, oq) - .setParameter("prods", productIds) - .findList(); + List productIds = new ArrayList(); + productIds.add(3); - System.out.println(list2); - //Assert.assertEquals(2,list2.size()); + Query sq = Ebean.createQuery(Order.class).select("id").where() + .in("details.product.id", productIds).query(); + List list = Ebean.find(Order.class).where().in("id", sq).findList(); + + System.out.println(list); + // FIXME: need to clear out old orders.. + // Assert.assertEquals(2,list.size()); + + String oq = " find order (id, status) where id in " + + "(select a.id from o_order a join o_order_detail ad on ad.order_id = a.id where ad.product_id in (:prods)) "; + + List list2 = Ebean.createQuery(Order.class, oq).setParameter("prods", productIds) + .findList(); + + System.out.println(list2); + // Assert.assertEquals(2,list2.size()); + + } + + public void testCompositeKey() { + ResetBasicData.reset(); + + Query sq = Ebean.createQuery(CKeyParent.class).select("id.oneKey") + .setAutofetch(false).where().query(); + + Query pq = Ebean.find(CKeyParent.class).where().in("id.oneKey", sq).query(); + + pq.findList(); + + String sql = pq.getGeneratedSql(); + + String golden = "(t0.one_key) in (select t0.one_key from ckey_parent t0) "; + + if (sql.indexOf(golden) < 0) { + System.out.println("failed sql:" + sql); + Assert.fail("golden string not found"); + } + } + + /** + * show that ebean is not using the correct table name in the subquery (sq) + * + * public void testInheritance1() { ResetBasicData.reset(); + * + * Query sq = Ebean.createQuery(Vehicle.class) .select("id") + * .setAutofetch(false) .where() .query(); + * + * Query pq = Ebean.find(VehicleDriver.class) + * .where().in("vehicle.id", sq) .query(); + * + * pq.findList(); + * + * String sql = pq.getGeneratedSql(); System.err.println(sql); + * + * String golden = "(t0.vehicle_id) in (select t0.id from t0.vehicle t0)"; if + * (sql.indexOf(golden) < 0) { System.out.println("failed sql:"+sql); + * fail("golden string not found"); } + * + * } + */ + + /** + * show that ebean is adding the discriminator to the list of columns in the + * subquery + */ + public void testInheritance2() { + ResetBasicData.reset(); + + Query sq = Ebean.createQuery(VehicleDriver.class).select("vehicle") + .setAutofetch(false).where().query(); + + Query pq = Ebean.find(Vehicle.class).where().in("id", sq).query(); + + pq.findList(); + + String sql = pq.getGeneratedSql(); + System.err.println(sql); + + // TODO: If, after bugfixing, the system still join against vehicle I do not + // know now, in our case, it is not necessary if not + // using it in the where clause + String golden = "(t0.id) in (select t0.vehicle_id from vehicle_driver t0 left outer join vehicle t1 on t1.id = t0.vehicle_id )"; + if (sql.indexOf(golden) < 0) { + System.out.println("failed sql:" + sql); + Assert.fail("golden string not found"); } - - public void testCompositeKey() - { - ResetBasicData.reset(); + } - Query sq = Ebean.createQuery(CKeyParent.class) - .select("id.oneKey") - .setAutofetch(false) - .where() - .query(); + /** + * show that ebean is adding the discriminator to the list of columns in the + * subquery. Second test to make sure that joining is still possible after + * bugfixing testInheritance2. + */ + public void testInheritance3() { + ResetBasicData.reset(); - Query pq = Ebean.find(CKeyParent.class) - .where().in("id.oneKey", sq) - .query(); + Query sq = Ebean.createQuery(VehicleDriver.class).select("vehicle") + .setAutofetch(false).where().eq("vehicle.licenseNumber", "abc").query(); - pq.findList(); - - String sql = pq.getGeneratedSql(); + Query pq = Ebean.find(Vehicle.class).where().in("id", sq).query(); - String golden = "(t0.one_key) in (select t0.one_key from ckey_parent t0) "; - - if (sql.indexOf(golden) < 0) - { - System.out.println("failed sql:"+sql); - fail("golden string not found"); - } - } + pq.findList(); - /** - * show that ebean is not using the correct table name in the subquery (sq) - * - public void testInheritance1() - { - ResetBasicData.reset(); + String sql = pq.getGeneratedSql(); + System.err.println(sql); - Query sq = Ebean.createQuery(Vehicle.class) - .select("id") - .setAutofetch(false) - .where() - .query(); + String golden = "(t0.id) in (select t0.vehicle_id from vehicle_driver t0 left outer join vehicle t1 on t1.id = t0.vehicle_id where t1.license_number = ? )"; + if (sql.indexOf(golden) < 0) { + System.out.println("failed sql:" + sql); + Assert.fail("golden string not found"); + } + } - Query pq = Ebean.find(VehicleDriver.class) - .where().in("vehicle.id", sq) - .query(); + /** + * show that ebean is using the wrong column (from the vehicle_driver table + * instead of vehicle) for the selected column in the subquery. In contrast to + * testInheritance2+3 this test forces ebean to "drill down" to the key of the + * relation. + */ + public void testInheritance4() { + ResetBasicData.reset(); - pq.findList(); + Query sq = Ebean.createQuery(VehicleDriver.class).select("vehicle.id") + .setAutofetch(false).where().query(); - String sql = pq.getGeneratedSql(); - System.err.println(sql); + Query pq = Ebean.find(Vehicle.class).where().in("id", sq).query(); - String golden = "(t0.vehicle_id) in (select t0.id from t0.vehicle t0)"; - if (sql.indexOf(golden) < 0) - { - System.out.println("failed sql:"+sql); - fail("golden string not found"); - } + pq.findList(); - } - */ + String sql = pq.getGeneratedSql(); + System.err.println(sql); - /** - * show that ebean is adding the discriminator to the list of columns in the subquery - */ - public void testInheritance2() - { - ResetBasicData.reset(); - - Query sq = Ebean.createQuery(VehicleDriver.class) - .select("vehicle") - .setAutofetch(false) - .where() - .query(); - - Query pq = Ebean.find(Vehicle.class) - .where().in("id", sq) - .query(); - - pq.findList(); - - String sql = pq.getGeneratedSql(); - System.err.println(sql); - - // TODO: If, after bugfixing, the system still join against vehicle I do not know now, in our case, it is not necessary if not - // using it in the where clause - String golden = "(t0.id) in (select t0.vehicle_id from vehicle_driver t0 left outer join vehicle t1 on t1.id = t0.vehicle_id )"; - if (sql.indexOf(golden) < 0) - { - System.out.println("failed sql:"+sql); - fail("golden string not found"); - } - - } - - /** - * show that ebean is adding the discriminator to the list of columns in the subquery. - * Second test to make sure that joining is still possible after bugfixing testInheritance2. - */ - public void testInheritance3() - { - ResetBasicData.reset(); - - Query sq = Ebean.createQuery(VehicleDriver.class) - .select("vehicle") - .setAutofetch(false) - .where() - .eq("vehicle.licenseNumber", "abc") - .query(); - - Query pq = Ebean.find(Vehicle.class) - .where().in("id", sq) - .query(); - - pq.findList(); - - String sql = pq.getGeneratedSql(); - System.err.println(sql); - - String golden = "(t0.id) in (select t0.vehicle_id from vehicle_driver t0 left outer join vehicle t1 on t1.id = t0.vehicle_id where t1.license_number = ? )"; - if (sql.indexOf(golden) < 0) - { - System.out.println("failed sql:"+sql); - fail("golden string not found"); - } - } - - /** - * show that ebean is using the wrong column (from the vehicle_driver table instead of vehicle) for the selected column in the subquery. - * In contrast to testInheritance2+3 this test forces ebean to "drill down" to the key of the relation. - */ - public void testInheritance4() - { - ResetBasicData.reset(); - - Query sq = Ebean.createQuery(VehicleDriver.class) - .select("vehicle.id") - .setAutofetch(false) - .where() - .query(); - - Query pq = Ebean.find(Vehicle.class) - .where().in("id", sq) - .query(); - - pq.findList(); - - String sql = pq.getGeneratedSql(); - System.err.println(sql); - - String golden = "(t0.id) in (select t0.vehicle_id from vehicle_driver t0 left outer join vehicle t1 on t1.id = t0.vehicle_id )"; - // OR without join - // String golden = "(t0.id) in (select t0.vehicle_id from vehicle_driver t0)"; - if (sql.indexOf(golden) < 0) - { - System.out.println("failed sql:"+sql); - fail("golden string not found"); - } - } + String golden = "(t0.id) in (select t0.vehicle_id from vehicle_driver t0 left outer join vehicle t1 on t1.id = t0.vehicle_id )"; + // OR without join + // String golden = + // "(t0.id) in (select t0.vehicle_id from vehicle_driver t0)"; + if (sql.indexOf(golden) < 0) { + System.out.println("failed sql:" + sql); + Assert.fail("golden string not found"); + } + } } diff --git a/src/test/java/com/avaje/tests/query/TestThreeLevelQueryJoin.java b/src/test/java/com/avaje/tests/query/TestThreeLevelQueryJoin.java index 64d04f63a..2e043c136 100644 --- a/src/test/java/com/avaje/tests/query/TestThreeLevelQueryJoin.java +++ b/src/test/java/com/avaje/tests/query/TestThreeLevelQueryJoin.java @@ -1,27 +1,26 @@ package com.avaje.tests.query; -import junit.framework.TestCase; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.FetchConfig; import com.avaje.tests.model.basic.Customer; import com.avaje.tests.model.basic.ResetBasicData; -public class TestThreeLevelQueryJoin extends TestCase { +public class TestThreeLevelQueryJoin extends BaseTestCase { + + @Test + public void test() { + + ResetBasicData.reset(); + + Ebean.find(Customer.class).fetch("orders", new FetchConfig().query()) + .fetch("orders.details", new FetchConfig().query()) + .fetch("orders.shipments", new FetchConfig().query()) + .fetch("shippingAddress", new FetchConfig().query()) + .fetch("billingAddress", new FetchConfig().query()).findList(); + + } - public void test() { - - ResetBasicData.reset(); - - Ebean.find(Customer.class) - .fetch("orders", new FetchConfig().query()) - .fetch("orders.details", new FetchConfig().query()) - .fetch("orders.shipments", new FetchConfig().query()) - .fetch("shippingAddress", new FetchConfig().query()) - .fetch("billingAddress", new FetchConfig().query()) - .findList(); - - - } - } diff --git a/src/test/java/com/avaje/tests/query/TestWhereRawClause.java b/src/test/java/com/avaje/tests/query/TestWhereRawClause.java index 4f2291351..85c699b49 100644 --- a/src/test/java/com/avaje/tests/query/TestWhereRawClause.java +++ b/src/test/java/com/avaje/tests/query/TestWhereRawClause.java @@ -1,24 +1,22 @@ package com.avaje.tests.query; -import junit.framework.TestCase; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.Expr; import com.avaje.tests.model.basic.OrderDetail; import com.avaje.tests.model.basic.ResetBasicData; -public class TestWhereRawClause extends TestCase { +public class TestWhereRawClause extends BaseTestCase { + @Test public void testRawClause() { - + ResetBasicData.reset(); - - - Ebean.find(OrderDetail.class) - .where() - .not(Expr.eq("id", 1)) - .raw("orderQty < shipQty") + + Ebean.find(OrderDetail.class).where().not(Expr.eq("id", 1)).raw("orderQty < shipQty") .findList(); - + } } diff --git a/src/test/java/com/avaje/tests/query/orderby/TestOrderByOnComplex.java b/src/test/java/com/avaje/tests/query/orderby/TestOrderByOnComplex.java index 3eac39372..b31bd1eb7 100644 --- a/src/test/java/com/avaje/tests/query/orderby/TestOrderByOnComplex.java +++ b/src/test/java/com/avaje/tests/query/orderby/TestOrderByOnComplex.java @@ -1,26 +1,28 @@ package com.avaje.tests.query.orderby; -import junit.framework.TestCase; +import org.junit.Assert; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.Query; import com.avaje.tests.model.basic.Order; import com.avaje.tests.model.basic.ResetBasicData; -public class TestOrderByOnComplex extends TestCase { +public class TestOrderByOnComplex extends BaseTestCase { + + @Test + public void test() { + + ResetBasicData.reset(); + + Query query = Ebean.find(Order.class).order().desc("customer"); + + query.findList(); + + String sql = query.getGeneratedSql(); + Assert.assertTrue(sql.contains("order by t0.kcustomer_id desc")); + + } - public void test() { - - ResetBasicData.reset(); - - Query query = Ebean.find(Order.class) - .order().desc("customer"); - - query.findList(); - - String sql = query.getGeneratedSql(); - assertTrue(sql.contains("order by t0.kcustomer_id desc")); - - } - } diff --git a/src/test/java/com/avaje/tests/query/orderby/TestOrderByWithFunction.java b/src/test/java/com/avaje/tests/query/orderby/TestOrderByWithFunction.java index 8cb67d389..d749bab2a 100644 --- a/src/test/java/com/avaje/tests/query/orderby/TestOrderByWithFunction.java +++ b/src/test/java/com/avaje/tests/query/orderby/TestOrderByWithFunction.java @@ -1,34 +1,33 @@ package com.avaje.tests.query.orderby; -import junit.framework.TestCase; - import org.junit.Assert; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.Query; import com.avaje.tests.model.basic.Customer; import com.avaje.tests.model.basic.ResetBasicData; -public class TestOrderByWithFunction extends TestCase { +public class TestOrderByWithFunction extends BaseTestCase { - public void testWithFunction() { - - ResetBasicData.reset(); - - Query query = Ebean.find(Customer.class) - .order("length(name),name"); - - query.findList(); - String sql = query.getGeneratedSql(); - - Assert.assertTrue(sql.indexOf("order by length(t0.name)") > -1); - - - String oq = "find customer ORDER BY LENGTH(name),name"; - query = Ebean.createQuery(Customer.class, oq); - query.findList(); - - sql = query.getGeneratedSql(); - Assert.assertTrue(sql.indexOf("order by LENGTH(t0.name)") > -1); - } + @Test + public void testWithFunction() { + + ResetBasicData.reset(); + + Query query = Ebean.find(Customer.class).order("length(name),name"); + + query.findList(); + String sql = query.getGeneratedSql(); + + Assert.assertTrue(sql.indexOf("order by length(t0.name)") > -1); + + String oq = "find customer ORDER BY LENGTH(name),name"; + query = Ebean.createQuery(Customer.class, oq); + query.findList(); + + sql = query.getGeneratedSql(); + Assert.assertTrue(sql.indexOf("order by LENGTH(t0.name)") > -1); + } } diff --git a/src/test/java/com/avaje/tests/query/orderby/TestOrderByWithMany.java b/src/test/java/com/avaje/tests/query/orderby/TestOrderByWithMany.java index 242e80c3c..a434b8d1c 100644 --- a/src/test/java/com/avaje/tests/query/orderby/TestOrderByWithMany.java +++ b/src/test/java/com/avaje/tests/query/orderby/TestOrderByWithMany.java @@ -1,119 +1,113 @@ package com.avaje.tests.query.orderby; -import junit.framework.TestCase; +import org.junit.Assert; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.Query; import com.avaje.tests.model.basic.Order; import com.avaje.tests.model.basic.ResetBasicData; -public class TestOrderByWithMany extends TestCase { +public class TestOrderByWithMany extends BaseTestCase { - public void test() { - - ResetBasicData.reset(); - - checkWithBuiltInMany(); - checkAppendId(); - checkNone(); - checkBoth(); - checkPrepend(); - checkAlreadyIncluded(); - checkAlreadyIncluded2(); - } - - private void checkWithBuiltInMany() { - - Query query = Ebean.find(Order.class) - .fetch("details") - .order().desc("customer.name"); - - query.findList(); - - String sql = query.getGeneratedSql(); - - // t0.id inserted into the middle of the order by - assertTrue(sql.contains("order by t1.name desc, t0.id, t2.id asc")); - } - - private void checkAppendId() { - - Query query = Ebean.find(Order.class) - .fetch("shipments") - .order().desc("customer.name"); - - query.findList(); - - String sql = query.getGeneratedSql(); - - // append the id to ensure ordering of root level objects - assertTrue(sql.contains("order by t1.name desc, t0.id")); - } - - private void checkNone() { - - Query query = Ebean.find(Order.class) - .order().desc("customer.name"); - - query.findList(); - - String sql = query.getGeneratedSql(); - - // no need to append id to order by as there is no 'many' included in the query - assertTrue(sql.contains("order by t1.name desc")); - assertTrue(!sql.contains("order by t1.name desc,")); - } - - private void checkBoth() { - - Query query = Ebean.find(Order.class) - .fetch("shipments") - .order().desc("customer.name, shipments.shipTime"); - - query.findList(); - - String sql = query.getGeneratedSql(); - // insert id into the middle of the order by - assertTrue(sql.contains("order by t1.name, t0.id, t2.ship_time desc")); - } - - private void checkPrepend() { - - Query query = Ebean.find(Order.class) - .fetch("shipments") - .order().desc("shipments.shipTime"); - - query.findList(); - - String sql = query.getGeneratedSql(); - // prepend id in order by - assertTrue(sql.contains("order by t0.id, t1.ship_time desc")); - } - - private void checkAlreadyIncluded() { - - Query query = Ebean.find(Order.class) - .fetch("shipments") - .order().desc("id, shipments.shipTime"); - - query.findList(); - - String sql = query.getGeneratedSql(); - // prepend id in order by - assertTrue(sql.contains("order by t0.id, t1.ship_time desc")); - } - - - private void checkAlreadyIncluded2() { - - Query query = Ebean.find(Order.class) - .fetch("shipments") - .order().desc("orderDate, id, shipments.shipTime"); - - query.findList(); - - String sql = query.getGeneratedSql(); - // prepend id in order by - assertTrue(sql.contains("order by t0.order_date, t0.id, t1.ship_time desc")); - } + @Test + public void test() { + + ResetBasicData.reset(); + + checkWithBuiltInMany(); + checkAppendId(); + checkNone(); + checkBoth(); + checkPrepend(); + checkAlreadyIncluded(); + checkAlreadyIncluded2(); + } + + private void checkWithBuiltInMany() { + + Query query = Ebean.find(Order.class).fetch("details").order().desc("customer.name"); + + query.findList(); + + String sql = query.getGeneratedSql(); + + // t0.id inserted into the middle of the order by + Assert.assertTrue(sql.contains("order by t1.name desc, t0.id, t2.id asc")); + } + + private void checkAppendId() { + + Query query = Ebean.find(Order.class).fetch("shipments").order().desc("customer.name"); + + query.findList(); + + String sql = query.getGeneratedSql(); + + // append the id to ensure ordering of root level objects + Assert.assertTrue(sql.contains("order by t1.name desc, t0.id")); + } + + private void checkNone() { + + Query query = Ebean.find(Order.class).order().desc("customer.name"); + + query.findList(); + + String sql = query.getGeneratedSql(); + + // no need to append id to order by as there is no 'many' included in the + // query + Assert.assertTrue(sql.contains("order by t1.name desc")); + Assert.assertTrue(!sql.contains("order by t1.name desc,")); + } + + private void checkBoth() { + + Query query = Ebean.find(Order.class).fetch("shipments").order() + .desc("customer.name, shipments.shipTime"); + + query.findList(); + + String sql = query.getGeneratedSql(); + // insert id into the middle of the order by + Assert.assertTrue(sql.contains("order by t1.name, t0.id, t2.ship_time desc")); + } + + private void checkPrepend() { + + Query query = Ebean.find(Order.class).fetch("shipments").order() + .desc("shipments.shipTime"); + + query.findList(); + + String sql = query.getGeneratedSql(); + // prepend id in order by + Assert.assertTrue(sql.contains("order by t0.id, t1.ship_time desc")); + } + + private void checkAlreadyIncluded() { + + Query query = Ebean.find(Order.class).fetch("shipments").order() + .desc("id, shipments.shipTime"); + + query.findList(); + + String sql = query.getGeneratedSql(); + // prepend id in order by + Assert.assertTrue(sql.contains("order by t0.id, t1.ship_time desc")); + } + + private void checkAlreadyIncluded2() { + + Query query = Ebean.find(Order.class).fetch("shipments").order() + .desc("orderDate, id, shipments.shipTime"); + + query.findList(); + + String sql = query.getGeneratedSql(); + // prepend id in order by + Assert.assertTrue(sql.contains("order by t0.order_date, t0.id, t1.ship_time desc")); + } } diff --git a/src/test/java/com/avaje/tests/query/other/TestNoIdEntityType.java b/src/test/java/com/avaje/tests/query/other/TestNoIdEntityType.java index e709b0054..13e471b67 100644 --- a/src/test/java/com/avaje/tests/query/other/TestNoIdEntityType.java +++ b/src/test/java/com/avaje/tests/query/other/TestNoIdEntityType.java @@ -4,10 +4,11 @@ import junit.framework.Assert; import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.tests.model.basic.NoIdEntityType; -public class TestNoIdEntityType { +public class TestNoIdEntityType extends BaseTestCase { @Test public void testFindById() { diff --git a/src/test/java/com/avaje/tests/rawsql/TestInsertSqlLogging.java b/src/test/java/com/avaje/tests/rawsql/TestInsertSqlLogging.java index dd7b92019..3c54ef9ab 100644 --- a/src/test/java/com/avaje/tests/rawsql/TestInsertSqlLogging.java +++ b/src/test/java/com/avaje/tests/rawsql/TestInsertSqlLogging.java @@ -1,24 +1,25 @@ package com.avaje.tests.rawsql; -import junit.framework.TestCase; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.SqlUpdate; -public class TestInsertSqlLogging extends TestCase { +public class TestInsertSqlLogging extends BaseTestCase { - public void test() { - - //Ebean.getServer(null); - - String sql = "insert into audit_log (id, description, modified_description) values (?,?,?)"; - SqlUpdate sqlUpdate = Ebean.createSqlUpdate(sql); - sqlUpdate.setParameter(1, 10000); - sqlUpdate.setParameter(2, "hello"); - sqlUpdate.setParameter(3, "rob"); - - sqlUpdate.execute(); - - - } + @Test + public void test() { + + // Ebean.getServer(null); + + String sql = "insert into audit_log (id, description, modified_description) values (?,?,?)"; + SqlUpdate sqlUpdate = Ebean.createSqlUpdate(sql); + sqlUpdate.setParameter(1, 10000); + sqlUpdate.setParameter(2, "hello"); + sqlUpdate.setParameter(3, "rob"); + + sqlUpdate.execute(); + + } } diff --git a/src/test/java/com/avaje/tests/rawsql/TestOrderReportTotal.java b/src/test/java/com/avaje/tests/rawsql/TestOrderReportTotal.java index 1436561c9..243952c62 100644 --- a/src/test/java/com/avaje/tests/rawsql/TestOrderReportTotal.java +++ b/src/test/java/com/avaje/tests/rawsql/TestOrderReportTotal.java @@ -2,32 +2,33 @@ package com.avaje.tests.rawsql; import java.util.List; -import junit.framework.TestCase; +import org.junit.Assert; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.Query; import com.avaje.tests.model.basic.OrderAggregate; import com.avaje.tests.model.basic.ResetBasicData; -public class TestOrderReportTotal extends TestCase { +public class TestOrderReportTotal extends BaseTestCase { - public void test() { - - ResetBasicData.reset(); - - Query query = Ebean.createQuery(OrderAggregate.class); - - List list = query.findList(); - assertNotNull(list); - - Query q2 = Ebean.createQuery(OrderAggregate.class); - q2.where().gt("id", 1); - q2.having().gt("totalItems", 1); - - List l2 = q2.findList(); - assertNotNull(l2); - - - - } + @Test + public void test() { + + ResetBasicData.reset(); + + Query query = Ebean.createQuery(OrderAggregate.class); + + List list = query.findList(); + Assert.assertNotNull(list); + + Query q2 = Ebean.createQuery(OrderAggregate.class); + q2.where().gt("id", 1); + q2.having().gt("totalItems", 1); + + List l2 = q2.findList(); + Assert.assertNotNull(l2); + + } } diff --git a/src/test/java/com/avaje/tests/rawsql/TestRawSqlCustomerAggregate.java b/src/test/java/com/avaje/tests/rawsql/TestRawSqlCustomerAggregate.java index 8414fda37..9aa2ea8cd 100644 --- a/src/test/java/com/avaje/tests/rawsql/TestRawSqlCustomerAggregate.java +++ b/src/test/java/com/avaje/tests/rawsql/TestRawSqlCustomerAggregate.java @@ -2,8 +2,10 @@ package com.avaje.tests.rawsql; import java.util.List; -import junit.framework.TestCase; +import org.junit.Assert; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.Query; import com.avaje.ebean.RawSql; @@ -11,23 +13,23 @@ import com.avaje.ebean.RawSqlBuilder; import com.avaje.tests.model.basic.CustomerAggregate; import com.avaje.tests.model.basic.ResetBasicData; -public class TestRawSqlCustomerAggregate extends TestCase { +public class TestRawSqlCustomerAggregate extends BaseTestCase { - public void test() { + @Test + public void test() { - ResetBasicData.reset(); - - RawSql rawSql = - RawSqlBuilder - .parse("select c.customer_id, count(*) as totalContacts from contact c group by c.customer_id") - .columnMapping("c.customer_id", "customer.id") - .create(); - - Query query = Ebean.find(CustomerAggregate.class); - query.setRawSql(rawSql); - query.where().ge("customer.id", 1); - - List list = query.findList(); - assertNotNull(list); - } + ResetBasicData.reset(); + + RawSql rawSql = RawSqlBuilder + .parse( + "select c.customer_id, count(*) as totalContacts from contact c group by c.customer_id") + .columnMapping("c.customer_id", "customer.id").create(); + + Query query = Ebean.find(CustomerAggregate.class); + query.setRawSql(rawSql); + query.where().ge("customer.id", 1); + + List list = query.findList(); + Assert.assertNotNull(list); + } } diff --git a/src/test/java/com/avaje/tests/rawsql/TestRawSqlNamedParams.java b/src/test/java/com/avaje/tests/rawsql/TestRawSqlNamedParams.java index 41776212b..423301bc1 100644 --- a/src/test/java/com/avaje/tests/rawsql/TestRawSqlNamedParams.java +++ b/src/test/java/com/avaje/tests/rawsql/TestRawSqlNamedParams.java @@ -2,8 +2,10 @@ package com.avaje.tests.rawsql; import java.util.List; -import junit.framework.TestCase; +import org.junit.Assert; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.Query; import com.avaje.ebean.RawSql; @@ -11,27 +13,25 @@ import com.avaje.ebean.RawSqlBuilder; import com.avaje.tests.model.basic.Customer; import com.avaje.tests.model.basic.ResetBasicData; -public class TestRawSqlNamedParams extends TestCase { +public class TestRawSqlNamedParams extends BaseTestCase { - public void test() { + @Test + public void test() { - ResetBasicData.reset(); - - RawSql rawSql = - RawSqlBuilder - .parse("select r.id, r.name from o_customer r where r.id > :id and r.name like :name") - .columnMapping("r.id", "id") - .columnMapping("r.name", "name") - .create(); - - Query query = Ebean.find(Customer.class); - query.setRawSql(rawSql); - query.setParameter("name", "R%"); - query.setParameter("id", 0); - query.where().lt("id", 1000); - - List list = query.findList(); - - assertNotNull(list); - } + ResetBasicData.reset(); + + RawSql rawSql = RawSqlBuilder + .parse("select r.id, r.name from o_customer r where r.id > :id and r.name like :name") + .columnMapping("r.id", "id").columnMapping("r.name", "name").create(); + + Query query = Ebean.find(Customer.class); + query.setRawSql(rawSql); + query.setParameter("name", "R%"); + query.setParameter("id", 0); + query.where().lt("id", 1000); + + List list = query.findList(); + + Assert.assertNotNull(list); + } } diff --git a/src/test/java/com/avaje/tests/rawsql/TestRawSqlOrmQuery.java b/src/test/java/com/avaje/tests/rawsql/TestRawSqlOrmQuery.java index 5ac39a929..41c152308 100644 --- a/src/test/java/com/avaje/tests/rawsql/TestRawSqlOrmQuery.java +++ b/src/test/java/com/avaje/tests/rawsql/TestRawSqlOrmQuery.java @@ -2,8 +2,10 @@ package com.avaje.tests.rawsql; import java.util.List; -import junit.framework.TestCase; +import org.junit.Assert; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.FetchConfig; import com.avaje.ebean.Page; @@ -14,8 +16,9 @@ import com.avaje.ebean.RawSqlBuilder; import com.avaje.tests.model.basic.Customer; import com.avaje.tests.model.basic.ResetBasicData; -public class TestRawSqlOrmQuery extends TestCase { +public class TestRawSqlOrmQuery extends BaseTestCase { + @Test public void test() { ResetBasicData.reset(); @@ -35,9 +38,10 @@ public class TestRawSqlOrmQuery extends TestCase { query.filterMany("contacts").gt("lastName", "b"); List list = query.findList(); - assertNotNull(list); + Assert.assertNotNull(list); } + @Test public void testPaging() { ResetBasicData.reset(); diff --git a/src/test/java/com/avaje/tests/rawsql/TestRawSqlOrmQueryDistinct.java b/src/test/java/com/avaje/tests/rawsql/TestRawSqlOrmQueryDistinct.java index 212c97172..33d1fc300 100644 --- a/src/test/java/com/avaje/tests/rawsql/TestRawSqlOrmQueryDistinct.java +++ b/src/test/java/com/avaje/tests/rawsql/TestRawSqlOrmQueryDistinct.java @@ -2,8 +2,10 @@ package com.avaje.tests.rawsql; import java.util.List; -import junit.framework.TestCase; +import org.junit.Assert; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.FetchConfig; import com.avaje.ebean.Query; @@ -12,24 +14,22 @@ import com.avaje.ebean.RawSqlBuilder; import com.avaje.tests.model.basic.Customer; import com.avaje.tests.model.basic.ResetBasicData; -public class TestRawSqlOrmQueryDistinct extends TestCase { +public class TestRawSqlOrmQueryDistinct extends BaseTestCase { + @Test public void test() { ResetBasicData.reset(); - + RawSql rawSql0 = RawSqlBuilder.parse(" select distinct r.id, r.name from o_customer r ") .create(); Query query0 = Ebean.find(Customer.class); query0.setRawSql(rawSql0); query0.where().ilike("name", "r%"); - RawSql rawSql = RawSqlBuilder.parse(" select distinct r.id, r.name from o_customer r ") - .columnMapping("r.id", "id") - .columnMapping("r.name", "name") - .create(); + .columnMapping("r.id", "id").columnMapping("r.name", "name").create(); Query query = Ebean.find(Customer.class); query.setRawSql(rawSql); @@ -39,7 +39,7 @@ public class TestRawSqlOrmQueryDistinct extends TestCase { query.filterMany("contacts").gt("lastName", "b"); List list = query.findList(); - assertNotNull(list); + Assert.assertNotNull(list); } } diff --git a/src/test/java/com/avaje/tests/rawsql/TestRawSqlOrmWrapper.java b/src/test/java/com/avaje/tests/rawsql/TestRawSqlOrmWrapper.java index 77890ab63..3949a687a 100644 --- a/src/test/java/com/avaje/tests/rawsql/TestRawSqlOrmWrapper.java +++ b/src/test/java/com/avaje/tests/rawsql/TestRawSqlOrmWrapper.java @@ -2,8 +2,10 @@ package com.avaje.tests.rawsql; import java.util.List; -import junit.framework.TestCase; +import org.junit.Assert; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.Query; import com.avaje.ebean.RawSql; @@ -14,67 +16,58 @@ import com.avaje.tests.model.basic.Order.Status; import com.avaje.tests.model.basic.OrderAggregate; import com.avaje.tests.model.basic.ResetBasicData; -public class TestRawSqlOrmWrapper extends TestCase { +public class TestRawSqlOrmWrapper extends BaseTestCase { - public void test() { - - ResetBasicData.reset(); - - String sql - = " select order_id, o.status, c.id, c.name, sum(d.order_qty*d.unit_price) as totalAmount" - + " from o_order o" - + " join o_customer c on c.id = o.kcustomer_id " - + " join o_order_detail d on d.order_id = o.id " - + " group by order_id, o.status, c.id, c.name "; - - RawSql rawSql = - RawSqlBuilder - .parse(sql) - .columnMapping("order_id", "order.id") - .columnMapping("o.status", "order.status") - .columnMapping("c.id", "order.customer.id") - .columnMapping("c.name", "order.customer.name") - //.columnMapping("sum(d.order_qty*d.unit_price)", "totalAmount") - .create(); + @Test + public void test() { - - Query query = Ebean.find(OrderAggregate.class); - query.setRawSql(rawSql) - //.fetch("order.details", new FetchConfig().query()) - .where().gt("order.id", 0) - .having().gt("totalAmount", 20); - - List list = query.findList(); - assertNotNull(list); + ResetBasicData.reset(); - output(list); - - List list2 = Ebean.find(OrderAggregate.class) - .setRawSql(rawSql) - //.fetch("order.details", new FetchConfig().query()) - .where().gt("order.id", 2) - .having().gt("totalAmount", 10) - .findList(); - - output(list2); + String sql = " select order_id, o.status, c.id, c.name, sum(d.order_qty*d.unit_price) as totalAmount" + + " from o_order o" + + " join o_customer c on c.id = o.kcustomer_id " + + " join o_order_detail d on d.order_id = o.id " + + " group by order_id, o.status, c.id, c.name "; + RawSql rawSql = RawSqlBuilder.parse(sql).columnMapping("order_id", "order.id") + .columnMapping("o.status", "order.status").columnMapping("c.id", "order.customer.id") + .columnMapping("c.name", "order.customer.name") + // .columnMapping("sum(d.order_qty*d.unit_price)", "totalAmount") + .create(); + + Query query = Ebean.find(OrderAggregate.class); + query.setRawSql(rawSql) + // .fetch("order.details", new FetchConfig().query()) + .where().gt("order.id", 0).having().gt("totalAmount", 20); + + List list = query.findList(); + Assert.assertNotNull(list); + + output(list); + + List list2 = Ebean.find(OrderAggregate.class).setRawSql(rawSql) + // .fetch("order.details", new FetchConfig().query()) + .where().gt("order.id", 2).having().gt("totalAmount", 10).findList(); + + output(list2); + + } + + private void output(List list) { + + for (OrderAggregate oa : list) { + Double totalAmount = oa.getTotalAmount(); + Order order = oa.getOrder(); + Integer id = order.getId(); + Status status = order.getStatus(); + System.out.println("Order: " + id + " " + status + " total:" + totalAmount); + + Customer c = order.getCustomer(); + System.out.println(" -> customer: " + c.getId() + " " + c.getName()); + + // invoke lazy loading as this property + // has not populated originally + // order.getOrderDate(); } - - private void output(List list) { - - for (OrderAggregate oa : list) { - Double totalAmount = oa.getTotalAmount(); - Order order = oa.getOrder(); - Integer id = order.getId(); - Status status = order.getStatus(); - System.out.println("Order: "+id+" "+status+" total:"+totalAmount); - - Customer c = order.getCustomer(); - System.out.println(" -> customer: "+c.getId()+" "+c.getName()); - - // invoke lazy loading as this property - // has not populated originally - //order.getOrderDate(); - } - } + } } diff --git a/src/test/java/com/avaje/tests/rawsql/TestRawSqlOrmWrapper2.java b/src/test/java/com/avaje/tests/rawsql/TestRawSqlOrmWrapper2.java index 613be1da9..0c97a1e17 100644 --- a/src/test/java/com/avaje/tests/rawsql/TestRawSqlOrmWrapper2.java +++ b/src/test/java/com/avaje/tests/rawsql/TestRawSqlOrmWrapper2.java @@ -2,8 +2,10 @@ package com.avaje.tests.rawsql; import java.util.List; -import junit.framework.TestCase; +import org.junit.Assert; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.FetchConfig; import com.avaje.ebean.Query; @@ -13,46 +15,36 @@ import com.avaje.tests.model.basic.Order; import com.avaje.tests.model.basic.OrderAggregate; import com.avaje.tests.model.basic.ResetBasicData; -public class TestRawSqlOrmWrapper2 extends TestCase { +public class TestRawSqlOrmWrapper2 extends BaseTestCase { - public void test() { - - ResetBasicData.reset(); - - String sql - = " select order_id, 'ignoreMe', sum(d.order_qty*d.unit_price) as totalAmount " - + " from o_order_detail d" - + " group by order_id "; - - RawSql rawSql = - RawSqlBuilder - .parse(sql) - .columnMapping("order_id", "order.id") - .columnMappingIgnore("'ignoreMe'") - // don't need this when using column alias - //.columnMapping("sum(d.order_qty*d.unit_price)", "totalAmount") - .create(); + @Test + public void test() { - - Query query = Ebean.find(OrderAggregate.class); - query.setRawSql(rawSql) - .fetch("order", "status,orderDate",new FetchConfig().query()) - .fetch("order.customer", "name") - .where().gt("order.id", 0) - .having().gt("totalAmount", 20) - .order().desc("totalAmount") - .setMaxRows(10); - - List list = query.findList(); - assertNotNull(list); + ResetBasicData.reset(); - for (OrderAggregate oa : list) { - Double totalAmount = oa.getTotalAmount(); - Order order = oa.getOrder(); - Integer id = order.getId(); - System.out.println("Order: "+id+" total:"+totalAmount); - } - - + String sql = " select order_id, 'ignoreMe', sum(d.order_qty*d.unit_price) as totalAmount " + + " from o_order_detail d" + " group by order_id "; + + RawSql rawSql = RawSqlBuilder.parse(sql).columnMapping("order_id", "order.id") + .columnMappingIgnore("'ignoreMe'") + // don't need this when using column alias + // .columnMapping("sum(d.order_qty*d.unit_price)", "totalAmount") + .create(); + + Query query = Ebean.find(OrderAggregate.class); + query.setRawSql(rawSql).fetch("order", "status,orderDate", new FetchConfig().query()) + .fetch("order.customer", "name").where().gt("order.id", 0).having().gt("totalAmount", 20) + .order().desc("totalAmount").setMaxRows(10); + + List list = query.findList(); + Assert.assertNotNull(list); + + for (OrderAggregate oa : list) { + Double totalAmount = oa.getTotalAmount(); + Order order = oa.getOrder(); + Integer id = order.getId(); + System.out.println("Order: " + id + " total:" + totalAmount); } + + } } diff --git a/src/test/java/com/avaje/tests/rawsql/TestRawSqlOrmWrapper3.java b/src/test/java/com/avaje/tests/rawsql/TestRawSqlOrmWrapper3.java index 759df45d1..fead81bfa 100644 --- a/src/test/java/com/avaje/tests/rawsql/TestRawSqlOrmWrapper3.java +++ b/src/test/java/com/avaje/tests/rawsql/TestRawSqlOrmWrapper3.java @@ -2,8 +2,9 @@ package com.avaje.tests.rawsql; import java.util.List; -import junit.framework.TestCase; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.FetchConfig; import com.avaje.ebean.RawSql; @@ -14,58 +15,49 @@ import com.avaje.tests.model.basic.Order.Status; import com.avaje.tests.model.basic.OrderAggregate; import com.avaje.tests.model.basic.ResetBasicData; -public class TestRawSqlOrmWrapper3 extends TestCase { +public class TestRawSqlOrmWrapper3 extends BaseTestCase { - public void test() { - - ResetBasicData.reset(); - - String sql - = " select order_id, o.status, c.id, c.name, sum(d.order_qty*d.unit_price) as totalAmount" - + " from o_order o" - + " join o_customer c on c.id = o.kcustomer_id " - + " join o_order_detail d on d.order_id = o.id " - + " group by order_id, o.status, c.id, c.name "; - - RawSql rawSql = - RawSqlBuilder - .parse(sql) - .columnMapping("order_id", "order.id") - .columnMapping("o.status", "order.status") - .columnMapping("c.id", "order.customer.id") - .columnMapping("c.name", "order.customer.name") - //.columnMapping("sum(d.order_qty*d.unit_price)", "totalAmount") - .create(); + @Test + public void test() { - - List list2 = Ebean.find(OrderAggregate.class) - .setRawSql(rawSql) - .fetch("order", new FetchConfig().query()) - .fetch("order.details", new FetchConfig().query()) - .where().gt("order.id", 2) - .having().gt("totalAmount", 10) - .filterMany("order.details").gt("unitPrice", 2d) - .findList(); - - output(list2); + ResetBasicData.reset(); + String sql = " select order_id, o.status, c.id, c.name, sum(d.order_qty*d.unit_price) as totalAmount" + + " from o_order o" + + " join o_customer c on c.id = o.kcustomer_id " + + " join o_order_detail d on d.order_id = o.id " + + " group by order_id, o.status, c.id, c.name "; + + RawSql rawSql = RawSqlBuilder.parse(sql).columnMapping("order_id", "order.id") + .columnMapping("o.status", "order.status").columnMapping("c.id", "order.customer.id") + .columnMapping("c.name", "order.customer.name") + // .columnMapping("sum(d.order_qty*d.unit_price)", "totalAmount") + .create(); + + List list2 = Ebean.find(OrderAggregate.class).setRawSql(rawSql) + .fetch("order", new FetchConfig().query()) + .fetch("order.details", new FetchConfig().query()).where().gt("order.id", 2).having() + .gt("totalAmount", 10).filterMany("order.details").gt("unitPrice", 2d).findList(); + + output(list2); + + } + + private void output(List list) { + + for (OrderAggregate oa : list) { + Double totalAmount = oa.getTotalAmount(); + Order order = oa.getOrder(); + Integer id = order.getId(); + Status status = order.getStatus(); + System.out.println("Order: " + id + " " + status + " total:" + totalAmount); + + Customer c = order.getCustomer(); + System.out.println(" -> customer: " + c.getId() + " " + c.getName()); + + // invoke lazy loading as this property + // has not populated originally + // order.getOrderDate(); } - - private void output(List list) { - - for (OrderAggregate oa : list) { - Double totalAmount = oa.getTotalAmount(); - Order order = oa.getOrder(); - Integer id = order.getId(); - Status status = order.getStatus(); - System.out.println("Order: "+id+" "+status+" total:"+totalAmount); - - Customer c = order.getCustomer(); - System.out.println(" -> customer: "+c.getId()+" "+c.getName()); - - // invoke lazy loading as this property - // has not populated originally - //order.getOrderDate(); - } - } + } } diff --git a/src/test/java/com/avaje/tests/rawsql/TestRawSqlPositionedParams.java b/src/test/java/com/avaje/tests/rawsql/TestRawSqlPositionedParams.java index ad1dc42b3..cf6fca526 100644 --- a/src/test/java/com/avaje/tests/rawsql/TestRawSqlPositionedParams.java +++ b/src/test/java/com/avaje/tests/rawsql/TestRawSqlPositionedParams.java @@ -2,8 +2,10 @@ package com.avaje.tests.rawsql; import java.util.List; -import junit.framework.TestCase; +import org.junit.Assert; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.Query; import com.avaje.ebean.RawSql; @@ -11,49 +13,43 @@ import com.avaje.ebean.RawSqlBuilder; import com.avaje.tests.model.basic.Customer; import com.avaje.tests.model.basic.ResetBasicData; -public class TestRawSqlPositionedParams extends TestCase { +public class TestRawSqlPositionedParams extends BaseTestCase { - public void test() { + @Test + public void test() { - ResetBasicData.reset(); - - RawSql rawSql = - RawSqlBuilder - .parse("select r.id, r.name from o_customer r where r.id >= ? and r.name like ?") - .columnMapping("r.id", "id") - .columnMapping("r.name", "name") - .create(); - - Query query = Ebean.find(Customer.class); - query.setRawSql(rawSql); - query.setParameter(1, 1); - query.setParameter(2, "R%"); - query.where().lt("id", 2001); - - List list = query.findList(); - - assertNotNull(list); - } - - - public void test_unparsed() { + ResetBasicData.reset(); - ResetBasicData.reset(); - - RawSql rawSql = - RawSqlBuilder - .unparsed("select r.id, r.name from o_customer r where r.id >= ? and r.name like ?") - .columnMapping("r.id", "id") - .columnMapping("r.name", "name") - .create(); - - Query query = Ebean.find(Customer.class); - query.setRawSql(rawSql); - query.setParameter(1, 1); - query.setParameter(2, "R%"); - - List list = query.findList(); - - assertNotNull(list); - } + RawSql rawSql = RawSqlBuilder + .parse("select r.id, r.name from o_customer r where r.id >= ? and r.name like ?") + .columnMapping("r.id", "id").columnMapping("r.name", "name").create(); + + Query query = Ebean.find(Customer.class); + query.setRawSql(rawSql); + query.setParameter(1, 1); + query.setParameter(2, "R%"); + query.where().lt("id", 2001); + + List list = query.findList(); + + Assert.assertNotNull(list); + } + + public void test_unparsed() { + + ResetBasicData.reset(); + + RawSql rawSql = RawSqlBuilder + .unparsed("select r.id, r.name from o_customer r where r.id >= ? and r.name like ?") + .columnMapping("r.id", "id").columnMapping("r.name", "name").create(); + + Query query = Ebean.find(Customer.class); + query.setRawSql(rawSql); + query.setParameter(1, 1); + query.setParameter(2, "R%"); + + List list = query.findList(); + + Assert.assertNotNull(list); + } } diff --git a/src/test/java/com/avaje/tests/rawsql/named/TestRawSqlNamedQuery.java b/src/test/java/com/avaje/tests/rawsql/named/TestRawSqlNamedQuery.java index e34406a23..63858286f 100644 --- a/src/test/java/com/avaje/tests/rawsql/named/TestRawSqlNamedQuery.java +++ b/src/test/java/com/avaje/tests/rawsql/named/TestRawSqlNamedQuery.java @@ -1,23 +1,25 @@ package com.avaje.tests.rawsql.named; -import junit.framework.TestCase; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.FetchConfig; import com.avaje.ebean.Query; import com.avaje.tests.model.basic.OrderAggregate; import com.avaje.tests.model.basic.ResetBasicData; -public class TestRawSqlNamedQuery extends TestCase { +public class TestRawSqlNamedQuery extends BaseTestCase { + + @Test + public void test() { + + ResetBasicData.reset(); + + Query q = Ebean.createNamedQuery(OrderAggregate.class, "total.amount"); + q.fetch("order", new FetchConfig().query()); + + q.findList(); + } - public void test(){ - - ResetBasicData.reset(); - - Query q = Ebean.createNamedQuery(OrderAggregate.class, "total.amount"); - q.fetch("order", new FetchConfig().query()); - - q.findList(); - } - } diff --git a/src/test/java/com/avaje/tests/saveassociation/TestSaveAssociation.java b/src/test/java/com/avaje/tests/saveassociation/TestSaveAssociation.java index fe9702493..6c5cb19b0 100644 --- a/src/test/java/com/avaje/tests/saveassociation/TestSaveAssociation.java +++ b/src/test/java/com/avaje/tests/saveassociation/TestSaveAssociation.java @@ -1,35 +1,33 @@ package com.avaje.tests.saveassociation; -import junit.framework.TestCase; - import org.junit.Assert; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.tests.model.basic.TSDetail; import com.avaje.tests.model.basic.TSMaster; -public class TestSaveAssociation extends TestCase { +public class TestSaveAssociation extends BaseTestCase { - public void test() { - - TSMaster m0 = new TSMaster(); - m0.setName("master1"); + @Test + public void test() { - Ebean.save(m0); + TSMaster m0 = new TSMaster(); + m0.setName("master1"); + + Ebean.save(m0); + + m0.addDetail(new TSDetail("master1 detail1")); + m0.addDetail(new TSDetail("master1 detail2")); + + Ebean.saveAssociation(m0, "details"); + + TSMaster m0Check = Ebean.find(TSMaster.class).fetch("details").where().idEq(m0.getId()) + .findUnique(); + + Assert.assertEquals(2, m0Check.getDetails().size()); + + } - m0.addDetail(new TSDetail("master1 detail1")); - m0.addDetail(new TSDetail("master1 detail2")); - - Ebean.saveAssociation(m0, "details"); - - - TSMaster m0Check = Ebean.find(TSMaster.class) - .fetch("details") - .where().idEq(m0.getId()) - .findUnique(); - - Assert.assertEquals(2, m0Check.getDetails().size()); - - } - } diff --git a/src/test/java/com/avaje/tests/singleTableInheritance/TestInheritQuery.java b/src/test/java/com/avaje/tests/singleTableInheritance/TestInheritQuery.java index d6a286bdc..048191c10 100644 --- a/src/test/java/com/avaje/tests/singleTableInheritance/TestInheritQuery.java +++ b/src/test/java/com/avaje/tests/singleTableInheritance/TestInheritQuery.java @@ -3,38 +3,43 @@ package com.avaje.tests.singleTableInheritance; import java.util.List; import junit.framework.Assert; -import junit.framework.TestCase; +import org.junit.Test; + +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.tests.singleTableInheritance.model.PalletLocation; import com.avaje.tests.singleTableInheritance.model.PalletLocationExternal; import com.avaje.tests.singleTableInheritance.model.Zone; import com.avaje.tests.singleTableInheritance.model.ZoneExternal; -public class TestInheritQuery extends TestCase { +public class TestInheritQuery extends BaseTestCase { - public void test() { + @Test + public void test() { - ZoneExternal zone = new ZoneExternal(); - zone.setAttribute("ABC"); - Ebean.save(zone); + ZoneExternal zone = new ZoneExternal(); + zone.setAttribute("ABC"); + Ebean.save(zone); - PalletLocationExternal location = new PalletLocationExternal(); - location.setZone(zone); - location.setAttribute("123"); - Ebean.save(location); + PalletLocationExternal location = new PalletLocationExternal(); + location.setZone(zone); + location.setAttribute("123"); + Ebean.save(location); + // This line should work too: + List locations = Ebean.find(PalletLocation.class).where().eq("zone", zone) + .findList(); + // List locations = + // Ebean.find(PalletLocation.class).where().eq("zone.id", + // zone.getId()).findList(); - // This line should work too: - List locations = Ebean.find(PalletLocation.class).where().eq("zone", zone).findList(); -// List locations = Ebean.find(PalletLocation.class).where().eq("zone.id", zone.getId()).findList(); - - Assert.assertNotNull(locations); - Assert.assertEquals(1, locations.size()); - PalletLocation rereadLoc = locations.get(0); - Assert.assertTrue(rereadLoc instanceof PalletLocation); - Zone rereadZone = rereadLoc.getZone(); - Assert.assertNotNull(rereadZone); - Assert.assertTrue(rereadZone instanceof ZoneExternal); - } + Assert.assertNotNull(locations); + Assert.assertEquals(1, locations.size()); + PalletLocation rereadLoc = locations.get(0); + Assert.assertTrue(rereadLoc instanceof PalletLocation); + Zone rereadZone = rereadLoc.getZone(); + Assert.assertNotNull(rereadZone); + Assert.assertTrue(rereadZone instanceof ZoneExternal); + } } \ No newline at end of file diff --git a/src/test/java/com/avaje/tests/sp/TestManyToManySaveTwice.java b/src/test/java/com/avaje/tests/sp/TestManyToManySaveTwice.java index 118d71bb9..6dbd90cab 100644 --- a/src/test/java/com/avaje/tests/sp/TestManyToManySaveTwice.java +++ b/src/test/java/com/avaje/tests/sp/TestManyToManySaveTwice.java @@ -4,38 +4,42 @@ import java.util.LinkedList; import java.util.List; import junit.framework.Assert; -import junit.framework.TestCase; +import org.junit.Test; + +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.tests.sp.model.car.Car; import com.avaje.tests.sp.model.car.Wheel; -public class TestManyToManySaveTwice extends TestCase { +public class TestManyToManySaveTwice extends BaseTestCase { - public void testNothing() { - } - - public void testInsertCarTwice() { - - List wheels = new LinkedList(); - wheels.add(new Wheel()); - wheels.add(new Wheel()); - wheels.add(new Wheel()); - wheels.add(new Wheel()); - - Car c = new Car(); - c.setWheels(wheels); - - Ebean.save(c); //NOTE 1ST SAVE + @Test + public void testNothing() { + } - Assert.assertFalse("No ID assigned!", c.getId() == null); - - Ebean.save(c); //NOTE 2ND SAVE - - List allCars = Ebean.find(Car.class).findList(); - Assert.assertEquals("Inserted 1 car, received more/less!", 1, allCars.size()); - - List allWheels = Ebean.find(Wheel.class).findList(); - Assert.assertEquals("Inserted 4 wheels, received more/less!", 4, allWheels.size()); - } + @Test + public void testInsertCarTwice() { + + List wheels = new LinkedList(); + wheels.add(new Wheel()); + wheels.add(new Wheel()); + wheels.add(new Wheel()); + wheels.add(new Wheel()); + + Car c = new Car(); + c.setWheels(wheels); + + Ebean.save(c); // NOTE 1ST SAVE + + Assert.assertFalse("No ID assigned!", c.getId() == null); + + Ebean.save(c); // NOTE 2ND SAVE + + List allCars = Ebean.find(Car.class).findList(); + Assert.assertEquals("Inserted 1 car, received more/less!", 1, allCars.size()); + + List allWheels = Ebean.find(Wheel.class).findList(); + Assert.assertEquals("Inserted 4 wheels, received more/less!", 4, allWheels.size()); + } } diff --git a/src/test/java/com/avaje/tests/subclass/TestSubclassNewInstance.java b/src/test/java/com/avaje/tests/subclass/TestSubclassNewInstance.java deleted file mode 100644 index 1e32508ca..000000000 --- a/src/test/java/com/avaje/tests/subclass/TestSubclassNewInstance.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.avaje.tests.subclass; - -import junit.framework.TestCase; - -import org.junit.Assert; - -import com.avaje.ebean.Ebean; -import com.avaje.ebean.bean.EntityBean; -import com.avaje.ebean.config.GlobalProperties; -import com.avaje.tests.model.basic.EBasicNoDefaultConstructor; - -public class TestSubclassNewInstance extends TestCase { - - public void test() { - - GlobalProperties.put("ebean.classes", EBasicNoDefaultConstructor.class.toString()); - - EBasicNoDefaultConstructor inst = new EBasicNoDefaultConstructor(12,"banana"); - - if (inst instanceof EntityBean){ - // using enhancement so can't run test - return; - } - - EBasicNoDefaultConstructor inst2 = Ebean.getServer(null).createEntityBean(EBasicNoDefaultConstructor.class); - - Assert.assertTrue(inst2 instanceof EntityBean); - - EntityBean eb = (EntityBean)inst2; - Object inst3 = eb._ebean_newInstance(); - - Assert.assertTrue(inst3 instanceof EntityBean); - Assert.assertTrue(inst3 instanceof EBasicNoDefaultConstructor); - - EBasicNoDefaultConstructor e3 = (EBasicNoDefaultConstructor)inst3; - e3.getName(); - - - } -} diff --git a/src/test/java/com/avaje/tests/text/csv/TestCsvReader.java b/src/test/java/com/avaje/tests/text/csv/TestCsvReader.java index 7af1250ec..10028e26f 100644 --- a/src/test/java/com/avaje/tests/text/csv/TestCsvReader.java +++ b/src/test/java/com/avaje/tests/text/csv/TestCsvReader.java @@ -4,45 +4,44 @@ import java.io.File; import java.io.FileReader; import java.util.Locale; -import junit.framework.TestCase; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.text.csv.CsvReader; import com.avaje.tests.model.basic.Customer; import com.avaje.tests.model.basic.ResetBasicData; -public class TestCsvReader extends TestCase { +public class TestCsvReader extends BaseTestCase { - public void test() { + @Test + public void test() { - ResetBasicData.reset(); - - try { - File f = new File("src/test/resources/test1.csv"); + ResetBasicData.reset(); - FileReader reader = new FileReader(f); + try { + File f = new File("src/test/resources/test1.csv"); - - CsvReader csvReader = Ebean.createCsvReader(Customer.class); + FileReader reader = new FileReader(f); - csvReader.setPersistBatchSize(2); - - csvReader.addIgnore(); - //csvReader.addProperty("id"); - csvReader.addProperty("status"); - csvReader.addProperty("name"); - csvReader.addDateTime("anniversary", "dd-MMM-yyyy", Locale.GERMAN); - csvReader.addProperty("billingAddress.line1"); - csvReader.addProperty("billingAddress.city"); - csvReader.addReference("billingAddress.country.code"); + CsvReader csvReader = Ebean.createCsvReader(Customer.class); - - csvReader.process(reader); - - - } catch (Exception e) { - throw new RuntimeException(e); - } - } + csvReader.setPersistBatchSize(2); + + csvReader.addIgnore(); + // csvReader.addProperty("id"); + csvReader.addProperty("status"); + csvReader.addProperty("name"); + csvReader.addDateTime("anniversary", "dd-MMM-yyyy", Locale.GERMAN); + csvReader.addProperty("billingAddress.line1"); + csvReader.addProperty("billingAddress.city"); + csvReader.addReference("billingAddress.country.code"); + + csvReader.process(reader); + + } catch (Exception e) { + throw new RuntimeException(e); + } + } } diff --git a/src/test/java/com/avaje/tests/text/csv/TestCsvReaderWithCallback.java b/src/test/java/com/avaje/tests/text/csv/TestCsvReaderWithCallback.java index b447b2d8d..c14c6cf97 100644 --- a/src/test/java/com/avaje/tests/text/csv/TestCsvReaderWithCallback.java +++ b/src/test/java/com/avaje/tests/text/csv/TestCsvReaderWithCallback.java @@ -4,8 +4,9 @@ import java.io.File; import java.io.FileReader; import java.util.Locale; -import junit.framework.TestCase; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.EbeanServer; import com.avaje.ebean.text.csv.CsvReader; @@ -13,46 +14,47 @@ import com.avaje.ebean.text.csv.DefaultCsvCallback; import com.avaje.tests.model.basic.Customer; import com.avaje.tests.model.basic.ResetBasicData; -public class TestCsvReaderWithCallback extends TestCase { +public class TestCsvReaderWithCallback extends BaseTestCase { - public void test() throws Throwable { + @Test + public void test() throws Throwable { - ResetBasicData.reset(); + ResetBasicData.reset(); - File f = new File("src/test/resources/test1.csv"); + File f = new File("src/test/resources/test1.csv"); - FileReader reader = new FileReader(f); + FileReader reader = new FileReader(f); - final EbeanServer server = Ebean.getServer(null); + final EbeanServer server = Ebean.getServer(null); - CsvReader csvReader = server.createCsvReader(Customer.class); + CsvReader csvReader = server.createCsvReader(Customer.class); - csvReader.setPersistBatchSize(2); - csvReader.setLogInfoFrequency(3); + csvReader.setPersistBatchSize(2); + csvReader.setLogInfoFrequency(3); - csvReader.addIgnore(); - // csvReader.addProperty("id"); - csvReader.addProperty("status"); - csvReader.addProperty("name"); - csvReader.addDateTime("anniversary", "dd-MMM-yyyy", Locale.GERMAN); - csvReader.addProperty("billingAddress.line1"); - csvReader.addProperty("billingAddress.city"); - // processor.addReference("billingAddress.country.code"); - csvReader.addProperty("billingAddress.country.code"); + csvReader.addIgnore(); + // csvReader.addProperty("id"); + csvReader.addProperty("status"); + csvReader.addProperty("name"); + csvReader.addDateTime("anniversary", "dd-MMM-yyyy", Locale.GERMAN); + csvReader.addProperty("billingAddress.line1"); + csvReader.addProperty("billingAddress.city"); + // processor.addReference("billingAddress.country.code"); + csvReader.addProperty("billingAddress.country.code"); - csvReader.process(reader, new DefaultCsvCallback() { + csvReader.process(reader, new DefaultCsvCallback() { - @Override - public void processBean(int row, String[] lineContent, Customer cust) { + @Override + public void processBean(int row, String[] lineContent, Customer cust) { - System.out.println(row + "> " + cust + " " + cust.getBillingAddress()); + System.out.println(row + "> " + cust + " " + cust.getBillingAddress()); - server.save(cust.getBillingAddress(), transaction); - server.save(cust, transaction); - } + server.save(cust.getBillingAddress(), transaction); + server.save(cust, transaction); + } - }); + }); - } + } } diff --git a/src/test/java/com/avaje/tests/text/csv/TestTimeStringParser.java b/src/test/java/com/avaje/tests/text/csv/TestTimeStringParser.java index 0e6a98a67..2cc0449ae 100644 --- a/src/test/java/com/avaje/tests/text/csv/TestTimeStringParser.java +++ b/src/test/java/com/avaje/tests/text/csv/TestTimeStringParser.java @@ -2,36 +2,37 @@ package com.avaje.tests.text.csv; import java.sql.Time; -import junit.framework.TestCase; - import org.junit.Assert; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.text.TimeStringParser; -public class TestTimeStringParser extends TestCase { +public class TestTimeStringParser extends BaseTestCase { - public void testSimple() { - - Time t = (Time)TimeStringParser.get().parse("12:00"); - Assert.assertNotNull(t); - - t = (Time)TimeStringParser.get().parse("12:00:12"); - Assert.assertNotNull(t); - - expectError("12"); - expectError("12:"); - expectError("12:00:"); - expectError("12:00::"); - expectError("12:00:00:"); + @Test + public void testSimple() { - } - - private void expectError(String value) { - try { - TimeStringParser.get().parse(value); - Assert.assertTrue(false); - } catch (IllegalArgumentException e){ - Assert.assertTrue(true); - } - } + Time t = (Time) TimeStringParser.get().parse("12:00"); + Assert.assertNotNull(t); + + t = (Time) TimeStringParser.get().parse("12:00:12"); + Assert.assertNotNull(t); + + expectError("12"); + expectError("12:"); + expectError("12:00:"); + expectError("12:00::"); + expectError("12:00:00:"); + + } + + private void expectError(String value) { + try { + TimeStringParser.get().parse(value); + Assert.assertTrue(false); + } catch (IllegalArgumentException e) { + Assert.assertTrue(true); + } + } } diff --git a/src/test/java/com/avaje/tests/text/json/TestJsonBeanWithTimeZone.java b/src/test/java/com/avaje/tests/text/json/TestJsonBeanWithTimeZone.java index 02c32302b..cde702229 100644 --- a/src/test/java/com/avaje/tests/text/json/TestJsonBeanWithTimeZone.java +++ b/src/test/java/com/avaje/tests/text/json/TestJsonBeanWithTimeZone.java @@ -2,51 +2,50 @@ package com.avaje.tests.text.json; import java.util.TimeZone; -import junit.framework.TestCase; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import org.junit.Assert; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; -import com.avaje.ebean.EbeanServer; import com.avaje.ebean.text.json.JsonContext; import com.avaje.tests.model.basic.BeanWithTimeZone; -public class TestJsonBeanWithTimeZone extends TestCase { +public class TestJsonBeanWithTimeZone extends BaseTestCase { - private static final Logger logger = LoggerFactory.getLogger(TestJsonBeanWithTimeZone.class); - + //private static final Logger logger = LoggerFactory.getLogger(TestJsonBeanWithTimeZone.class); + + @Test public void testSimple() { - + TimeZone defaultTimeZone = TimeZone.getDefault(); - + String[] ids = TimeZone.getAvailableIDs(defaultTimeZone.getRawOffset()); System.out.println(ids); - + String id = defaultTimeZone.getID(); TimeZone timeZone = TimeZone.getTimeZone(id); - assertEquals(defaultTimeZone, timeZone); - + Assert.assertEquals(defaultTimeZone, timeZone); + BeanWithTimeZone bean = new BeanWithTimeZone(); bean.setName("foo"); bean.setTimezone(TimeZone.getDefault()); - + JsonContext jsonContext = Ebean.createJsonContext(); String jsonContent = jsonContext.toJsonString(bean); - + BeanWithTimeZone bean2 = jsonContext.toBean(BeanWithTimeZone.class, jsonContent); - - assertEquals(bean.getTimezone(), bean2.getTimezone()); - + + Assert.assertEquals(bean.getTimezone(), bean2.getTimezone()); + Ebean.save(bean); BeanWithTimeZone bean3 = Ebean.find(BeanWithTimeZone.class, bean.getId()); - assertEquals(bean.getTimezone(), bean3.getTimezone()); + Assert.assertEquals(bean.getTimezone(), bean3.getTimezone()); + + // EbeanServer server = Ebean.getServer(null); + // server.shutdown(); + // logger.info("shudown server manually, JVM shutdown hook fires next"); - // EbeanServer server = Ebean.getServer(null); - //server.shutdown(); - //logger.info("shudown server manually, JVM shutdown hook fires next"); - } - + } diff --git a/src/test/java/com/avaje/tests/text/json/TestJsonInheritanceDiscriminator.java b/src/test/java/com/avaje/tests/text/json/TestJsonInheritanceDiscriminator.java index 6f486ad4b..2ccad73d2 100644 --- a/src/test/java/com/avaje/tests/text/json/TestJsonInheritanceDiscriminator.java +++ b/src/test/java/com/avaje/tests/text/json/TestJsonInheritanceDiscriminator.java @@ -3,60 +3,60 @@ package com.avaje.tests.text.json; import java.sql.Date; import java.util.List; -import junit.framework.TestCase; +import org.junit.Assert; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.text.json.JsonContext; import com.avaje.tests.model.basic.Animal; import com.avaje.tests.model.basic.Cat; import com.avaje.tests.model.basic.Dog; -public class TestJsonInheritanceDiscriminator extends TestCase { +public class TestJsonInheritanceDiscriminator extends BaseTestCase { + @Test public void testNoDiscriminator() { - + Cat cat = new Cat(); cat.setName("Gemma"); - + Ebean.save(cat); - + JsonContext json = Ebean.createJsonContext(); String jsonContent = json.toJsonString(cat); - + Cat cat2 = json.toBean(Cat.class, jsonContent); - - assertEquals(cat.getId(), cat2.getId()); - assertEquals(cat.getName(), cat2.getName()); - assertEquals(cat.getVersion(), cat2.getVersion()); - - + + Assert.assertEquals(cat.getId(), cat2.getId()); + Assert.assertEquals(cat.getName(), cat2.getName()); + Assert.assertEquals(cat.getVersion(), cat2.getVersion()); + String noDiscriminator = "{\"id\":1,\"name\":\"Gemma\",\"version\":1}"; - + Cat cat3 = json.toBean(Cat.class, noDiscriminator); - - assertEquals(cat.getId(), cat3.getId()); - assertEquals(cat.getName(), cat3.getName()); - assertEquals(cat.getVersion(), cat3.getVersion()); - - + + Assert.assertEquals(cat.getId(), cat3.getId()); + Assert.assertEquals(cat.getName(), cat3.getName()); + Assert.assertEquals(cat.getVersion(), cat3.getVersion()); + Dog dog = new Dog(); dog.setRegistrationNumber("ABC123"); dog.setDateOfBirth(new Date(System.currentTimeMillis())); - + Ebean.save(dog); - + List animals = Ebean.find(Animal.class).findList(); - + String listJson = json.toJsonString(animals, false); - + List animals2 = json.toList(Animal.class, listJson); - assertEquals(animals.size(), animals2.size()); - + Assert.assertEquals(animals.size(), animals2.size()); + String noDiscList = "[{\"id\":1,\"name\":\"Gemma\",\"version\":1},{\"name\":\"PussCat\",\"version\":1},{\"species\":\"CAT\",\"name\":\"PussCat\",\"version\":1}]"; List cats = json.toList(Cat.class, noDiscList); - assertEquals(cats.size(), 3); - - + Assert.assertEquals(cats.size(), 3); + } - + } diff --git a/src/test/java/com/avaje/tests/text/json/TestJsonMap.java b/src/test/java/com/avaje/tests/text/json/TestJsonMap.java index 13fca2a81..2f47a675c 100644 --- a/src/test/java/com/avaje/tests/text/json/TestJsonMap.java +++ b/src/test/java/com/avaje/tests/text/json/TestJsonMap.java @@ -3,43 +3,42 @@ package com.avaje.tests.text.json; import java.io.IOException; import java.util.Map; -import junit.framework.TestCase; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.text.json.JsonContext; import com.avaje.ebean.text.json.JsonWriteOptions; import com.avaje.tests.model.basic.Customer; import com.avaje.tests.model.basic.ResetBasicData; -public class TestJsonMap extends TestCase { +public class TestJsonMap extends BaseTestCase { + + @Test + public void test() throws IOException { + + ResetBasicData.reset(); + + Map map = Ebean.find(Customer.class).findMap("id", String.class); + + JsonContext jsonContext = Ebean.createJsonContext(); + JsonWriteOptions jsonWriteOptions = JsonWriteOptions.parsePath("(id,status,name)"); + + String jsonString = jsonContext.toJsonString(map, true, jsonWriteOptions); + System.out.println(jsonString); + + jsonContext = Ebean.createJsonContext(); + jsonWriteOptions = JsonWriteOptions + .parsePath("(id,status,name,shippingAddress(id,line1,city),billingAddress(*),contacts(*))"); + // jsonWriteOptions = + // JsonWriteOptions.parsePath("(id,status,billingAddress(*))"); - public void test() throws IOException { - - ResetBasicData.reset(); - - Map map = Ebean.find(Customer.class) - .findMap("id", String.class); - - JsonContext jsonContext = Ebean.createJsonContext(); - JsonWriteOptions jsonWriteOptions = JsonWriteOptions.parsePath("(id,status,name)"); - - String jsonString = jsonContext.toJsonString(map, true, jsonWriteOptions); - System.out.println(jsonString); - - jsonContext = Ebean.createJsonContext(); - jsonWriteOptions = JsonWriteOptions.parsePath("(id,status,name,shippingAddress(id,line1,city),billingAddress(*),contacts(*))"); - //jsonWriteOptions = JsonWriteOptions.parsePath("(id,status,billingAddress(*))"); - jsonString = jsonContext.toJsonString(map, true, jsonWriteOptions); System.out.println(jsonString); - - - - - //Assert.assertTrue(jsonString.indexOf("{\"1\":") > -1); - //Assert.assertTrue(jsonString.indexOf("{\"id\":1,\"status\":\"NEW\",\"name\":\"Rob\"},") > -1); - } - - - + + // Assert.assertTrue(jsonString.indexOf("{\"1\":") > -1); + // Assert.assertTrue(jsonString.indexOf("{\"id\":1,\"status\":\"NEW\",\"name\":\"Rob\"},") + // > -1); + } + } diff --git a/src/test/java/com/avaje/tests/text/json/TestJsonSimple.java b/src/test/java/com/avaje/tests/text/json/TestJsonSimple.java index 6c33a9aff..9128e7ce0 100644 --- a/src/test/java/com/avaje/tests/text/json/TestJsonSimple.java +++ b/src/test/java/com/avaje/tests/text/json/TestJsonSimple.java @@ -9,66 +9,64 @@ import java.io.Reader; import java.util.LinkedHashMap; import java.util.Map; -import junit.framework.TestCase; - import org.junit.Assert; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.text.json.JsonContext; import com.avaje.ebean.text.json.JsonElement; import com.avaje.ebean.text.json.JsonElementObject; import com.avaje.ebeaninternal.server.text.json.InternalJsonParser; -public class TestJsonSimple extends TestCase { +public class TestJsonSimple extends BaseTestCase { - public void test() throws IOException { - - boolean b = JsonElement.class.isAssignableFrom(JsonElementObject.class); - Assert.assertTrue(b); - - InputStream is = this.getClass().getResourceAsStream("/example1.json"); - - final Reader reader = new BufferedReader(new InputStreamReader(is, "UTF-8")); - LineNumberReader lineReader = new LineNumberReader(reader); - - String readLine = null; - - StringBuilder sb = new StringBuilder(); - while((readLine = lineReader.readLine()) != null){ - sb.append(readLine); - } - - String jsonText = sb.toString(); - - JsonElement el = InternalJsonParser.parse(jsonText); - - System.out.println("Got "+el); - - - JsonElement e2 = InternalJsonParser.parse("{\"a\":12, \"name\":{\"first\":\"rob\", \"last\":\"byg\"}}"); + @Test + public void test() throws IOException { - Assert.assertEquals(Double.valueOf(12),e2.eval("a")); - Assert.assertEquals(12,e2.evalInt("a")); - Assert.assertEquals("rob",e2.evalString("name.first")); - - Assert.assertEquals("byg",e2.evalString("name.last")); - - Map m = new LinkedHashMap(); - m.put("hello","rob"); - m.put("test","me"); - - JsonContext jsonContext = Ebean.createJsonContext(); - String jsonString = jsonContext.toJsonString(m, true); - System.out.println(jsonString); + boolean b = JsonElement.class.isAssignableFrom(JsonElementObject.class); + Assert.assertTrue(b); + + InputStream is = this.getClass().getResourceAsStream("/example1.json"); + + final Reader reader = new BufferedReader(new InputStreamReader(is, "UTF-8")); + LineNumberReader lineReader = new LineNumberReader(reader); + + String readLine = null; + + StringBuilder sb = new StringBuilder(); + while ((readLine = lineReader.readLine()) != null) { + sb.append(readLine); + } + + String jsonText = sb.toString(); + + JsonElement el = InternalJsonParser.parse(jsonText); + + System.out.println("Got " + el); + + JsonElement e2 = InternalJsonParser + .parse("{\"a\":12, \"name\":{\"first\":\"rob\", \"last\":\"byg\"}}"); + + Assert.assertEquals(Double.valueOf(12), e2.eval("a")); + Assert.assertEquals(12, e2.evalInt("a")); + Assert.assertEquals("rob", e2.evalString("name.first")); + + Assert.assertEquals("byg", e2.evalString("name.last")); + + Map m = new LinkedHashMap(); + m.put("hello", "rob"); + m.put("test", "me"); + + JsonContext jsonContext = Ebean.createJsonContext(); + String jsonString = jsonContext.toJsonString(m, true); + System.out.println(jsonString); + + String s = "{\"parishId\":\"18\",\"contentId\":null,\"contentStatus\":null,\"contentType\":\"pg-hello\",\"content\":\"

\n\tSomeThing

\n\"}"; + + JsonElement jsonElement = InternalJsonParser.parse(s); + Assert.assertNotNull(jsonElement); + + } - - String s = "{\"parishId\":\"18\",\"contentId\":null,\"contentStatus\":null,\"contentType\":\"pg-hello\",\"content\":\"

\n\tSomeThing

\n\"}"; - - JsonElement jsonElement = InternalJsonParser.parse(s); - Assert.assertNotNull(jsonElement); - - } - - - } diff --git a/src/test/java/com/avaje/tests/text/json/TestJsonSomeEnumWithToString.java b/src/test/java/com/avaje/tests/text/json/TestJsonSomeEnumWithToString.java index 8f0581cae..f8c0e6816 100644 --- a/src/test/java/com/avaje/tests/text/json/TestJsonSomeEnumWithToString.java +++ b/src/test/java/com/avaje/tests/text/json/TestJsonSomeEnumWithToString.java @@ -1,31 +1,33 @@ package com.avaje.tests.text.json; +import org.junit.Assert; +import org.junit.Test; + +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.text.json.JsonContext; import com.avaje.tests.model.basic.SomeEnum; import com.avaje.tests.model.basic.SomeEnumBean; -import junit.framework.TestCase; +public class TestJsonSomeEnumWithToString extends BaseTestCase { -public class TestJsonSomeEnumWithToString extends TestCase { - + @Test public void testJsonConversion() { - + SomeEnumBean bean = new SomeEnumBean(); bean.setId(100l); bean.setName("Some name"); bean.setSomeEnum(SomeEnum.ALPHA); - + JsonContext json = Ebean.createJsonContext(); String jsonContent = json.toJsonString(bean); - + SomeEnumBean bean2 = json.toBean(SomeEnumBean.class, jsonContent); - - assertEquals(bean.getSomeEnum(), bean2.getSomeEnum()); - assertEquals(bean.getName(), bean2.getName()); - assertEquals(bean.getId(), bean2.getId()); - + + Assert.assertEquals(bean.getSomeEnum(), bean2.getSomeEnum()); + Assert.assertEquals(bean.getName(), bean2.getName()); + Assert.assertEquals(bean.getId(), bean2.getId()); + } - } diff --git a/src/test/java/com/avaje/tests/text/json/TestTextJsonBeanReadVisitor.java b/src/test/java/com/avaje/tests/text/json/TestTextJsonBeanReadVisitor.java index 86fc1edf1..2bddf7dd2 100644 --- a/src/test/java/com/avaje/tests/text/json/TestTextJsonBeanReadVisitor.java +++ b/src/test/java/com/avaje/tests/text/json/TestTextJsonBeanReadVisitor.java @@ -5,8 +5,10 @@ import java.util.List; import java.util.Map; import junit.framework.Assert; -import junit.framework.TestCase; +import org.junit.Test; + +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.text.json.JsonContext; import com.avaje.ebean.text.json.JsonElement; @@ -17,67 +19,64 @@ import com.avaje.tests.model.basic.Contact; import com.avaje.tests.model.basic.Customer; import com.avaje.tests.model.basic.ResetBasicData; -public class TestTextJsonBeanReadVisitor extends TestCase { +public class TestTextJsonBeanReadVisitor extends BaseTestCase { - public void test() { - - ResetBasicData.reset(); - - List list = Ebean.find(Customer.class) - .select("id, name, status, shippingAddress") - .fetch("billingAddress","line1, city") - .fetch("billingAddress.country","*") - .fetch("contacts", "firstName,email") - .order().desc("id") - .findList(); - - JsonContext json = Ebean.createJsonContext(); - - JsonReadOptions options = new JsonReadOptions(); - options.addRootVisitor(new CVisitor()); - options.addVisitor("contacts", new ContactVisitor()); - options.addVisitor("billingAddress", new AVisitor()); - options.addVisitor("shippingAddress", new ASVisitor()); - - String s = json.toJsonString(list, true); - System.out.println(s); - - List mList = json.toList(Customer.class, s, options); - System.out.println("VIA STRING: "+mList); - - StringReader reader = new StringReader(s); - List mList2 = json.toList(Customer.class, reader); - System.out.println("VIA READER: "+mList2); - - Assert.assertEquals(mList.size(), mList2.size()); + @Test + public void test() { + + ResetBasicData.reset(); + + List list = Ebean.find(Customer.class).select("id, name, status, shippingAddress") + .fetch("billingAddress", "line1, city").fetch("billingAddress.country", "*") + .fetch("contacts", "firstName,email").order().desc("id").findList(); + + JsonContext json = Ebean.createJsonContext(); + + JsonReadOptions options = new JsonReadOptions(); + options.addRootVisitor(new CVisitor()); + options.addVisitor("contacts", new ContactVisitor()); + options.addVisitor("billingAddress", new AVisitor()); + options.addVisitor("shippingAddress", new ASVisitor()); + + String s = json.toJsonString(list, true); + System.out.println(s); + + List mList = json.toList(Customer.class, s, options); + System.out.println("VIA STRING: " + mList); + + StringReader reader = new StringReader(s); + List mList2 = json.toList(Customer.class, reader); + System.out.println("VIA READER: " + mList2); + + Assert.assertEquals(mList.size(), mList2.size()); + } + + private static class CVisitor implements JsonReadBeanVisitor { + + public void visit(Customer bean, Map unmapped) { + System.out.println("visit customer: " + bean); } - - private static class CVisitor implements JsonReadBeanVisitor { + } - public void visit(Customer bean, Map unmapped) { - System.out.println("visit customer: "+bean); - } + private static class AVisitor implements JsonReadBeanVisitor
{ + + public void visit(Address bean, Map unmapped) { + System.out.println("visit billing address: " + bean); } + } - private static class AVisitor implements JsonReadBeanVisitor
{ + private static class ASVisitor implements JsonReadBeanVisitor
{ - public void visit(Address bean, Map unmapped) { - System.out.println("visit billing address: "+bean); - } + public void visit(Address bean, Map unmapped) { + System.out.println("visit shipping address: " + bean); } + } - private static class ASVisitor implements JsonReadBeanVisitor
{ + private static class ContactVisitor implements JsonReadBeanVisitor { - public void visit(Address bean, Map unmapped) { - System.out.println("visit shipping address: "+bean); - } - } - - private static class ContactVisitor implements JsonReadBeanVisitor { - - public void visit(Contact bean, Map unmapped) { - System.out.println("visit contact: "+bean); - } + public void visit(Contact bean, Map unmapped) { + System.out.println("visit contact: " + bean); } + } } diff --git a/src/test/java/com/avaje/tests/text/json/TestTextJsonBeanReadVisitorWithCustomJson.java b/src/test/java/com/avaje/tests/text/json/TestTextJsonBeanReadVisitorWithCustomJson.java index 0fd8d1074..3f8bfa305 100644 --- a/src/test/java/com/avaje/tests/text/json/TestTextJsonBeanReadVisitorWithCustomJson.java +++ b/src/test/java/com/avaje/tests/text/json/TestTextJsonBeanReadVisitorWithCustomJson.java @@ -5,8 +5,10 @@ import java.util.List; import java.util.Map; import junit.framework.Assert; -import junit.framework.TestCase; +import org.junit.Test; + +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.BeanState; import com.avaje.ebean.Ebean; import com.avaje.ebean.text.json.JsonContext; @@ -21,87 +23,83 @@ import com.avaje.tests.model.basic.Contact; import com.avaje.tests.model.basic.Customer; import com.avaje.tests.model.basic.ResetBasicData; -public class TestTextJsonBeanReadVisitorWithCustomJson extends TestCase { +public class TestTextJsonBeanReadVisitorWithCustomJson extends BaseTestCase { - public void test() { - - ResetBasicData.reset(); - - List list = Ebean.find(Customer.class) - .select("id, name, status, shippingAddress") - .fetch("billingAddress","line1, city") - .fetch("billingAddress.country","*") - .fetch("contacts", "firstName,email") - .order().desc("id") - .findList(); - - JsonContext json = Ebean.createJsonContext(); - - - JsonWriteOptions writeOptions = new JsonWriteOptions(); - writeOptions.setRootPathVisitor(new JsonWriteBeanVisitor() { + @Test + public void test() { - public void visit(Customer bean, JsonWriter ctx) { - System.out.println("write visit customer: "+bean); - ctx.appendRawValue("dummyCust", "34"); - ctx.appendRawValue("smallCustObject", "{\"a\":34,\"b\":\"asdasdasd\"}"); - } - }); - - writeOptions.setPathProperties("contacts", "firstName,id"); - writeOptions.setPathVisitor("contacts", new JsonWriteBeanVisitor() { + ResetBasicData.reset(); - public void visit(Contact bean, JsonWriter ctx) { - System.out.println("write additional custom json on customer: "+bean); - ctx.appendRawValue("dummy", " 3400"+bean.getId()+""); - ctx.appendRawValue("smallObject", "{\"contactA\":34,\"contactB\":\"banana\"}"); - } - - }); + List list = Ebean.find(Customer.class).select("id, name, status, shippingAddress") + .fetch("billingAddress", "line1, city").fetch("billingAddress.country", "*") + .fetch("contacts", "firstName,email").order().desc("id").findList(); - String s = json.toJsonString(list, true, writeOptions); - System.out.println(s); + JsonContext json = Ebean.createJsonContext(); - JsonReadOptions readOptions = new JsonReadOptions(); - readOptions.addRootVisitor(new CVisitor()); - readOptions.addVisitor("contacts", new ContactVisitor()); - - StringReader reader = new StringReader(s); - List mList2 = json.toList(Customer.class, reader, readOptions); - System.out.println("VIA READER: "+mList2); + JsonWriteOptions writeOptions = new JsonWriteOptions(); + writeOptions.setRootPathVisitor(new JsonWriteBeanVisitor() { - for (Customer customer : mList2) { - BeanState beanState = Ebean.getBeanState(customer); - Assert.assertNotNull(beanState.getLoadedProps()); - Assert.assertTrue(beanState.getLoadedProps().contains("status")); - Assert.assertTrue(beanState.getLoadedProps().contains("smallnote")); - Assert.assertFalse(beanState.getLoadedProps().contains("anniversary")); - - String note = customer.getSmallnote(); - Assert.assertEquals("Set in Json Visitor", note); - } + public void visit(Customer bean, JsonWriter ctx) { + System.out.println("write visit customer: " + bean); + ctx.appendRawValue("dummyCust", "34"); + ctx.appendRawValue("smallCustObject", "{\"a\":34,\"b\":\"asdasdasd\"}"); + } + }); - } - - private static class CVisitor implements JsonReadBeanVisitor { + writeOptions.setPathProperties("contacts", "firstName,id"); + writeOptions.setPathVisitor("contacts", new JsonWriteBeanVisitor() { - public void visit(Customer bean, Map unmapped) { - System.out.println("visit customer: "+bean); - bean.setSmallnote("Set in Json Visitor"); - } + public void visit(Contact bean, JsonWriter ctx) { + System.out.println("write additional custom json on customer: " + bean); + ctx.appendRawValue("dummy", " 3400" + bean.getId() + ""); + ctx.appendRawValue("smallObject", "{\"contactA\":34,\"contactB\":\"banana\"}"); + } + + }); + + String s = json.toJsonString(list, true, writeOptions); + System.out.println(s); + + JsonReadOptions readOptions = new JsonReadOptions(); + readOptions.addRootVisitor(new CVisitor()); + readOptions.addVisitor("contacts", new ContactVisitor()); + + StringReader reader = new StringReader(s); + List mList2 = json.toList(Customer.class, reader, readOptions); + System.out.println("VIA READER: " + mList2); + + for (Customer customer : mList2) { + BeanState beanState = Ebean.getBeanState(customer); + Assert.assertNotNull(beanState.getLoadedProps()); + Assert.assertTrue(beanState.getLoadedProps().contains("status")); + Assert.assertTrue(beanState.getLoadedProps().contains("smallnote")); + Assert.assertFalse(beanState.getLoadedProps().contains("anniversary")); + + String note = customer.getSmallnote(); + Assert.assertEquals("Set in Json Visitor", note); } - private static class ContactVisitor implements JsonReadBeanVisitor { + } - public void visit(Contact bean, Map unmapped) { - System.out.println("visit contact: "+bean); - Assert.assertNotNull(unmapped); - JsonElement dummyEl = unmapped.get("dummy"); - JsonElement smallObjEl = unmapped.get("smallObject"); - JsonElementNumber dummyNum = (JsonElementNumber)dummyEl; - Assert.assertTrue(dummyNum.getValue().startsWith("3400")); - Assert.assertNotNull(smallObjEl); - } + private static class CVisitor implements JsonReadBeanVisitor { + + public void visit(Customer bean, Map unmapped) { + System.out.println("visit customer: " + bean); + bean.setSmallnote("Set in Json Visitor"); } + } + + private static class ContactVisitor implements JsonReadBeanVisitor { + + public void visit(Contact bean, Map unmapped) { + System.out.println("visit contact: " + bean); + Assert.assertNotNull(unmapped); + JsonElement dummyEl = unmapped.get("dummy"); + JsonElement smallObjEl = unmapped.get("smallObject"); + JsonElementNumber dummyNum = (JsonElementNumber) dummyEl; + Assert.assertTrue(dummyNum.getValue().startsWith("3400")); + Assert.assertNotNull(smallObjEl); + } + } } diff --git a/src/test/java/com/avaje/tests/text/json/TestTextJsonCompoundType.java b/src/test/java/com/avaje/tests/text/json/TestTextJsonCompoundType.java index fb90c641b..c464576eb 100644 --- a/src/test/java/com/avaje/tests/text/json/TestTextJsonCompoundType.java +++ b/src/test/java/com/avaje/tests/text/json/TestTextJsonCompoundType.java @@ -2,10 +2,10 @@ package com.avaje.tests.text.json; import java.util.Currency; -import junit.framework.TestCase; - import org.junit.Assert; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.text.json.JsonContext; import com.avaje.tests.model.ddd.DExhEntity; @@ -16,41 +16,38 @@ import com.avaje.tests.model.ivo.Money; import com.avaje.tests.model.ivo.Oid; import com.avaje.tests.model.ivo.Rate; -public class TestTextJsonCompoundType extends TestCase { +public class TestTextJsonCompoundType extends BaseTestCase { - public void test() { - - Currency NZD = Currency.getInstance("NZD"); - - DPerson p = new DPerson(); - p.setFirstName("first"); - p.setLastName("last"); - p.setSalary(new Money("12200")); - p.setCmoney(new CMoney(new Money("12"), NZD)); + @Test + public void test() { - - JsonContext jsonContext = Ebean.createJsonContext(); - - String jsonString = jsonContext.toJsonString(p, true); - System.out.println(jsonString); - - - - CMoney cm = new CMoney(new Money("12"), NZD); - - Rate rate = new Rate(0.1); - ExhangeCMoneyRate exh = new ExhangeCMoneyRate(rate, cm); - - DExhEntity ep = new DExhEntity(); - ep.setOid(new Oid(112)); - ep.setExhange(exh); + Currency NZD = Currency.getInstance("NZD"); - String jsonString0 = jsonContext.toJsonString(ep, true); - System.out.println(jsonString0); - - - DExhEntity bean0 = jsonContext.toBean(DExhEntity.class, jsonString0); - Assert.assertNotNull(bean0); - - } + DPerson p = new DPerson(); + p.setFirstName("first"); + p.setLastName("last"); + p.setSalary(new Money("12200")); + p.setCmoney(new CMoney(new Money("12"), NZD)); + + JsonContext jsonContext = Ebean.createJsonContext(); + + String jsonString = jsonContext.toJsonString(p, true); + System.out.println(jsonString); + + CMoney cm = new CMoney(new Money("12"), NZD); + + Rate rate = new Rate(0.1); + ExhangeCMoneyRate exh = new ExhangeCMoneyRate(rate, cm); + + DExhEntity ep = new DExhEntity(); + ep.setOid(new Oid(112)); + ep.setExhange(exh); + + String jsonString0 = jsonContext.toJsonString(ep, true); + System.out.println(jsonString0); + + DExhEntity bean0 = jsonContext.toBean(DExhEntity.class, jsonString0); + Assert.assertNotNull(bean0); + + } } diff --git a/src/test/java/com/avaje/tests/text/json/TestTextJsonInheritance.java b/src/test/java/com/avaje/tests/text/json/TestTextJsonInheritance.java index ecedd6beb..1e4b36b0b 100644 --- a/src/test/java/com/avaje/tests/text/json/TestTextJsonInheritance.java +++ b/src/test/java/com/avaje/tests/text/json/TestTextJsonInheritance.java @@ -2,10 +2,10 @@ package com.avaje.tests.text.json; import java.util.List; -import junit.framework.TestCase; - import org.junit.Assert; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.text.json.JsonContext; import com.avaje.tests.model.basic.Car; @@ -14,43 +14,42 @@ import com.avaje.tests.model.basic.Truck; import com.avaje.tests.model.basic.Vehicle; import com.avaje.tests.model.basic.VehicleDriver; -public class TestTextJsonInheritance extends TestCase { +public class TestTextJsonInheritance extends BaseTestCase { - public void test() { - - setupData(); - - List list = Ebean.find(Vehicle.class) - .setAutofetch(false) - .findList(); + @Test + public void test() { - Assert.assertEquals(2, list.size()); + setupData(); - JsonContext jsonContext = Ebean.createJsonContext(); - String jsonString = jsonContext.toJsonString(list, true); - System.out.println(jsonString); - - List rebuiltList = jsonContext.toList(Vehicle.class, jsonString); - - Assert.assertEquals(2, rebuiltList.size()); - - } - - private void setupData() { - - Ebean.createUpdate(Trip.class, "delete from trip").execute(); - Ebean.createUpdate(VehicleDriver.class, "delete from vehicleDriver").execute(); - Ebean.createUpdate(Vehicle.class, "delete from vehicle").execute(); + List list = Ebean.find(Vehicle.class).setAutofetch(false).findList(); - Car c = new Car(); - c.setLicenseNumber("C6788"); - c.setDriver("CarDriver"); - Ebean.save(c); - - Truck t = new Truck(); - t.setLicenseNumber("T1098"); - t.setCapacity(20D); - Ebean.save(t); - - } + Assert.assertEquals(2, list.size()); + + JsonContext jsonContext = Ebean.createJsonContext(); + String jsonString = jsonContext.toJsonString(list, true); + System.out.println(jsonString); + + List rebuiltList = jsonContext.toList(Vehicle.class, jsonString); + + Assert.assertEquals(2, rebuiltList.size()); + + } + + private void setupData() { + + Ebean.createUpdate(Trip.class, "delete from trip").execute(); + Ebean.createUpdate(VehicleDriver.class, "delete from vehicleDriver").execute(); + Ebean.createUpdate(Vehicle.class, "delete from vehicle").execute(); + + Car c = new Car(); + c.setLicenseNumber("C6788"); + c.setDriver("CarDriver"); + Ebean.save(c); + + Truck t = new Truck(); + t.setLicenseNumber("T1098"); + t.setCapacity(20D); + Ebean.save(t); + + } } diff --git a/src/test/java/com/avaje/tests/text/json/TestTextJsonInsertUpdate.java b/src/test/java/com/avaje/tests/text/json/TestTextJsonInsertUpdate.java index e58d7c606..2f258fe8c 100644 --- a/src/test/java/com/avaje/tests/text/json/TestTextJsonInsertUpdate.java +++ b/src/test/java/com/avaje/tests/text/json/TestTextJsonInsertUpdate.java @@ -1,37 +1,39 @@ package com.avaje.tests.text.json; -import junit.framework.TestCase; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.text.json.JsonContext; import com.avaje.ebeaninternal.server.lib.util.StringHelper; import com.avaje.tests.model.basic.Customer; import com.avaje.tests.model.basic.ResetBasicData; -public class TestTextJsonInsertUpdate extends TestCase { +public class TestTextJsonInsertUpdate extends BaseTestCase { - public void test() { + @Test + public void test() { - ResetBasicData.reset(); - - String json0 = "{\"name\":\"InsJson\",\"status\":\"NEW\"}"; - - JsonContext jsonContext = Ebean.createJsonContext(); - - // insert - Customer c0 = jsonContext.toBean(Customer.class, json0); - Ebean.save(c0); - - // update with optimistic concurrency checking - String j0 = jsonContext.toJsonString(c0); - String j1 = StringHelper.replaceString(j0, "InsJson", "Mod1"); - Customer c1 = jsonContext.toBean(Customer.class, j1); - Ebean.update(c1); + ResetBasicData.reset(); - // update with no optimistic concurrency checking - String j2 = "{\"id\":"+c0.getId()+",\"name\":\"ModIns\",\"status\":\"ACTIVE\"}"; - Customer c2 = jsonContext.toBean(Customer.class, j2); - Ebean.update(c2); - - } + String json0 = "{\"name\":\"InsJson\",\"status\":\"NEW\"}"; + + JsonContext jsonContext = Ebean.createJsonContext(); + + // insert + Customer c0 = jsonContext.toBean(Customer.class, json0); + Ebean.save(c0); + + // update with optimistic concurrency checking + String j0 = jsonContext.toJsonString(c0); + String j1 = StringHelper.replaceString(j0, "InsJson", "Mod1"); + Customer c1 = jsonContext.toBean(Customer.class, j1); + Ebean.update(c1); + + // update with no optimistic concurrency checking + String j2 = "{\"id\":" + c0.getId() + ",\"name\":\"ModIns\",\"status\":\"ACTIVE\"}"; + Customer c2 = jsonContext.toBean(Customer.class, j2); + Ebean.update(c2); + + } } diff --git a/src/test/java/com/avaje/tests/text/json/TestTextJsonInvokeLazy.java b/src/test/java/com/avaje/tests/text/json/TestTextJsonInvokeLazy.java index 5fcefd8e0..9cbce47b0 100644 --- a/src/test/java/com/avaje/tests/text/json/TestTextJsonInvokeLazy.java +++ b/src/test/java/com/avaje/tests/text/json/TestTextJsonInvokeLazy.java @@ -2,32 +2,31 @@ package com.avaje.tests.text.json; import java.util.List; -import junit.framework.TestCase; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.text.json.JsonContext; import com.avaje.ebean.text.json.JsonWriteOptions; import com.avaje.tests.model.basic.Customer; import com.avaje.tests.model.basic.ResetBasicData; -public class TestTextJsonInvokeLazy extends TestCase { +public class TestTextJsonInvokeLazy extends BaseTestCase { - public void test() { - - ResetBasicData.reset(); - - List list = Ebean.find(Customer.class) - .select("name") - .findList(); - - JsonWriteOptions opt = new JsonWriteOptions(); - opt.setRootPathProperties("name, status"); - - JsonContext jsonContext = Ebean.createJsonContext(); - String jsonString = jsonContext.toJsonString(list, true, opt); - - System.out.println(jsonString); - - - } + @Test + public void test() { + + ResetBasicData.reset(); + + List list = Ebean.find(Customer.class).select("name").findList(); + + JsonWriteOptions opt = new JsonWriteOptions(); + opt.setRootPathProperties("name, status"); + + JsonContext jsonContext = Ebean.createJsonContext(); + String jsonString = jsonContext.toJsonString(list, true, opt); + + System.out.println(jsonString); + + } } diff --git a/src/test/java/com/avaje/tests/text/json/TestTextJsonReadManyLazyLoad.java b/src/test/java/com/avaje/tests/text/json/TestTextJsonReadManyLazyLoad.java index 7944ee069..507b2beb9 100644 --- a/src/test/java/com/avaje/tests/text/json/TestTextJsonReadManyLazyLoad.java +++ b/src/test/java/com/avaje/tests/text/json/TestTextJsonReadManyLazyLoad.java @@ -2,10 +2,10 @@ package com.avaje.tests.text.json; import java.util.List; -import junit.framework.TestCase; - import org.junit.Assert; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.text.PathProperties; import com.avaje.ebean.text.json.JsonContext; @@ -13,82 +13,76 @@ import com.avaje.ebean.text.json.JsonWriteOptions; import com.avaje.tests.model.basic.Customer; import com.avaje.tests.model.basic.ResetBasicData; -public class TestTextJsonReadManyLazyLoad extends TestCase { +public class TestTextJsonReadManyLazyLoad extends BaseTestCase { - public void test_lazyLoadBoth(){ - - ResetBasicData.reset(); - - List list = Ebean.find(Customer.class) - .select("id, status, shippingAddress") - .order().desc("id") - .findList(); - - JsonContext json = Ebean.createJsonContext(); - - // test that lazy loading on - PathProperties pp = PathProperties.parse("(id,name,contacts(firstName))"); - JsonWriteOptions o = new JsonWriteOptions(); - o.setPathProperties(pp); - - System.out.println("Expect lazy loading of Customer beans and customer contacts"); - String s = json.toJsonString(list, true, o); - System.out.println(s); - Assert.assertTrue(s.contains("\"contacts\"")); - Assert.assertTrue(s.contains("\"name\"")); - - } + @Test + public void test_lazyLoadBoth() { - public void test_lazyLoadCust(){ - - ResetBasicData.reset(); - - List list = Ebean.find(Customer.class) - .select("id, status, shippingAddress") - .fetch("contacts") - .order().desc("id") - .findList(); - - JsonContext json = Ebean.createJsonContext(); - - // test that lazy loading on - PathProperties pp = PathProperties.parse("(id,name,contacts(firstName))"); - JsonWriteOptions o = new JsonWriteOptions(); - o.setPathProperties(pp); - - - System.out.println("expecting lazy load of Customer beans to fetch customer name"); - String s = json.toJsonString(list, true, o); - System.out.println(s); - Assert.assertTrue(s.contains("\"contacts\"")); - Assert.assertTrue(s.contains("\"name\"")); - - } - - public void test_lazyLoadContacts(){ - - ResetBasicData.reset(); - - List list = Ebean.find(Customer.class) - .select("id, name, status, shippingAddress") - //.fetch("contacts") - .order().desc("id") - .findList(); - - JsonContext json = Ebean.createJsonContext(); - - // test that lazy loading on - PathProperties pp = PathProperties.parse("(id,name,contacts(firstName))"); - JsonWriteOptions o = new JsonWriteOptions(); - o.setPathProperties(pp); - - - System.out.println("expecting lazy load of Customer contacts "); - String s = json.toJsonString(list, true, o); - System.out.println(s); - Assert.assertTrue(s.contains("\"contacts\"")); - Assert.assertTrue(s.contains("\"name\"")); - - } + ResetBasicData.reset(); + + List list = Ebean.find(Customer.class).select("id, status, shippingAddress").order() + .desc("id").findList(); + + JsonContext json = Ebean.createJsonContext(); + + // test that lazy loading on + PathProperties pp = PathProperties.parse("(id,name,contacts(firstName))"); + JsonWriteOptions o = new JsonWriteOptions(); + o.setPathProperties(pp); + + System.out.println("Expect lazy loading of Customer beans and customer contacts"); + String s = json.toJsonString(list, true, o); + System.out.println(s); + Assert.assertTrue(s.contains("\"contacts\"")); + Assert.assertTrue(s.contains("\"name\"")); + + } + + @Test + public void test_lazyLoadCust() { + + ResetBasicData.reset(); + + List list = Ebean.find(Customer.class).select("id, status, shippingAddress") + .fetch("contacts").order().desc("id").findList(); + + JsonContext json = Ebean.createJsonContext(); + + // test that lazy loading on + PathProperties pp = PathProperties.parse("(id,name,contacts(firstName))"); + JsonWriteOptions o = new JsonWriteOptions(); + o.setPathProperties(pp); + + System.out.println("expecting lazy load of Customer beans to fetch customer name"); + String s = json.toJsonString(list, true, o); + System.out.println(s); + Assert.assertTrue(s.contains("\"contacts\"")); + Assert.assertTrue(s.contains("\"name\"")); + + } + + @Test + public void test_lazyLoadContacts() { + + ResetBasicData.reset(); + + List list = Ebean.find(Customer.class).select("id, name, status, shippingAddress") + // .fetch("contacts") + .order().desc("id").findList(); + + JsonContext json = Ebean.createJsonContext(); + + // test that lazy loading on + PathProperties pp = PathProperties.parse("(id,name,contacts(firstName))"); + JsonWriteOptions o = new JsonWriteOptions(); + o.setPathProperties(pp); + + System.out.println("expecting lazy load of Customer contacts "); + String s = json.toJsonString(list, true, o); + System.out.println(s); + Assert.assertTrue(s.contains("\"contacts\"")); + Assert.assertTrue(s.contains("\"name\"")); + + } } diff --git a/src/test/java/com/avaje/tests/text/json/TestTextJsonReferenceBean.java b/src/test/java/com/avaje/tests/text/json/TestTextJsonReferenceBean.java index ac33bd356..922b1004d 100644 --- a/src/test/java/com/avaje/tests/text/json/TestTextJsonReferenceBean.java +++ b/src/test/java/com/avaje/tests/text/json/TestTextJsonReferenceBean.java @@ -2,10 +2,10 @@ package com.avaje.tests.text.json; import java.util.List; -import junit.framework.TestCase; - import org.junit.Assert; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.BeanState; import com.avaje.ebean.Ebean; import com.avaje.ebean.text.json.JsonContext; @@ -14,55 +14,54 @@ import com.avaje.tests.model.basic.Order; import com.avaje.tests.model.basic.Product; import com.avaje.tests.model.basic.ResetBasicData; -public class TestTextJsonReferenceBean extends TestCase { +public class TestTextJsonReferenceBean extends BaseTestCase { - public void test() { - - ResetBasicData.reset(); - - JsonContext jsonContext = Ebean.createJsonContext(); + @Test + public void test() { - Product product = Ebean.getReference(Product.class, 1); - - BeanState beanState0 = Ebean.getBeanState(product); - if (!beanState0.isReference()){ - // got a cached value from beanCache - - } else { - - String jsonString = jsonContext.toJsonString(product); - System.out.println(jsonString); - - Product refProd = jsonContext.toBean(Product.class, jsonString); - - BeanState beanState = Ebean.getBeanState(refProd); - Assert.assertTrue(beanState.isReference()); - - String name = refProd.getName(); - Assert.assertNotNull(name); - } - - List orders = Ebean.find(Order.class) - //.setUseCache(false) - .select("status, orderDate, shipDate, customer") - .fetch("details","*") - //.fetch("details.product","id") - .order().asc("id") - .findList(); - - Order order = orders.get(0); - - JsonWriteOptions options = new JsonWriteOptions(); - options.setPathProperties("details.product", "id"); - - String jsonOrder = jsonContext.toJsonString(order, true, options); - System.out.println(jsonOrder); - - Order o2 = jsonContext.toBean(Order.class, jsonOrder); - - BeanState beanStateCust = Ebean.getBeanState(o2.getCustomer()); - Assert.assertTrue(beanStateCust.isReference()); - + ResetBasicData.reset(); + + JsonContext jsonContext = Ebean.createJsonContext(); + + Product product = Ebean.getReference(Product.class, 1); + + BeanState beanState0 = Ebean.getBeanState(product); + if (!beanState0.isReference()) { + // got a cached value from beanCache + + } else { + + String jsonString = jsonContext.toJsonString(product); + System.out.println(jsonString); + + Product refProd = jsonContext.toBean(Product.class, jsonString); + + BeanState beanState = Ebean.getBeanState(refProd); + Assert.assertTrue(beanState.isReference()); + + String name = refProd.getName(); + Assert.assertNotNull(name); } - + + List orders = Ebean.find(Order.class) + // .setUseCache(false) + .select("status, orderDate, shipDate, customer").fetch("details", "*") + // .fetch("details.product","id") + .order().asc("id").findList(); + + Order order = orders.get(0); + + JsonWriteOptions options = new JsonWriteOptions(); + options.setPathProperties("details.product", "id"); + + String jsonOrder = jsonContext.toJsonString(order, true, options); + System.out.println(jsonOrder); + + Order o2 = jsonContext.toBean(Order.class, jsonOrder); + + BeanState beanStateCust = Ebean.getBeanState(o2.getCustomer()); + Assert.assertTrue(beanStateCust.isReference()); + + } + } diff --git a/src/test/java/com/avaje/tests/text/json/TestTextJsonSimple.java b/src/test/java/com/avaje/tests/text/json/TestTextJsonSimple.java index 7fcc4b9b2..85a21c0ca 100644 --- a/src/test/java/com/avaje/tests/text/json/TestTextJsonSimple.java +++ b/src/test/java/com/avaje/tests/text/json/TestTextJsonSimple.java @@ -2,8 +2,9 @@ package com.avaje.tests.text.json; import java.util.List; -import junit.framework.TestCase; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.EbeanServer; import com.avaje.ebean.text.json.JsonContext; @@ -13,44 +14,43 @@ import com.avaje.ebean.text.json.JsonWriter; import com.avaje.tests.model.basic.Customer; import com.avaje.tests.model.basic.ResetBasicData; -public class TestTextJsonSimple extends TestCase { +public class TestTextJsonSimple extends BaseTestCase { - public void test() { - - ResetBasicData.reset(); - - List list = Ebean.find(Customer.class) - .select("id, name, status, shippingAddress") - .fetch("billingAddress","line1, city") - .fetch("billingAddress.country","*") - .fetch("contacts", "firstName,email")//, new FetchConfig().queryFirst(2)) - //.filterMany("contacts").ilike("firstName", "J%").query() - //.where().lt("id", 3) - .order().desc("id") - .findList(); - - EbeanServer server = Ebean.getServer(null); + @Test + public void test() { - JsonContext json = server.createJsonContext(); - - JsonWriteOptions options = new JsonWriteOptions(); - options.setRootPathProperties("name, id"); - options.setRootPathVisitor(new JsonWriteBeanVisitor() { + ResetBasicData.reset(); - public void visit(Customer bean, JsonWriter ctx) { - System.out.println("visiting "+bean); - ctx.appendRawValue("dummy", "34"); - } - - }); - - //String s = json.toJsonString(list, true); - String s = json.toJsonString(list, true, options); - - System.out.println(s); - - List mList = json.toList(Customer.class, s); - System.out.println(mList); - - } + List list = Ebean.find(Customer.class).select("id, name, status, shippingAddress") + .fetch("billingAddress", "line1, city").fetch("billingAddress.country", "*") + .fetch("contacts", "firstName,email")// , new + // FetchConfig().queryFirst(2)) + // .filterMany("contacts").ilike("firstName", "J%").query() + // .where().lt("id", 3) + .order().desc("id").findList(); + + EbeanServer server = Ebean.getServer(null); + + JsonContext json = server.createJsonContext(); + + JsonWriteOptions options = new JsonWriteOptions(); + options.setRootPathProperties("name, id"); + options.setRootPathVisitor(new JsonWriteBeanVisitor() { + + public void visit(Customer bean, JsonWriter ctx) { + System.out.println("visiting " + bean); + ctx.appendRawValue("dummy", "34"); + } + + }); + + // String s = json.toJsonString(list, true); + String s = json.toJsonString(list, true, options); + + System.out.println(s); + + List mList = json.toList(Customer.class, s); + System.out.println(mList); + + } } diff --git a/src/test/java/com/avaje/tests/text/json/TestTextJsonSuperSimple.java b/src/test/java/com/avaje/tests/text/json/TestTextJsonSuperSimple.java index 5b9d5d297..121dd7596 100644 --- a/src/test/java/com/avaje/tests/text/json/TestTextJsonSuperSimple.java +++ b/src/test/java/com/avaje/tests/text/json/TestTextJsonSuperSimple.java @@ -2,39 +2,38 @@ package com.avaje.tests.text.json; import java.util.List; -import junit.framework.TestCase; - import org.junit.Assert; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.EbeanServer; import com.avaje.ebean.text.json.JsonContext; import com.avaje.tests.model.basic.Customer; import com.avaje.tests.model.basic.ResetBasicData; -public class TestTextJsonSuperSimple extends TestCase { +public class TestTextJsonSuperSimple extends BaseTestCase { - public void test() { - - ResetBasicData.reset(); - - List list = Ebean.find(Customer.class) - .select("id, name") - .order().desc("id") - .findList(); - - EbeanServer server = Ebean.getServer(null); + @Test + public void test() { - JsonContext json = server.createJsonContext(); - - if (list.size() > 1){ - Customer customer = list.get(0); - - String s = json.toJsonString(customer, true); - System.out.println(s); - int statusPos = s.indexOf("status"); - Assert.assertEquals(-1, statusPos); - } + ResetBasicData.reset(); + List list = Ebean.find(Customer.class).select("id, name").order().desc("id") + .findList(); + + EbeanServer server = Ebean.getServer(null); + + JsonContext json = server.createJsonContext(); + + if (list.size() > 1) { + Customer customer = list.get(0); + + String s = json.toJsonString(customer, true); + System.out.println(s); + int statusPos = s.indexOf("status"); + Assert.assertEquals(-1, statusPos); } + + } } diff --git a/src/test/java/com/avaje/tests/text/json/TestTextJsonUpdateCascade.java b/src/test/java/com/avaje/tests/text/json/TestTextJsonUpdateCascade.java index dff23db43..8fb6ca79f 100644 --- a/src/test/java/com/avaje/tests/text/json/TestTextJsonUpdateCascade.java +++ b/src/test/java/com/avaje/tests/text/json/TestTextJsonUpdateCascade.java @@ -2,8 +2,10 @@ package com.avaje.tests.text.json; import java.util.List; -import junit.framework.TestCase; +import org.junit.Assert; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.EbeanServer; import com.avaje.ebean.text.json.JsonContext; @@ -16,85 +18,86 @@ import com.avaje.tests.model.basic.OrderDetail; import com.avaje.tests.model.basic.Product; import com.avaje.tests.model.basic.ResetBasicData; -public class TestTextJsonUpdateCascade extends TestCase { +public class TestTextJsonUpdateCascade extends BaseTestCase { - public void test() { - - ResetBasicData.reset(); - - - Customer c0 = ResetBasicData.createCustAndOrder("Test Json"); - - Customer c2 = Ebean.getReference(Customer.class, c0.getId()); - List orders = c2.getOrders(); - - assertEquals(1, orders.size()); - - Order order = orders.get(0); - int size = order.getDetails().size(); - - assertTrue(size >= 3); + @Test + public void test() { - Customer cref = Ebean.getReference(Customer.class, c0.getId()); - order.setCustomer(cref); - order.setStatus(Status.SHIPPED); - - OrderDetail orderDetail0 = order.getDetails().get(0); - orderDetail0.setShipQty(300); - orderDetail0.setUnitPrice(56.98d); - - // remove one of the details... - OrderDetail removedDetail = order.getDetails().remove(2); - assertNotNull(removedDetail); - - Product p = Ebean.getReference(Product.class, 1); - OrderDetail newDetail = new OrderDetail(p, 899, 12.12d); - //newDetail.setOrder(order); - order.addDetail(newDetail); - - EbeanServer server = Ebean.getServer(null); - - JsonContext jsonContext = server.createJsonContext(); - String jsonString = jsonContext.toJsonString(order, true); - - System.out.println(jsonString); - - Order updOrder = jsonContext.toBean(Order.class, jsonString); - - server.update(updOrder); - - - MRole r1 = new MRole(); - r1.setRoleName("rolej1"); - Ebean.save(r1); + ResetBasicData.reset(); - MRole r2 = new MRole(); - r2.setRoleName("rolej2"); - Ebean.save(r2); + Customer c0 = ResetBasicData.createCustAndOrder("Test Json"); - MRole r3 = new MRole(); - r3.setRoleName("rolej3"); - Ebean.save(r3); + Customer c2 = Ebean.getReference(Customer.class, c0.getId()); + List orders = c2.getOrders(); + + Assert.assertEquals(1, orders.size()); + + Order order = orders.get(0); + int size = order.getDetails().size(); + + Assert.assertTrue(size >= 3); + + Customer cref = Ebean.getReference(Customer.class, c0.getId()); + order.setCustomer(cref); + order.setStatus(Status.SHIPPED); + + OrderDetail orderDetail0 = order.getDetails().get(0); + orderDetail0.setShipQty(300); + orderDetail0.setUnitPrice(56.98d); + + // remove one of the details... + OrderDetail removedDetail = order.getDetails().remove(2); + Assert.assertNotNull(removedDetail); + + Product p = Ebean.getReference(Product.class, 1); + OrderDetail newDetail = new OrderDetail(p, 899, 12.12d); + // newDetail.setOrder(order); + order.addDetail(newDetail); + + EbeanServer server = Ebean.getServer(null); + + JsonContext jsonContext = server.createJsonContext(); + String jsonString = jsonContext.toJsonString(order, true); + + System.out.println(jsonString); + + Order updOrder = jsonContext.toBean(Order.class, jsonString); + + server.update(updOrder); + + MRole r1 = new MRole(); + r1.setRoleName("rolej1"); + Ebean.save(r1); + + MRole r2 = new MRole(); + r2.setRoleName("rolej2"); + Ebean.save(r2); + + MRole r3 = new MRole(); + r3.setRoleName("rolej3"); + Ebean.save(r3); + + MUser u0 = new MUser(); + u0.setUserName("userj1"); + u0.addRole(r1); + u0.addRole(r2); + u0.addRole(r3); + + Ebean.save(u0); + + String jsonUser = jsonContext.toJsonString(u0, true); + + System.out.println(jsonUser); + + String s = "{\"userid\":" + u0.getUserid() + + ",\"userName\":\"userj1\", \"roles\":[{\"roleid\":" + r2.getRoleid() + "},{\"roleid\":" + + r3.getRoleid() + "}]} "; + + MUser updMUser = jsonContext.toBean(MUser.class, s); + + server.update(updMUser); + + // checked transaction log to confirm correct behaviour + } - MUser u0 = new MUser(); - u0.setUserName("userj1"); - u0.addRole(r1); - u0.addRole(r2); - u0.addRole(r3); - - Ebean.save(u0); - - String jsonUser = jsonContext.toJsonString(u0, true); - - System.out.println(jsonUser); - - String s = "{\"userid\":"+u0.getUserid()+",\"userName\":\"userj1\", \"roles\":[{\"roleid\":"+r2.getRoleid()+"},{\"roleid\":"+r3.getRoleid()+"}]} "; - - MUser updMUser = jsonContext.toBean(MUser.class, s); - - server.update(updMUser); - - // checked transaction log to confirm correct behaviour - } - } diff --git a/src/test/java/com/avaje/tests/text/json/TestTextJsonUtilDateFormat.java b/src/test/java/com/avaje/tests/text/json/TestTextJsonUtilDateFormat.java index 074824a99..c15419b95 100644 --- a/src/test/java/com/avaje/tests/text/json/TestTextJsonUtilDateFormat.java +++ b/src/test/java/com/avaje/tests/text/json/TestTextJsonUtilDateFormat.java @@ -3,10 +3,10 @@ package com.avaje.tests.text.json; import java.sql.Date; import java.sql.Timestamp; -import junit.framework.TestCase; - import org.junit.Assert; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.config.GlobalProperties; import com.avaje.ebean.text.json.JsonContext; @@ -16,51 +16,52 @@ import com.avaje.ebeaninternal.server.text.json.DefaultJsonValueAdapter; import com.avaje.tests.model.basic.Car; import com.avaje.tests.model.basic.Vehicle; -public class TestTextJsonUtilDateFormat extends TestCase { +public class TestTextJsonUtilDateFormat extends BaseTestCase { - public void test() { - - GlobalProperties.put("ebean.ddl.generate", "false"); - GlobalProperties.put("ebean.ddl.run", "false"); - - Vehicle v = new Car(); - v.setId(100); - v.setRegistrationDate(new java.util.Date()); - v.setUpdtime(new Timestamp(System.currentTimeMillis())); - - JsonContext context = Ebean.createJsonContext(); - JsonWriteOptions o = new JsonWriteOptions(); - o.setValueAdapter(new CustomDateFormatAdapter()); - - String jsonString = context.toJsonString(v, true, o); - System.out.println(jsonString); - - Assert.assertTrue(jsonString.contains("\"registrationDate\":'")); + @Test + public void test() { + + GlobalProperties.put("ebean.ddl.generate", "false"); + GlobalProperties.put("ebean.ddl.run", "false"); + + Vehicle v = new Car(); + v.setId(100); + v.setRegistrationDate(new java.util.Date()); + v.setUpdtime(new Timestamp(System.currentTimeMillis())); + + JsonContext context = Ebean.createJsonContext(); + JsonWriteOptions o = new JsonWriteOptions(); + o.setValueAdapter(new CustomDateFormatAdapter()); + + String jsonString = context.toJsonString(v, true, o); + System.out.println(jsonString); + + Assert.assertTrue(jsonString.contains("\"registrationDate\":'")); + } + + class CustomDateFormatAdapter implements JsonValueAdapter { + + DefaultJsonValueAdapter defaultImplementation = new DefaultJsonValueAdapter(); + + public String jsonFromDate(Date date) { + // TODO + return null; } - - class CustomDateFormatAdapter implements JsonValueAdapter { - DefaultJsonValueAdapter defaultImplementation = new DefaultJsonValueAdapter(); - - public String jsonFromDate(Date date) { - // TODO - return null; - } - - public String jsonFromTimestamp(Timestamp date) { - // add some single quotes around the timestamp value - return "'"+defaultImplementation.jsonFromTimestamp(date)+"'"; - } - - public Date jsonToDate(String jsonDate) { - // TODO - return null; - } - - public Timestamp jsonToTimestamp(String jsonDateTime) { - // TODO - return null; - } - + public String jsonFromTimestamp(Timestamp date) { + // add some single quotes around the timestamp value + return "'" + defaultImplementation.jsonFromTimestamp(date) + "'"; } + + public Date jsonToDate(String jsonDate) { + // TODO + return null; + } + + public Timestamp jsonToTimestamp(String jsonDateTime) { + // TODO + return null; + } + + } } diff --git a/src/test/java/com/avaje/tests/text/xml/TestDnodeXmlParser.java b/src/test/java/com/avaje/tests/text/xml/TestDnodeXmlParser.java index d54f6dbb5..15e715b82 100644 --- a/src/test/java/com/avaje/tests/text/xml/TestDnodeXmlParser.java +++ b/src/test/java/com/avaje/tests/text/xml/TestDnodeXmlParser.java @@ -1,26 +1,26 @@ package com.avaje.tests.text.xml; -import junit.framework.TestCase; - import org.junit.Assert; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebeaninternal.server.lib.util.Dnode; import com.avaje.ebeaninternal.server.lib.util.DnodeReader; -public class TestDnodeXmlParser extends TestCase { +public class TestDnodeXmlParser extends BaseTestCase { + + @Test + public void testSimple() { + + String xmlString = "

heading

paragraph

"; + + DnodeReader r = new DnodeReader(); + Dnode n = r.parseXml(xmlString); + + String convertedTo = n.toXml(); + + Assert.assertEquals(xmlString, convertedTo); + + } - public void testSimple() { - - String xmlString = "

heading

paragraph

"; - - DnodeReader r = new DnodeReader(); - Dnode n = r.parseXml(xmlString); - - String convertedTo = n.toXml(); - - - Assert.assertEquals(xmlString, convertedTo); - - } - } diff --git a/src/test/java/com/avaje/tests/transaction/TestInsertManyAndRef.java b/src/test/java/com/avaje/tests/transaction/TestInsertManyAndRef.java index e089477b1..2e2a050a7 100644 --- a/src/test/java/com/avaje/tests/transaction/TestInsertManyAndRef.java +++ b/src/test/java/com/avaje/tests/transaction/TestInsertManyAndRef.java @@ -3,52 +3,54 @@ package com.avaje.tests.transaction; import java.util.ArrayList; import java.util.List; -import junit.framework.TestCase; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.tests.model.basic.BBookmark; import com.avaje.tests.model.basic.BBookmarkUser; -public class TestInsertManyAndRef extends TestCase { +public class TestInsertManyAndRef extends BaseTestCase { - public void testMe() { + @Test + public void testMe() { -// ResetBasicData.reset(); -// -// Customer u = new Customer(); -// u.setName("Mr Test"); -// -// final List bookmarks = new ArrayList(); -// final Order b1 = new Order(); -// b1.setCustomer(u); -// b1.setStatus(Status.NEW); -// -// final Order b2 = new Order(); -// b2.setStatus(Status.NEW); -// b2.setCustomer(u); -// -// bookmarks.add(b1); -// bookmarks.add(b2); -// -// Ebean.save(bookmarks); - - final BBookmarkUser u = new BBookmarkUser(); - u.setEmailAddress("test@test.com"); - u.setName("Mr Test"); - u.setPassword("password"); + // ResetBasicData.reset(); + // + // Customer u = new Customer(); + // u.setName("Mr Test"); + // + // final List bookmarks = new ArrayList(); + // final Order b1 = new Order(); + // b1.setCustomer(u); + // b1.setStatus(Status.NEW); + // + // final Order b2 = new Order(); + // b2.setStatus(Status.NEW); + // b2.setCustomer(u); + // + // bookmarks.add(b1); + // bookmarks.add(b2); + // + // Ebean.save(bookmarks); - final List bookmarks = new ArrayList(); - final BBookmark b1 = new BBookmark(); - b1.setBookmarkReference("Acts 2:7-20"); - b1.setUser(u); + final BBookmarkUser u = new BBookmarkUser(); + u.setEmailAddress("test@test.com"); + u.setName("Mr Test"); + u.setPassword("password"); - final BBookmark b2 = new BBookmark(); - b2.setBookmarkReference("Acts 7:1-20"); - b2.setUser(u); + final List bookmarks = new ArrayList(); + final BBookmark b1 = new BBookmark(); + b1.setBookmarkReference("Acts 2:7-20"); + b1.setUser(u); - bookmarks.add(b1); - bookmarks.add(b2); + final BBookmark b2 = new BBookmark(); + b2.setBookmarkReference("Acts 7:1-20"); + b2.setUser(u); - Ebean.save(bookmarks); - } + bookmarks.add(b1); + bookmarks.add(b2); + + Ebean.save(bookmarks); + } } diff --git a/src/test/java/com/avaje/tests/transaction/TestNested.java b/src/test/java/com/avaje/tests/transaction/TestNested.java index 56be6aa16..d3ec83bd6 100644 --- a/src/test/java/com/avaje/tests/transaction/TestNested.java +++ b/src/test/java/com/avaje/tests/transaction/TestNested.java @@ -1,36 +1,38 @@ package com.avaje.tests.transaction; import junit.framework.Assert; -import junit.framework.TestCase; +import org.junit.Test; + +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.TxRunnable; -public class TestNested extends TestCase { +public class TestNested extends BaseTestCase { - - public void test() { - - try { - Ebean.execute(new TxRunnable() { - public void run() { - - willFail(); - } - }); - } catch (RuntimeException e){ - Assert.assertEquals(e.getMessage(), "test rollback"); - } - } - - private void willFail() { - Ebean.execute(new TxRunnable() { - public void run() { - - String msg = "test rollback"; - throw new RuntimeException(msg); + @Test + public void test() { - } - }); - } + try { + Ebean.execute(new TxRunnable() { + public void run() { + + willFail(); + } + }); + } catch (RuntimeException e) { + Assert.assertEquals(e.getMessage(), "test rollback"); + } + } + + private void willFail() { + Ebean.execute(new TxRunnable() { + public void run() { + + String msg = "test rollback"; + throw new RuntimeException(msg); + + } + }); + } } diff --git a/src/test/java/com/avaje/tests/transaction/TestPersistContextClear.java b/src/test/java/com/avaje/tests/transaction/TestPersistContextClear.java index 6e070eaec..0f67b493d 100644 --- a/src/test/java/com/avaje/tests/transaction/TestPersistContextClear.java +++ b/src/test/java/com/avaje/tests/transaction/TestPersistContextClear.java @@ -2,10 +2,10 @@ package com.avaje.tests.transaction; import java.util.List; -import junit.framework.TestCase; - import org.junit.Assert; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.EbeanServer; import com.avaje.ebean.Transaction; @@ -15,73 +15,69 @@ import com.avaje.tests.model.basic.Customer; import com.avaje.tests.model.basic.Order; import com.avaje.tests.model.basic.ResetBasicData; -public class TestPersistContextClear extends TestCase { +public class TestPersistContextClear extends BaseTestCase { - public void test() { - - ResetBasicData.reset(); - - - ResetBasicData.createOrderCustAndOrder("testPc"); - - Transaction t = Ebean.beginTransaction(); - SpiTransaction spiTxn = (SpiTransaction)t; - PersistenceContext pc = spiTxn.getPersistenceContext(); - - System.out.println("pc0:"+pc.toString()); + @Test + public void test() { - // no orders or customers in the PC - Assert.assertEquals(0, pc.size(Order.class)); - Assert.assertEquals(0, pc.size(Customer.class)); + ResetBasicData.reset(); - Order order0 = null; - try { - - EbeanServer server = Ebean.getServer(null); - List list = server.find(Order.class) - .fetch("customer") - .fetch("details") - .findList(); + ResetBasicData.createOrderCustAndOrder("testPc"); - int orderSize = list.size(); - Assert.assertTrue(orderSize > 1); - - // keep a hold of one of them - order0 = list.get(0); - - System.out.println("pc1:"+pc.toString()); - Assert.assertEquals(orderSize, pc.size(Order.class)); + Transaction t = Ebean.beginTransaction(); + SpiTransaction spiTxn = (SpiTransaction) t; + PersistenceContext pc = spiTxn.getPersistenceContext(); - System.gc(); - Assert.assertEquals(orderSize, pc.size(Order.class)); - Assert.assertTrue(pc.size(Customer.class) > 0); + System.out.println("pc0:" + pc.toString()); - list = null; - //System.gc(); + // no orders or customers in the PC + Assert.assertEquals(0, pc.size(Order.class)); + Assert.assertEquals(0, pc.size(Customer.class)); - // transaction still holds PC ... - //System.out.println("pc2:"+pc); - // These asserts may not succeed depending on JVM - //Assert.assertEquals(pc.size(Order.class), 1); - //Assert.assertEquals(pc.size(Customer.class), 1); - - } finally { - t.end(); - } - - System.gc(); - System.out.println("pc4:"+pc.toString()); - - // we still have the order - Assert.assertNotNull(order0); - // its likely the only one in the PC now - // due to the System.gc(); but can't garuntee it - // so removing these asserts... can put them back - // to manually test. -// Assert.assertEquals(pc.size(Order.class), 1); -// Assert.assertEquals(pc.size(Customer.class), 1); - + Order order0 = null; + try { + EbeanServer server = Ebean.getServer(null); + List list = server.find(Order.class).fetch("customer").fetch("details").findList(); + + int orderSize = list.size(); + Assert.assertTrue(orderSize > 1); + + // keep a hold of one of them + order0 = list.get(0); + + System.out.println("pc1:" + pc.toString()); + Assert.assertEquals(orderSize, pc.size(Order.class)); + + System.gc(); + Assert.assertEquals(orderSize, pc.size(Order.class)); + Assert.assertTrue(pc.size(Customer.class) > 0); + + list = null; + // System.gc(); + + // transaction still holds PC ... + // System.out.println("pc2:"+pc); + // These asserts may not succeed depending on JVM + // Assert.assertEquals(pc.size(Order.class), 1); + // Assert.assertEquals(pc.size(Customer.class), 1); + + } finally { + t.end(); } - + + System.gc(); + System.out.println("pc4:" + pc.toString()); + + // we still have the order + Assert.assertNotNull(order0); + // its likely the only one in the PC now + // due to the System.gc(); but can't garuntee it + // so removing these asserts... can put them back + // to manually test. + // Assert.assertEquals(pc.size(Order.class), 1); + // Assert.assertEquals(pc.size(Customer.class), 1); + + } + } diff --git a/src/test/java/com/avaje/tests/unidirectional/TestUniDirectional.java b/src/test/java/com/avaje/tests/unidirectional/TestUniDirectional.java index 34a5d6e50..44f0cf9b5 100644 --- a/src/test/java/com/avaje/tests/unidirectional/TestUniDirectional.java +++ b/src/test/java/com/avaje/tests/unidirectional/TestUniDirectional.java @@ -2,50 +2,51 @@ package com.avaje.tests.unidirectional; import java.util.List; -import junit.framework.TestCase; - import org.junit.Assert; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.tests.model.basic.UTDetail; import com.avaje.tests.model.basic.UTMaster; -public class TestUniDirectional extends TestCase { +public class TestUniDirectional extends BaseTestCase { - public void test() { - - UTMaster m = new UTMaster(); - m.setName("mast1"); - m.addDetail(new UTDetail("d11", 10, 20.50)); - m.addDetail(new UTDetail("d12", 3, 5.50)); - m.addDetail(new UTDetail("d13", 5, 1.0)); - - Ebean.save(m); - - Assert.assertNotNull(m.getId()); - Assert.assertNotNull(m.getVersion()); - - List details = m.getDetails(); - for (UTDetail utDetail : details) { - Assert.assertNotNull(utDetail.getId()); - Assert.assertNotNull(utDetail.getVersion()); - } - - UTDetail d4 = new UTDetail("d14", 2, 3.0); - m.addDetail(d4); - - Ebean.save(m); + @Test + public void test() { - Assert.assertNotNull(d4.getId()); - Integer d4ver = d4.getVersion(); - Assert.assertNotNull(d4ver); + UTMaster m = new UTMaster(); + m.setName("mast1"); + m.addDetail(new UTDetail("d11", 10, 20.50)); + m.addDetail(new UTDetail("d12", 3, 5.50)); + m.addDetail(new UTDetail("d13", 5, 1.0)); - d4.setName("d14Upd"); - Ebean.save(d4); - Integer d4ver2 = d4.getVersion(); - Assert.assertNotNull(d4ver2); - Assert.assertEquals((d4ver + 1), d4ver2.intValue()); - - Ebean.delete(d4); + Ebean.save(m); + + Assert.assertNotNull(m.getId()); + Assert.assertNotNull(m.getVersion()); + + List details = m.getDetails(); + for (UTDetail utDetail : details) { + Assert.assertNotNull(utDetail.getId()); + Assert.assertNotNull(utDetail.getVersion()); } + + UTDetail d4 = new UTDetail("d14", 2, 3.0); + m.addDetail(d4); + + Ebean.save(m); + + Assert.assertNotNull(d4.getId()); + Integer d4ver = d4.getVersion(); + Assert.assertNotNull(d4ver); + + d4.setName("d14Upd"); + Ebean.save(d4); + Integer d4ver2 = d4.getVersion(); + Assert.assertNotNull(d4ver2); + Assert.assertEquals((d4ver + 1), d4ver2.intValue()); + + Ebean.delete(d4); + } } diff --git a/src/test/java/com/avaje/tests/unitinternal/TestEqualsOnEnhanced.java b/src/test/java/com/avaje/tests/unitinternal/TestEqualsOnEnhanced.java index 104574962..83a6f0ea3 100644 --- a/src/test/java/com/avaje/tests/unitinternal/TestEqualsOnEnhanced.java +++ b/src/test/java/com/avaje/tests/unitinternal/TestEqualsOnEnhanced.java @@ -1,43 +1,45 @@ package com.avaje.tests.unitinternal; -import junit.framework.TestCase; +import org.junit.Assert; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.bean.EntityBean; import com.avaje.tests.model.basic.Customer; import com.avaje.tests.model.basic.Order; -public class TestEqualsOnEnhanced extends TestCase { +public class TestEqualsOnEnhanced extends BaseTestCase { - public void test() { - - Customer c = new Customer(); - if (c instanceof EntityBean){ - Order o = new Order(); - if (o instanceof EntityBean){ - - c.setId(1); - - o.setId(1); - - assertFalse(c.equals(o)); - assertFalse(c.equals(null)); - assertTrue(c.equals(c)); - - Customer c2 = new Customer(); - c2.setId(1); - assertTrue(c.equals(c2)); + @Test + public void test() { - Customer c3 = new Customer(); - //c2.setId(1); - assertFalse(c.equals(c3)); - - Customer c4 = new Customer(); - c4.setId(2); - assertFalse(c.equals(c4)); + Customer c = new Customer(); + if (c instanceof EntityBean) { + Order o = new Order(); + if (o instanceof EntityBean) { - } - } - - + c.setId(1); + + o.setId(1); + + Assert.assertFalse(c.equals(o)); + Assert.assertFalse(c.equals(null)); + Assert.assertTrue(c.equals(c)); + + Customer c2 = new Customer(); + c2.setId(1); + Assert.assertTrue(c.equals(c2)); + + Customer c3 = new Customer(); + // c2.setId(1); + Assert.assertFalse(c.equals(c3)); + + Customer c4 = new Customer(); + c4.setId(2); + Assert.assertFalse(c.equals(c4)); + + } } + + } } diff --git a/src/test/java/com/avaje/tests/unitinternal/TestNullCollectionSet.java b/src/test/java/com/avaje/tests/unitinternal/TestNullCollectionSet.java index 3fb315d29..108060325 100644 --- a/src/test/java/com/avaje/tests/unitinternal/TestNullCollectionSet.java +++ b/src/test/java/com/avaje/tests/unitinternal/TestNullCollectionSet.java @@ -2,34 +2,37 @@ package com.avaje.tests.unitinternal; import java.util.List; -import junit.framework.TestCase; +import org.junit.Assert; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.bean.BeanCollection; import com.avaje.tests.model.basic.ENullCollection; import com.avaje.tests.model.basic.ENullCollectionDetail; -public class TestNullCollectionSet extends TestCase { +public class TestNullCollectionSet extends BaseTestCase { + + @Test + public void test() { + + ENullCollection c = new ENullCollection(); + + Ebean.save(c); + + ENullCollection c2 = Ebean.find(ENullCollection.class, c.getId()); + + Assert.assertNotNull(c2); + + List details = c2.getDetails(); + Assert.assertNotNull(details); + + Assert.assertTrue("Is BeanCollection", details instanceof BeanCollection); + + BeanCollection bc = (BeanCollection) details; + Assert.assertTrue(!bc.isPopulated()); + Assert.assertNotNull(bc.getOwnerBean()); + Assert.assertNotNull(bc.getPropertyName()); + } - public void test() { - - ENullCollection c = new ENullCollection(); - - Ebean.save(c); - - ENullCollection c2 = Ebean.find(ENullCollection.class, c.getId()); - - assertNotNull(c2); - - List details = c2.getDetails(); - assertNotNull(details); - - assertTrue("Is BeanCollection",details instanceof BeanCollection); - - BeanCollection bc = (BeanCollection)details; - assertTrue(!bc.isPopulated()); - assertNotNull(bc.getOwnerBean()); - assertNotNull(bc.getPropertyName()); - } - } diff --git a/src/test/java/com/avaje/tests/unitinternal/TestOrderByParse.java b/src/test/java/com/avaje/tests/unitinternal/TestOrderByParse.java index ba488120d..d3f13d051 100644 --- a/src/test/java/com/avaje/tests/unitinternal/TestOrderByParse.java +++ b/src/test/java/com/avaje/tests/unitinternal/TestOrderByParse.java @@ -1,118 +1,120 @@ package com.avaje.tests.unitinternal; import junit.framework.Assert; -import junit.framework.TestCase; +import org.junit.Test; + +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.OrderBy; /** * Test the OrderBy object and especially its parsing. */ -public class TestOrderByParse extends TestCase { +public class TestOrderByParse extends BaseTestCase { - public void testParsingOne() { - - OrderBy o1 = new OrderBy("id"); - Assert.assertTrue(o1.getProperties().size() == 1); - Assert.assertTrue(o1.getProperties().get(0).getProperty().equals("id")); - Assert.assertTrue(o1.getProperties().get(0).isAscending()); - Assert.assertTrue(o1.toStringFormat().equals("id")); - - o1 = new OrderBy("id asc"); - Assert.assertTrue(o1.getProperties().size() == 1); - Assert.assertTrue(o1.getProperties().get(0).getProperty().equals("id")); - Assert.assertTrue(o1.getProperties().get(0).isAscending()); - Assert.assertTrue(o1.toStringFormat().equals("id")); + @Test + public void testParsingOne() { - o1 = new OrderBy("id desc"); - Assert.assertTrue(o1.getProperties().size() == 1); - Assert.assertTrue(o1.getProperties().get(0).getProperty().equals("id")); - Assert.assertTrue(!o1.getProperties().get(0).isAscending()); - Assert.assertTrue(o1.toStringFormat().equals("id desc")); + OrderBy o1 = new OrderBy("id"); + Assert.assertTrue(o1.getProperties().size() == 1); + Assert.assertTrue(o1.getProperties().get(0).getProperty().equals("id")); + Assert.assertTrue(o1.getProperties().get(0).isAscending()); + Assert.assertTrue(o1.toStringFormat().equals("id")); - o1 = new OrderBy(" id asc "); - Assert.assertTrue(o1.getProperties().size() == 1); - Assert.assertTrue(o1.getProperties().get(0).getProperty().equals("id")); - Assert.assertTrue(o1.getProperties().get(0).isAscending()); - Assert.assertTrue(o1.toStringFormat().equals("id")); + o1 = new OrderBy("id asc"); + Assert.assertTrue(o1.getProperties().size() == 1); + Assert.assertTrue(o1.getProperties().get(0).getProperty().equals("id")); + Assert.assertTrue(o1.getProperties().get(0).isAscending()); + Assert.assertTrue(o1.toStringFormat().equals("id")); - } + o1 = new OrderBy("id desc"); + Assert.assertTrue(o1.getProperties().size() == 1); + Assert.assertTrue(o1.getProperties().get(0).getProperty().equals("id")); + Assert.assertTrue(!o1.getProperties().get(0).isAscending()); + Assert.assertTrue(o1.toStringFormat().equals("id desc")); - public void testParsingTwo() { - - OrderBy o1 = new OrderBy("id,name"); - Assert.assertTrue(o1.getProperties().size() == 2); - Assert.assertTrue(o1.getProperties().get(0).getProperty().equals("id")); - Assert.assertTrue(o1.getProperties().get(0).isAscending()); - Assert.assertTrue(o1.getProperties().get(1).getProperty().equals("name")); - Assert.assertTrue(o1.getProperties().get(1).isAscending()); - Assert.assertEquals("id, name",o1.toStringFormat()); + o1 = new OrderBy(" id asc "); + Assert.assertTrue(o1.getProperties().size() == 1); + Assert.assertTrue(o1.getProperties().get(0).getProperty().equals("id")); + Assert.assertTrue(o1.getProperties().get(0).isAscending()); + Assert.assertTrue(o1.toStringFormat().equals("id")); - o1 = new OrderBy(" id , name "); - Assert.assertTrue(o1.getProperties().size() == 2); - Assert.assertTrue(o1.getProperties().get(0).getProperty().equals("id")); - Assert.assertTrue(o1.getProperties().get(0).isAscending()); - Assert.assertTrue(o1.getProperties().get(1).getProperty().equals("name")); - Assert.assertTrue(o1.getProperties().get(1).isAscending()); - Assert.assertEquals("id, name",o1.toStringFormat()); + } - o1 = new OrderBy(" id desc , name desc "); - Assert.assertTrue(o1.getProperties().size() == 2); - Assert.assertTrue(o1.getProperties().get(0).getProperty().equals("id")); - Assert.assertTrue(!o1.getProperties().get(0).isAscending()); - Assert.assertTrue(o1.getProperties().get(1).getProperty().equals("name")); - Assert.assertTrue(!o1.getProperties().get(1).isAscending()); - Assert.assertEquals("id desc, name desc",o1.toStringFormat()); + public void testParsingTwo() { - o1 = new OrderBy(" id ascending, name asc"); - Assert.assertTrue(o1.getProperties().size() == 2); - Assert.assertTrue(o1.getProperties().get(0).getProperty().equals("id")); - Assert.assertTrue(o1.getProperties().get(0).isAscending()); - Assert.assertTrue(o1.getProperties().get(1).getProperty().equals("name")); - Assert.assertTrue(o1.getProperties().get(1).isAscending()); - Assert.assertEquals("id, name",o1.toStringFormat()); + OrderBy o1 = new OrderBy("id,name"); + Assert.assertTrue(o1.getProperties().size() == 2); + Assert.assertTrue(o1.getProperties().get(0).getProperty().equals("id")); + Assert.assertTrue(o1.getProperties().get(0).isAscending()); + Assert.assertTrue(o1.getProperties().get(1).getProperty().equals("name")); + Assert.assertTrue(o1.getProperties().get(1).isAscending()); + Assert.assertEquals("id, name", o1.toStringFormat()); + o1 = new OrderBy(" id , name "); + Assert.assertTrue(o1.getProperties().size() == 2); + Assert.assertTrue(o1.getProperties().get(0).getProperty().equals("id")); + Assert.assertTrue(o1.getProperties().get(0).isAscending()); + Assert.assertTrue(o1.getProperties().get(1).getProperty().equals("name")); + Assert.assertTrue(o1.getProperties().get(1).isAscending()); + Assert.assertEquals("id, name", o1.toStringFormat()); - } - - public void testAddMethods() { + o1 = new OrderBy(" id desc , name desc "); + Assert.assertTrue(o1.getProperties().size() == 2); + Assert.assertTrue(o1.getProperties().get(0).getProperty().equals("id")); + Assert.assertTrue(!o1.getProperties().get(0).isAscending()); + Assert.assertTrue(o1.getProperties().get(1).getProperty().equals("name")); + Assert.assertTrue(!o1.getProperties().get(1).isAscending()); + Assert.assertEquals("id desc, name desc", o1.toStringFormat()); - OrderBy o1 = new OrderBy(); - o1.asc("id"); - o1.asc("name"); - Assert.assertTrue(o1.getProperties().size() == 2); - Assert.assertTrue(o1.getProperties().get(0).getProperty().equals("id")); - Assert.assertTrue(o1.getProperties().get(0).isAscending()); - Assert.assertTrue(o1.getProperties().get(1).getProperty().equals("name")); - Assert.assertTrue(o1.getProperties().get(1).isAscending()); - Assert.assertEquals("id, name",o1.toStringFormat()); - - o1 = new OrderBy(); - o1.desc("id"); - o1.desc("name"); - Assert.assertTrue(o1.getProperties().size() == 2); - Assert.assertTrue(o1.getProperties().get(0).getProperty().equals("id")); - Assert.assertTrue(!o1.getProperties().get(0).isAscending()); - Assert.assertTrue(o1.getProperties().get(1).getProperty().equals("name")); - Assert.assertTrue(!o1.getProperties().get(1).isAscending()); - Assert.assertEquals("id desc, name desc",o1.toStringFormat()); - - o1.reverse(); - Assert.assertTrue(o1.getProperties().size() == 2); - Assert.assertTrue(o1.getProperties().get(0).getProperty().equals("id")); - Assert.assertTrue(o1.getProperties().get(0).isAscending()); - Assert.assertTrue(o1.getProperties().get(1).getProperty().equals("name")); - Assert.assertTrue(o1.getProperties().get(1).isAscending()); - Assert.assertEquals("id, name",o1.toStringFormat()); - - OrderBy copy = o1.copy(); - Assert.assertTrue(copy != o1); - Assert.assertTrue(copy.getProperties().size() == 2); - Assert.assertTrue(copy.getProperties().get(0).getProperty().equals("id")); - Assert.assertTrue(copy.getProperties().get(0).isAscending()); - Assert.assertTrue(copy.getProperties().get(1).getProperty().equals("name")); - Assert.assertTrue(copy.getProperties().get(1).isAscending()); - Assert.assertEquals("id, name",copy.toStringFormat()); - - } + o1 = new OrderBy(" id ascending, name asc"); + Assert.assertTrue(o1.getProperties().size() == 2); + Assert.assertTrue(o1.getProperties().get(0).getProperty().equals("id")); + Assert.assertTrue(o1.getProperties().get(0).isAscending()); + Assert.assertTrue(o1.getProperties().get(1).getProperty().equals("name")); + Assert.assertTrue(o1.getProperties().get(1).isAscending()); + Assert.assertEquals("id, name", o1.toStringFormat()); + + } + + public void testAddMethods() { + + OrderBy o1 = new OrderBy(); + o1.asc("id"); + o1.asc("name"); + Assert.assertTrue(o1.getProperties().size() == 2); + Assert.assertTrue(o1.getProperties().get(0).getProperty().equals("id")); + Assert.assertTrue(o1.getProperties().get(0).isAscending()); + Assert.assertTrue(o1.getProperties().get(1).getProperty().equals("name")); + Assert.assertTrue(o1.getProperties().get(1).isAscending()); + Assert.assertEquals("id, name", o1.toStringFormat()); + + o1 = new OrderBy(); + o1.desc("id"); + o1.desc("name"); + Assert.assertTrue(o1.getProperties().size() == 2); + Assert.assertTrue(o1.getProperties().get(0).getProperty().equals("id")); + Assert.assertTrue(!o1.getProperties().get(0).isAscending()); + Assert.assertTrue(o1.getProperties().get(1).getProperty().equals("name")); + Assert.assertTrue(!o1.getProperties().get(1).isAscending()); + Assert.assertEquals("id desc, name desc", o1.toStringFormat()); + + o1.reverse(); + Assert.assertTrue(o1.getProperties().size() == 2); + Assert.assertTrue(o1.getProperties().get(0).getProperty().equals("id")); + Assert.assertTrue(o1.getProperties().get(0).isAscending()); + Assert.assertTrue(o1.getProperties().get(1).getProperty().equals("name")); + Assert.assertTrue(o1.getProperties().get(1).isAscending()); + Assert.assertEquals("id, name", o1.toStringFormat()); + + OrderBy copy = o1.copy(); + Assert.assertTrue(copy != o1); + Assert.assertTrue(copy.getProperties().size() == 2); + Assert.assertTrue(copy.getProperties().get(0).getProperty().equals("id")); + Assert.assertTrue(copy.getProperties().get(0).isAscending()); + Assert.assertTrue(copy.getProperties().get(1).getProperty().equals("name")); + Assert.assertTrue(copy.getProperties().get(1).isAscending()); + Assert.assertEquals("id, name", copy.toStringFormat()); + + } } diff --git a/src/test/java/com/avaje/tests/unitinternal/TestOriginIntEncoding.java b/src/test/java/com/avaje/tests/unitinternal/TestOriginIntEncoding.java index 18945d885..d02cfccc5 100644 --- a/src/test/java/com/avaje/tests/unitinternal/TestOriginIntEncoding.java +++ b/src/test/java/com/avaje/tests/unitinternal/TestOriginIntEncoding.java @@ -1,35 +1,32 @@ package com.avaje.tests.unitinternal; import junit.framework.Assert; -import junit.framework.TestCase; +import org.junit.Test; + +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.bean.CallStack; -public class TestOriginIntEncoding extends TestCase { +public class TestOriginIntEncoding extends BaseTestCase { - public void test() { - -// for (int i = 0; i < 130; i++) { -// int x = 0+i; -// String e = CallStack.enc(x); -// System.out.println(x+"="+e); -// } - - Assert.assertEquals("A", CallStack.enc(0)); - Assert.assertEquals("B", CallStack.enc(1)); - Assert.assertEquals("Z", CallStack.enc(25)); - Assert.assertEquals("a", CallStack.enc(26)); - Assert.assertEquals("z", CallStack.enc(51)); - Assert.assertEquals("0", CallStack.enc(52)); - Assert.assertEquals("9", CallStack.enc(61)); - Assert.assertEquals("-", CallStack.enc(62)); - Assert.assertEquals("_", CallStack.enc(63)); - Assert.assertEquals("BA", CallStack.enc(64)); - Assert.assertEquals("Bk", CallStack.enc(100)); - Assert.assertEquals("B9", CallStack.enc(125)); - Assert.assertEquals("B-", CallStack.enc(126)); - Assert.assertEquals("B_", CallStack.enc(127)); - Assert.assertEquals("CA", CallStack.enc(128)); - - } + @Test + public void test() { + + Assert.assertEquals("A", CallStack.enc(0)); + Assert.assertEquals("B", CallStack.enc(1)); + Assert.assertEquals("Z", CallStack.enc(25)); + Assert.assertEquals("a", CallStack.enc(26)); + Assert.assertEquals("z", CallStack.enc(51)); + Assert.assertEquals("0", CallStack.enc(52)); + Assert.assertEquals("9", CallStack.enc(61)); + Assert.assertEquals("-", CallStack.enc(62)); + Assert.assertEquals("_", CallStack.enc(63)); + Assert.assertEquals("BA", CallStack.enc(64)); + Assert.assertEquals("Bk", CallStack.enc(100)); + Assert.assertEquals("B9", CallStack.enc(125)); + Assert.assertEquals("B-", CallStack.enc(126)); + Assert.assertEquals("B_", CallStack.enc(127)); + Assert.assertEquals("CA", CallStack.enc(128)); + + } } diff --git a/src/test/java/com/avaje/tests/unitinternal/TestSimpleEncryptor.java b/src/test/java/com/avaje/tests/unitinternal/TestSimpleEncryptor.java index e51d4dc9d..f5b254672 100644 --- a/src/test/java/com/avaje/tests/unitinternal/TestSimpleEncryptor.java +++ b/src/test/java/com/avaje/tests/unitinternal/TestSimpleEncryptor.java @@ -4,39 +4,41 @@ import java.sql.Timestamp; import java.util.Arrays; import junit.framework.Assert; -import junit.framework.TestCase; +import org.junit.Test; + +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.config.EncryptKey; import com.avaje.ebeaninternal.server.type.SimpleAesEncryptor; import com.avaje.tests.basic.encrypt.BasicEncryptKey; -public class TestSimpleEncryptor extends TestCase { +public class TestSimpleEncryptor extends BaseTestCase { - - public void test() { - - SimpleAesEncryptor e = new SimpleAesEncryptor(); - - EncryptKey key = new BasicEncryptKey("hello"); - - byte[] data = "test123".getBytes(); - - byte[] ecData = e.encrypt(data, key); - System.out.println(Arrays.toString(ecData)); - - byte[] deData = e.decrypt(ecData, key); - - String s = new String(deData); - - System.out.println(s); - - Timestamp t = new Timestamp(System.currentTimeMillis()); - byte[] ecTimestamp = e.encryptString(t.toString(), key); - System.out.println(t+" encrypted -> "+Arrays.toString(ecTimestamp)); - - String tsFormat = e.decryptString(ecTimestamp, key); - Timestamp t1 = Timestamp.valueOf(tsFormat); - Assert.assertEquals(t, t1); - - } + @Test + public void test() { + + SimpleAesEncryptor e = new SimpleAesEncryptor(); + + EncryptKey key = new BasicEncryptKey("hello"); + + byte[] data = "test123".getBytes(); + + byte[] ecData = e.encrypt(data, key); + System.out.println(Arrays.toString(ecData)); + + byte[] deData = e.decrypt(ecData, key); + + String s = new String(deData); + + System.out.println(s); + + Timestamp t = new Timestamp(System.currentTimeMillis()); + byte[] ecTimestamp = e.encryptString(t.toString(), key); + System.out.println(t + " encrypted -> " + Arrays.toString(ecTimestamp)); + + String tsFormat = e.decryptString(ecTimestamp, key); + Timestamp t1 = Timestamp.valueOf(tsFormat); + Assert.assertEquals(t, t1); + + } } diff --git a/src/test/java/com/avaje/tests/unitinternal/TestTxTypeOnTransactional.java b/src/test/java/com/avaje/tests/unitinternal/TestTxTypeOnTransactional.java index 5f1398468..6f0cda2b6 100644 --- a/src/test/java/com/avaje/tests/unitinternal/TestTxTypeOnTransactional.java +++ b/src/test/java/com/avaje/tests/unitinternal/TestTxTypeOnTransactional.java @@ -2,22 +2,23 @@ package com.avaje.tests.unitinternal; import javax.persistence.OptimisticLockException; -import junit.framework.TestCase; - import org.junit.Assert; +import org.junit.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.Transaction; import com.avaje.tests.model.basic.EBasicVer; import com.avaje.tests.model.basic.xtra.DummyDao; import com.avaje.tests.model.basic.xtra.OptimisticLockExceptionThrowingDao; -public class TestTxTypeOnTransactional extends TestCase { +public class TestTxTypeOnTransactional extends BaseTestCase { Logger logger = LoggerFactory.getLogger(TestTxTypeOnTransactional.class); + @Test public void test() { logger.info("-- test pre dao.doSomething"); diff --git a/src/test/java/com/avaje/tests/unitinternal/TestVanillaCollectionSet.java b/src/test/java/com/avaje/tests/unitinternal/TestVanillaCollectionSet.java index 818085ac7..b4aa4a90b 100644 --- a/src/test/java/com/avaje/tests/unitinternal/TestVanillaCollectionSet.java +++ b/src/test/java/com/avaje/tests/unitinternal/TestVanillaCollectionSet.java @@ -2,34 +2,37 @@ package com.avaje.tests.unitinternal; import java.util.List; -import junit.framework.TestCase; +import org.junit.Assert; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.bean.BeanCollection; import com.avaje.tests.model.basic.EVanillaCollection; import com.avaje.tests.model.basic.EVanillaCollectionDetail; -public class TestVanillaCollectionSet extends TestCase { +public class TestVanillaCollectionSet extends BaseTestCase { + + @Test + public void test() { + + EVanillaCollection c = new EVanillaCollection(); + + Ebean.save(c); + + EVanillaCollection c2 = Ebean.find(EVanillaCollection.class, c.getId()); + + Assert.assertNotNull(c2); + + List details = c2.getDetails(); + Assert.assertNotNull(details); + + Assert.assertTrue("Is BeanCollection", details instanceof BeanCollection); + + BeanCollection bc = (BeanCollection) details; + Assert.assertTrue(!bc.isPopulated()); + Assert.assertNotNull(bc.getOwnerBean()); + Assert.assertNotNull(bc.getPropertyName()); + } - public void test() { - - EVanillaCollection c = new EVanillaCollection(); - - Ebean.save(c); - - EVanillaCollection c2 = Ebean.find(EVanillaCollection.class, c.getId()); - - assertNotNull(c2); - - List details = c2.getDetails(); - assertNotNull(details); - - assertTrue("Is BeanCollection",details instanceof BeanCollection); - - BeanCollection bc = (BeanCollection)details; - assertTrue(!bc.isPopulated()); - assertNotNull(bc.getOwnerBean()); - assertNotNull(bc.getPropertyName()); - } - } diff --git a/src/test/java/com/avaje/tests/unitinternal/TestXmlConfigLoader.java b/src/test/java/com/avaje/tests/unitinternal/TestXmlConfigLoader.java index f70d58045..fc2b8e5e1 100644 --- a/src/test/java/com/avaje/tests/unitinternal/TestXmlConfigLoader.java +++ b/src/test/java/com/avaje/tests/unitinternal/TestXmlConfigLoader.java @@ -2,21 +2,24 @@ package com.avaje.tests.unitinternal; import java.util.List; -import junit.framework.TestCase; +import org.junit.Assert; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebeaninternal.server.core.XmlConfigLoader; import com.avaje.ebeaninternal.server.lib.util.Dnode; -public class TestXmlConfigLoader extends TestCase { +public class TestXmlConfigLoader extends BaseTestCase { - public void test() { - - XmlConfigLoader xmlConfigLoader = new XmlConfigLoader(null); - - List ebeanOrmXml = xmlConfigLoader.search("META-INF/ebean-orm.xml"); - - assertNotNull(ebeanOrmXml); - assertTrue("Found ebean-orm.xml",ebeanOrmXml.size() > 0); - - } + @Test + public void test() { + + XmlConfigLoader xmlConfigLoader = new XmlConfigLoader(null); + + List ebeanOrmXml = xmlConfigLoader.search("META-INF/ebean-orm.xml"); + + Assert.assertNotNull(ebeanOrmXml); + Assert.assertTrue("Found ebean-orm.xml", ebeanOrmXml.size() > 0); + + } } diff --git a/src/test/java/com/avaje/tests/update/TestEmbeddedRefreshUpdate.java b/src/test/java/com/avaje/tests/update/TestEmbeddedRefreshUpdate.java index 6b398741b..9b2f7d108 100644 --- a/src/test/java/com/avaje/tests/update/TestEmbeddedRefreshUpdate.java +++ b/src/test/java/com/avaje/tests/update/TestEmbeddedRefreshUpdate.java @@ -2,39 +2,41 @@ package com.avaje.tests.update; import java.util.Date; -import junit.framework.TestCase; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.tests.model.embedded.EEmbDatePeriod; import com.avaje.tests.model.embedded.EEmbInner; import com.avaje.tests.model.embedded.EEmbOuter; -public class TestEmbeddedRefreshUpdate extends TestCase { +public class TestEmbeddedRefreshUpdate extends BaseTestCase { - public void test() { - - EEmbOuter outer = new EEmbOuter(); - outer.setNomeOuter("test"); - - EEmbDatePeriod embeddedBean = new EEmbDatePeriod(); - embeddedBean.setDate1(new Date()); - - outer.setDatePeriod(embeddedBean); - - Ebean.save(outer); - - EEmbOuter loaded = Ebean.find(EEmbOuter.class).findUnique(); - - // if commented Ebean saves correctly - Ebean.refresh(loaded); - - loaded.getDatePeriod().setDate2(new Date()); - - // BUG 343 - Ebean.save(loaded); - - // See BUG 344 - Ebean.find(EEmbInner.class).fetch("outer").orderBy("outer.datePeriod.date1").findList(); - - } + @Test + public void test() { + + EEmbOuter outer = new EEmbOuter(); + outer.setNomeOuter("test"); + + EEmbDatePeriod embeddedBean = new EEmbDatePeriod(); + embeddedBean.setDate1(new Date()); + + outer.setDatePeriod(embeddedBean); + + Ebean.save(outer); + + EEmbOuter loaded = Ebean.find(EEmbOuter.class).findUnique(); + + // if commented Ebean saves correctly + Ebean.refresh(loaded); + + loaded.getDatePeriod().setDate2(new Date()); + + // BUG 343 + Ebean.save(loaded); + + // See BUG 344 + Ebean.find(EEmbInner.class).fetch("outer").orderBy("outer.datePeriod.date1").findList(); + + } } diff --git a/src/test/java/com/avaje/tests/update/TestPostgresTruncate.java b/src/test/java/com/avaje/tests/update/TestPostgresTruncate.java index d0be3c900..84803ebce 100644 --- a/src/test/java/com/avaje/tests/update/TestPostgresTruncate.java +++ b/src/test/java/com/avaje/tests/update/TestPostgresTruncate.java @@ -1,31 +1,34 @@ package com.avaje.tests.update; -import junit.framework.TestCase; - import org.junit.Assert; +import org.junit.Test; -public class TestPostgresTruncate extends TestCase { +import com.avaje.ebean.BaseTestCase; - public void test() { - - Assert.assertTrue(true); -// EbeanServer server = Ebean.getServer(null); -// -// EBasic e = new EBasic(); -// e.setName("something"); -// e.setStatus(Status.NEW); -// e.setDescription("wow"); -// -// server.save(e); -// -// server.beginTransaction(); -// Integer oriC = Ebean.createSqlQuery("select count(*) as c from e_basic").findUnique().getInteger("c"); -// int rows = Ebean.createSqlUpdate("truncate e_basic cascade").execute(); -// Integer currentC = Ebean.createSqlQuery("select count(*) as c from e_basic").findUnique().getInteger("c"); -// server.commitTransaction(); -// //Ebean.getServerCacheManager().clearAll(); -// System.out.println("table : ori="+oriC+", delC="+rows+", currentC="+currentC); - - - } +public class TestPostgresTruncate extends BaseTestCase { + + @Test + public void test() { + + Assert.assertTrue(true); + // EbeanServer server = Ebean.getServer(null); + // + // EBasic e = new EBasic(); + // e.setName("something"); + // e.setStatus(Status.NEW); + // e.setDescription("wow"); + // + // server.save(e); + // + // server.beginTransaction(); + // Integer oriC = + // Ebean.createSqlQuery("select count(*) as c from e_basic").findUnique().getInteger("c"); + // int rows = Ebean.createSqlUpdate("truncate e_basic cascade").execute(); + // Integer currentC = + // Ebean.createSqlQuery("select count(*) as c from e_basic").findUnique().getInteger("c"); + // server.commitTransaction(); + // //Ebean.getServerCacheManager().clearAll(); + // System.out.println("table : ori="+oriC+", delC="+rows+", currentC="+currentC); + + } } diff --git a/src/test/java/com/avaje/tests/update/TestStatelessUpdate.java b/src/test/java/com/avaje/tests/update/TestStatelessUpdate.java index 552ec0784..fa408c547 100644 --- a/src/test/java/com/avaje/tests/update/TestStatelessUpdate.java +++ b/src/test/java/com/avaje/tests/update/TestStatelessUpdate.java @@ -1,47 +1,48 @@ package com.avaje.tests.update; -import junit.framework.TestCase; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebean.EbeanServer; import com.avaje.tests.model.basic.EBasic; import com.avaje.tests.model.basic.EBasic.Status; -public class TestStatelessUpdate extends TestCase { +public class TestStatelessUpdate extends BaseTestCase { - public void test() { + @Test + public void test() { - //GlobalProperties.put("ebean.defaultUpdateNullProperties", "true"); - //GlobalProperties.put("ebean.defaultDeleteMissingChildren", "false"); + // GlobalProperties.put("ebean.defaultUpdateNullProperties", "true"); + // GlobalProperties.put("ebean.defaultDeleteMissingChildren", "false"); - EbeanServer server = Ebean.getServer(null); - - EBasic e = new EBasic(); - e.setName("something"); - e.setStatus(Status.NEW); - e.setDescription("wow"); - - server.save(e); - - -// EBasic updateName = new EBasic(); -// updateName.setId(e.getId()); -// updateName.setName("justName"); -// -// -// server.update(updateName, null, null, false, false); - - EBasic updateAll = new EBasic(); - updateAll.setId(e.getId()); - updateAll.setName("updAllProps"); - - server.update(updateAll, null, null, false, true); - - EBasic updateDeflt = new EBasic(); - updateDeflt.setId(e.getId()); - updateDeflt.setName("updateDeflt"); - - server.update(updateDeflt); - - } + EbeanServer server = Ebean.getServer(null); + + EBasic e = new EBasic(); + e.setName("something"); + e.setStatus(Status.NEW); + e.setDescription("wow"); + + server.save(e); + + // EBasic updateName = new EBasic(); + // updateName.setId(e.getId()); + // updateName.setName("justName"); + // + // + // server.update(updateName, null, null, false, false); + + EBasic updateAll = new EBasic(); + updateAll.setId(e.getId()); + updateAll.setName("updAllProps"); + + server.update(updateAll, null, null, false, true); + + EBasic updateDeflt = new EBasic(); + updateDeflt.setId(e.getId()); + updateDeflt.setName("updateDeflt"); + + server.update(updateDeflt); + + } } diff --git a/src/test/java/com/avaje/tests/update/TestUpdatePartial.java b/src/test/java/com/avaje/tests/update/TestUpdatePartial.java index 50a299173..d379ecb1b 100644 --- a/src/test/java/com/avaje/tests/update/TestUpdatePartial.java +++ b/src/test/java/com/avaje/tests/update/TestUpdatePartial.java @@ -1,40 +1,39 @@ package com.avaje.tests.update; -import junit.framework.TestCase; - import org.junit.Assert; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.tests.model.basic.Customer; -public class TestUpdatePartial extends TestCase { +public class TestUpdatePartial extends BaseTestCase { - - public void test() { - - Customer c = new Customer(); - c.setName("TestUpdateMe"); - c.setStatus(Customer.Status.ACTIVE); - c.setSmallnote("a note"); + @Test + public void test() { - Ebean.save(c); - - - Customer c2 = Ebean.find(Customer.class, c.getId()); - Assert.assertNull("not partial",Ebean.getBeanState(c2).getLoadedProps()); - - c2.setStatus(Customer.Status.INACTIVE); - c2.setSmallnote("2nd note"); - - Ebean.save(c2); + Customer c = new Customer(); + c.setName("TestUpdateMe"); + c.setStatus(Customer.Status.ACTIVE); + c.setSmallnote("a note"); - Customer c3 = Ebean.find(Customer.class, c.getId()); - Assert.assertNull("not partial",Ebean.getBeanState(c3).getLoadedProps()); - - c2.setStatus(Customer.Status.NEW); - c2.setSmallnote("3rd note"); - - Ebean.save(c2); + Ebean.save(c); - } + Customer c2 = Ebean.find(Customer.class, c.getId()); + Assert.assertNull("not partial", Ebean.getBeanState(c2).getLoadedProps()); + + c2.setStatus(Customer.Status.INACTIVE); + c2.setSmallnote("2nd note"); + + Ebean.save(c2); + + Customer c3 = Ebean.find(Customer.class, c.getId()); + Assert.assertNull("not partial", Ebean.getBeanState(c3).getLoadedProps()); + + c2.setStatus(Customer.Status.NEW); + c2.setSmallnote("3rd note"); + + Ebean.save(c2); + + } } diff --git a/src/test/java/com/avaje/tests/update/TestUpdatePartialNoVer.java b/src/test/java/com/avaje/tests/update/TestUpdatePartialNoVer.java index 3c34c2b28..c5da87de3 100644 --- a/src/test/java/com/avaje/tests/update/TestUpdatePartialNoVer.java +++ b/src/test/java/com/avaje/tests/update/TestUpdatePartialNoVer.java @@ -1,31 +1,30 @@ package com.avaje.tests.update; -import junit.framework.TestCase; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.tests.model.basic.EBasic; import com.avaje.tests.model.basic.EBasic.Status; -public class TestUpdatePartialNoVer extends TestCase { +public class TestUpdatePartialNoVer extends BaseTestCase { + + @Test + public void test() { + + EBasic b = new EBasic(); + b.setName("testpart"); + b.setStatus(Status.ACTIVE); + b.setDescription("description"); + + Ebean.save(b); + + EBasic basic = Ebean.find(EBasic.class).select("status, name").setId(b.getId()).findUnique(); + + basic.setName("modiName"); + + Ebean.save(basic); + + } - public void test() { - - EBasic b = new EBasic(); - b.setName("testpart"); - b.setStatus(Status.ACTIVE); - b.setDescription("description"); - - Ebean.save(b); - - EBasic basic = Ebean.find(EBasic.class) - .select("status, name") - .setId(b.getId()) - .findUnique(); - - basic.setName("modiName"); - - Ebean.save(basic); - - } - } diff --git a/src/test/java/com/avaje/tests/xml/TestXmlSimpleOutput.java b/src/test/java/com/avaje/tests/xml/TestXmlSimpleOutput.java index f58fb61c8..bf24a9149 100644 --- a/src/test/java/com/avaje/tests/xml/TestXmlSimpleOutput.java +++ b/src/test/java/com/avaje/tests/xml/TestXmlSimpleOutput.java @@ -4,8 +4,9 @@ import java.io.StringWriter; import java.io.Writer; import java.util.List; -import junit.framework.TestCase; +import org.junit.Test; +import com.avaje.ebean.BaseTestCase; import com.avaje.ebean.Ebean; import com.avaje.ebeaninternal.api.SpiEbeanServer; import com.avaje.tests.model.basic.Order; @@ -15,90 +16,85 @@ import com.avaje.tests.xml.oxm.OxmContext; import com.avaje.tests.xml.oxm.OxmContextBuilder; import com.avaje.tests.xml.oxm.OxmNode; -public class TestXmlSimpleOutput extends TestCase { +public class TestXmlSimpleOutput extends BaseTestCase { - public void test() throws Exception { - - ResetBasicData.reset(); - - SpiEbeanServer server = (SpiEbeanServer)Ebean.getServer(null); - - OxmContextBuilder builder = new XbContextBuilder(server, null); - - OxmNode node = builder.addRootElement("header", XHeader.class); - node.addElement("requestedBy"); - //node.addElement("requestedSystem"); - OxmNode horders = node.addElement("orders"); - horders.addElement("id"); - horders.addElement("cretime"); - horders.addElement("orderDate"); - - -// OxmNode orderRoot = builder.addRootElement("order", Order.class); -// -// orderRoot.addElement("id").addAttribute("status"); -// orderRoot.addElement("cretime","created-ts"); -// orderRoot.addElement("orderDate","ship-date"); -// OxmNode cust = orderRoot.addElement("customer","cust"); -// cust.addAttribute("id"); -// cust.addElement("name"); -// -// OxmNode orderDetails = orderRoot.addElement("details","order-details"); -// OxmNode line = orderDetails.addWrapperElement("line"); -// line.addElement("id"); -// line.addElement("orderQty","order-quantity"); -// line.addElement("unitPrice","unit-price"); -// -// OxmNode product = line.addElement("product"); -// product.addElement("name","prodname"); -// product.addElement("sku","sku"); + @Test + public void test() throws Exception { - - OxmContext oxmContext = builder.createContext(); - + ResetBasicData.reset(); + + SpiEbeanServer server = (SpiEbeanServer) Ebean.getServer(null); + + OxmContextBuilder builder = new XbContextBuilder(server, null); + + OxmNode node = builder.addRootElement("header", XHeader.class); + node.addElement("requestedBy"); + // node.addElement("requestedSystem"); + OxmNode horders = node.addElement("orders"); + horders.addElement("id"); + horders.addElement("cretime"); + horders.addElement("orderDate"); + + // OxmNode orderRoot = builder.addRootElement("order", Order.class); + // + // orderRoot.addElement("id").addAttribute("status"); + // orderRoot.addElement("cretime","created-ts"); + // orderRoot.addElement("orderDate","ship-date"); + // OxmNode cust = orderRoot.addElement("customer","cust"); + // cust.addAttribute("id"); + // cust.addElement("name"); + // + // OxmNode orderDetails = orderRoot.addElement("details","order-details"); + // OxmNode line = orderDetails.addWrapperElement("line"); + // line.addElement("id"); + // line.addElement("orderQty","order-quantity"); + // line.addElement("unitPrice","unit-price"); + // + // OxmNode product = line.addElement("product"); + // product.addElement("name","prodname"); + // product.addElement("sku","sku"); + + OxmContext oxmContext = builder.createContext(); + + List list = Ebean.find(Order.class).fetch("details") + .fetch("details.product", "sku,name").findList(); + + XHeader header = new XHeader(); + header.setRequestedBy("blah"); + header.setRequestedSystem("twoSystem"); + header.setOrders(list); + // + // Order bean = list.get(0); + // + // Writer writer = new StringWriter(); + // oxmContext.writeBean(bean, writer); + // System.out.println(writer); + // + Writer writer = new StringWriter(); + oxmContext.writeBean(header, writer); + System.out.println(writer); + // + // DocumentBuilderFactory dbfac = DocumentBuilderFactory.newInstance(); + // DocumentBuilder docBuilder = dbfac.newDocumentBuilder(); + // Document doc = docBuilder.newDocument(); + // + // + // + // oxmContext.writeBean(bean, doc); + // + // System.out.println(doc.getDocumentElement()); + // + // NodeList childNodes = doc.getChildNodes(); + // int len = childNodes.getLength(); + // for (int i = 0; i < len; i++) { + // + // Node childNode = childNodes.item(i); + // Order o = (Order)oxmContext.readBean(childNode); + // System.out.println(o); + // System.out.println(o.getDetails()); + // + // } + + } - List list = Ebean.find(Order.class) - .fetch("details") - .fetch("details.product","sku,name") - .findList(); - - XHeader header = new XHeader(); - header.setRequestedBy("blah"); - header.setRequestedSystem("twoSystem"); - header.setOrders(list); -// -// Order bean = list.get(0); -// -// Writer writer = new StringWriter(); -// oxmContext.writeBean(bean, writer); -// System.out.println(writer); -// - Writer writer = new StringWriter(); - oxmContext.writeBean(header, writer); - System.out.println(writer); -// -// DocumentBuilderFactory dbfac = DocumentBuilderFactory.newInstance(); -// DocumentBuilder docBuilder = dbfac.newDocumentBuilder(); -// Document doc = docBuilder.newDocument(); -// -// -// -// oxmContext.writeBean(bean, doc); -// -// System.out.println(doc.getDocumentElement()); -// -// NodeList childNodes = doc.getChildNodes(); -// int len = childNodes.getLength(); -// for (int i = 0; i < len; i++) { -// -// Node childNode = childNodes.item(i); -// Order o = (Order)oxmContext.readBean(childNode); -// System.out.println(o); -// System.out.println(o.getDetails()); -// -// } - - - } - }