Return-Path: Delivered-To: apmail-db-ojb-dev-archive@db.apache.org Received: (qmail 48845 invoked by uid 500); 8 Jul 2003 00:34:57 -0000 Mailing-List: contact ojb-dev-help@db.apache.org; run by ezmlm Precedence: bulk List-Unsubscribe: List-Subscribe: List-Help: List-Post: List-Id: "OJB Developers List" Reply-To: "OJB Developers List" Delivered-To: mailing list ojb-dev@db.apache.org Received: (qmail 48834 invoked by uid 500); 8 Jul 2003 00:34:57 -0000 Received: (qmail 48819 invoked from network); 8 Jul 2003 00:34:57 -0000 Received: from icarus.apache.org (208.185.179.13) by daedalus.apache.org with SMTP; 8 Jul 2003 00:34:57 -0000 Received: (qmail 18473 invoked by uid 1510); 8 Jul 2003 00:34:55 -0000 Date: 8 Jul 2003 00:34:55 -0000 Message-ID: <20030708003455.18472.qmail@icarus.apache.org> From: arminw@apache.org To: db-ojb-cvs@apache.org Subject: cvs commit: db-ojb/src/schema ojbtest-schema.xml X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N arminw 2003/07/07 17:34:54 Modified: src/test/org/apache/ojb repository_junit.xml src/test/org/apache/ojb/broker NestedFieldsTest.java src/schema ojbtest-schema.xml Log: upgrade nested fields test Revision Changes Path 1.79 +36 -0 db-ojb/src/test/org/apache/ojb/repository_junit.xml Index: repository_junit.xml =================================================================== RCS file: /home/cvs/db-ojb/src/test/org/apache/ojb/repository_junit.xml,v retrieving revision 1.78 retrieving revision 1.79 diff -u -r1.78 -r1.79 --- repository_junit.xml 30 Jun 2003 21:16:21 -0000 1.78 +++ repository_junit.xml 8 Jul 2003 00:34:54 -0000 1.79 @@ -4384,4 +4384,40 @@ + + + + + + + + + + + + + + + + + 1.2 +241 -57 db-ojb/src/test/org/apache/ojb/broker/NestedFieldsTest.java Index: NestedFieldsTest.java =================================================================== RCS file: /home/cvs/db-ojb/src/test/org/apache/ojb/broker/NestedFieldsTest.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- NestedFieldsTest.java 30 Jun 2003 21:16:04 -0000 1.1 +++ NestedFieldsTest.java 8 Jul 2003 00:34:54 -0000 1.2 @@ -1,8 +1,8 @@ package org.apache.ojb.broker; import junit.framework.TestCase; -import org.apache.ojb.broker.metadata.fieldaccess.PersistentNestedFieldMaxPerformanceImpl; -import org.apache.ojb.broker.util.configuration.impl.OjbConfiguration; +import org.apache.commons.lang.builder.ToStringBuilder; +import org.apache.commons.lang.builder.ToStringStyle; /** @@ -11,9 +11,8 @@ */ public class NestedFieldsTest extends TestCase { - - private Class normalPersistentFieldClass; PersistenceBroker broker; + public NestedFieldsTest(String name) { super(name); @@ -34,70 +33,255 @@ */ public void setUp() { - try + // obtain broker instance + broker = PersistenceBrokerFactory.defaultPersistenceBroker(); + } + + /** + * tearing down the test fixture. + */ + public void tearDown() + { + broker.close(); + } + + public void testStoreReadNestedField() + { + long timestamp = System.currentTimeMillis(); + String ddName = "second_level_detail_" + timestamp; + String ddDescription = "a real detail description" + timestamp; + + NestedDetailDetail dd = new NestedDetailDetail(ddName, ddDescription); + NestedDetail d = new NestedDetail(dd); + NestedMain nested = new NestedMain("main_object_" + timestamp, d); + Identity oid = new Identity(nested, broker); + + broker.beginTransaction(); + broker.store(nested); + broker.commitTransaction(); + + assertNotNull(nested.getDetail()); + assertNotNull(nested.getDetail().getDetail()); + assertNotNull(nested.getDetail().getDetail().getRealDetailName()); + dd = nested.getDetail().getDetail(); + assertEquals(ddName, dd.getRealDetailName()); + assertEquals(ddDescription, dd.getRealDetailDescription()); + + // retrieve copy of nested object + NestedMain nestedCopy = (NestedMain) broker.getObjectByIdentity(oid); + assertNotNull(nestedCopy.getDetail()); + assertNotNull(nestedCopy.getDetail().getDetail()); + assertNotNull(nestedCopy.getDetail().getDetail().getRealDetailName()); + dd = nested.getDetail().getDetail(); + assertEquals(ddName, dd.getRealDetailName()); + assertEquals(ddDescription, dd.getRealDetailDescription()); + + // clear cache and retrieve copy of nested object + broker.clearCache(); + nestedCopy = (NestedMain) broker.getObjectByIdentity(oid); + assertNotNull(nestedCopy.getDetail()); + assertNotNull(nestedCopy.getDetail().getDetail()); + assertNotNull(nestedCopy.getDetail().getDetail().getRealDetailName()); + dd = nested.getDetail().getDetail(); + assertEquals(ddName, dd.getRealDetailName()); + assertEquals(ddDescription, dd.getRealDetailDescription()); + } + + public void testUpdateNestedField() + { + long timestamp = System.currentTimeMillis(); + String ddName = "second_level_detail_" + timestamp; + String ddDescription = "a real detail description" + timestamp; + + NestedDetailDetail dd = new NestedDetailDetail(ddName, ddDescription); + NestedDetail d = new NestedDetail(dd); + NestedMain nested = new NestedMain("main_object_" + timestamp, d); + Identity oid = new Identity(nested, broker); + + broker.beginTransaction(); + broker.store(nested); + broker.commitTransaction(); + + // clear cache and retrieve copy of nested object + broker.clearCache(); + nested = (NestedMain) broker.getObjectByIdentity(oid); + + /* + till now we do the same as in the test above + now change nested field and store + */ + nested.getDetail().getDetail().setRealDetailName("update_name_"+timestamp); + broker.beginTransaction(); + broker.store(nested); + broker.commitTransaction(); + + // clear cache and retrieve copy of nested object + broker.clearCache(); + nested = (NestedMain) broker.getObjectByIdentity(oid); + assertEquals("update_name_"+timestamp, nested.getDetail().getDetail().getRealDetailName()); + } + + public void testDeleteNestedField() + { + long timestamp = System.currentTimeMillis(); + String ddName = "second_level_detail_" + timestamp; + String ddDescription = "a real detail description" + timestamp; + + NestedDetailDetail dd = new NestedDetailDetail(ddName, ddDescription); + NestedDetail d = new NestedDetail(dd); + NestedMain nested = new NestedMain("main_object_" + timestamp, d); + Identity oid = new Identity(nested, broker); + + broker.beginTransaction(); + broker.store(nested); + broker.commitTransaction(); + + // clear cache and retrieve copy of nested object + broker.clearCache(); + nested = (NestedMain) broker.getObjectByIdentity(oid); + + broker.beginTransaction(); + broker.delete(nested); + broker.commitTransaction(); + + nested = (NestedMain) broker.getObjectByIdentity(oid); + assertNull("Object was not deleted", nested); + } + + + + //************************************************************************ + // inner classes - used test classes + //************************************************************************ + + public static class NestedMain + { + private Long objId; + private String name; + private NestedDetail detail; + + public NestedMain() + { + } + + public NestedMain(String name, NestedDetail detail) + { + this.name = name; + this.detail = detail; + } + + public Long getObjId() + { + return objId; + } + + public void setObjId(Long objId) + { + this.objId = objId; + } + + public String getName() { - // obtain broker instance - broker = PersistenceBrokerFactory.defaultPersistenceBroker(); - // manipulate configuration to use proper field access - OjbConfiguration conf = (OjbConfiguration) PersistenceBrokerFactory. - getConfigurator().getConfigurationFor(null); - normalPersistentFieldClass = conf.getPersistentFieldClass(); - conf.setPersistentFieldClass(PersistentNestedFieldMaxPerformanceImpl.class); + return name; } - catch (PBFactoryException e) + + public void setName(String name) { + this.name = name; } + public NestedDetail getDetail() + { + return detail; + } + + public void setDetail(NestedDetail detail) + { + this.detail = detail; + } + + public String toString() + { + ToStringBuilder buf = new ToStringBuilder(this, ToStringStyle.DEFAULT_STYLE); + buf.append("objId", objId). + append("name", name). + append("detail", detail); + return buf.toString(); + } } - /** - * tearing down the test fixture. - */ - public void tearDown() + public static class NestedDetail { - try - { - // manipulate configuration to reset field access - OjbConfiguration conf = (OjbConfiguration) PersistenceBrokerFactory. - getConfigurator().getConfigurationFor(null); - conf.setPersistentFieldClass(normalPersistentFieldClass); + private NestedDetailDetail detail; + + public NestedDetail() + { } - catch (PBFactoryException e) + + public NestedDetail(NestedDetailDetail detail) { - } - broker.close(); + this.detail = detail; + } + + public NestedDetailDetail getDetail() + { + return detail; + } + + public void setDetail(NestedDetailDetail detail) + { + this.detail = detail; + } + + public String toString() + { + ToStringBuilder buf = new ToStringBuilder(this, ToStringStyle.SIMPLE_STYLE); + buf.append("detail", detail); + return buf.toString(); + } } - public void testLoading() - { - ArticleWithNestedStockDetail article = new ArticleWithNestedStockDetail(); - article.setArticleName("an article with a stock detail"); - article.setPrice(23); - article.setProductGroupId(1); - - StockDetail detail = new StockDetail(); - detail.setStock(500); - detail.setIsSelloutArticle(true); - detail.setMinimumStock(100); - detail.setOrderedUnits(0); - detail.setUnit("bottle"); - - article.setStockDetail(detail); - - broker.beginTransaction(); - broker.store(article); - Identity oid = new Identity(article, broker); - broker.commitTransaction(); - - broker.clearCache(); - ArticleWithNestedStockDetail copy = null; - StockDetail detailCopy = null; - broker.beginTransaction(); - copy = (ArticleWithNestedStockDetail) broker.getObjectByIdentity(oid); - detailCopy = copy.getStockDetail(); - - assertEquals(detail.getStock(), detailCopy.getStock()); - - } + public static class NestedDetailDetail + { + private String realDetailName; + private String realDetailDescription; + + public NestedDetailDetail() + { + } + + public NestedDetailDetail(String realDetailName, String realDetailDescription) + { + this.realDetailName = realDetailName; + this.realDetailDescription = realDetailDescription; + } + + public String getRealDetailName() + { + return realDetailName; + } + public void setRealDetailName(String realDetailName) + { + this.realDetailName = realDetailName; + } + + public String getRealDetailDescription() + { + return realDetailDescription; + } + + public void setRealDetailDescription(String realDetailDescription) + { + this.realDetailDescription = realDetailDescription; + } + + public String toString() + { + ToStringBuilder buf = new ToStringBuilder(this, ToStringStyle.SIMPLE_STYLE); + buf.append("realDetailName", realDetailName). + append("realDetailDescription", realDetailDescription); + return buf.toString(); + } + } } 1.42 +11 -0 db-ojb/src/schema/ojbtest-schema.xml Index: ojbtest-schema.xml =================================================================== RCS file: /home/cvs/db-ojb/src/schema/ojbtest-schema.xml,v retrieving revision 1.41 retrieving revision 1.42 diff -u -r1.41 -r1.42 --- ojbtest-schema.xml 27 Jun 2003 21:03:13 -0000 1.41 +++ ojbtest-schema.xml 8 Jul 2003 00:34:54 -0000 1.42 @@ -731,4 +731,15 @@
+ + + + + + + + + +
+ --------------------------------------------------------------------- To unsubscribe, e-mail: ojb-dev-unsubscribe@db.apache.org For additional commands, e-mail: ojb-dev-help@db.apache.org