You are viewing a plain text version of this content. The canonical link for it is here.
Posted to graffito-commits@incubator.apache.org by cl...@apache.org on 2005/10/12 20:37:58 UTC
svn commit: r315038 - in /incubator/graffito/trunk/jcr-mapping/src:
java/org/apache/portals/graffito/jcr/persistence/
java/org/apache/portals/graffito/jcr/persistence/impl/
test/org/apache/portals/graffito/jcr/
test/org/apache/portals/graffito/jcr/pers...
Author: clombart
Date: Wed Oct 12 13:37:47 2005
New Revision: 315038
URL: http://svn.apache.org/viewcvs?rev=315038&view=rev
Log:
* Support for Multi value properties - add unit tests
* add new methods in the persistence manager : getObject(Query) - remove(Query) - add unit tests
Added:
incubator/graffito/trunk/jcr-mapping/src/test/org/apache/portals/graffito/jcr/persistence/impl/PersistenceManagerMultiValueQueryTest.java
incubator/graffito/trunk/jcr-mapping/src/test/org/apache/portals/graffito/jcr/persistence/impl/PersistenceManagerRemoveTest.java
Modified:
incubator/graffito/trunk/jcr-mapping/src/java/org/apache/portals/graffito/jcr/persistence/PersistenceManager.java
incubator/graffito/trunk/jcr-mapping/src/java/org/apache/portals/graffito/jcr/persistence/impl/PersistenceManagerImpl.java
incubator/graffito/trunk/jcr-mapping/src/test/org/apache/portals/graffito/jcr/TestBase.java
incubator/graffito/trunk/jcr-mapping/src/test/org/apache/portals/graffito/jcr/persistence/impl/PersistenceManagerSimpleQueryTest.java
incubator/graffito/trunk/jcr-mapping/src/test/org/apache/portals/graffito/jcr/testmodel/MultiValue.java
Modified: incubator/graffito/trunk/jcr-mapping/src/java/org/apache/portals/graffito/jcr/persistence/PersistenceManager.java
URL: http://svn.apache.org/viewcvs/incubator/graffito/trunk/jcr-mapping/src/java/org/apache/portals/graffito/jcr/persistence/PersistenceManager.java?rev=315038&r1=315037&r2=315038&view=diff
==============================================================================
--- incubator/graffito/trunk/jcr-mapping/src/java/org/apache/portals/graffito/jcr/persistence/PersistenceManager.java (original)
+++ incubator/graffito/trunk/jcr-mapping/src/java/org/apache/portals/graffito/jcr/persistence/PersistenceManager.java Wed Oct 12 13:37:47 2005
@@ -72,6 +72,22 @@
*/
public void remove(String path) throws JcrMappingException;
+ /**
+ * Remove all objects matching to a query
+ * @param query The query used to find the objects to delete
+ * @throws org.apache.portals.graffito.jcr.exception.JcrMappingException
+ */
+ public void remove(Query query) throws JcrMappingException;
+
+
+ /**
+ * Retrieve an object matching to a query
+ * @param query The Graffito Query object used to seach the object
+ * @return The object found or null
+ *
+ */
+ public Object getObject(Query query) throws JcrMappingException;
+
/**
* Retrieve some pojo objects matching to a query
Modified: incubator/graffito/trunk/jcr-mapping/src/java/org/apache/portals/graffito/jcr/persistence/impl/PersistenceManagerImpl.java
URL: http://svn.apache.org/viewcvs/incubator/graffito/trunk/jcr-mapping/src/java/org/apache/portals/graffito/jcr/persistence/impl/PersistenceManagerImpl.java?rev=315038&r1=315037&r2=315038&view=diff
==============================================================================
--- incubator/graffito/trunk/jcr-mapping/src/java/org/apache/portals/graffito/jcr/persistence/impl/PersistenceManagerImpl.java (original)
+++ incubator/graffito/trunk/jcr-mapping/src/java/org/apache/portals/graffito/jcr/persistence/impl/PersistenceManagerImpl.java Wed Oct 12 13:37:47 2005
@@ -170,6 +170,36 @@
throw new JcrMappingException("Impossible to remove the object at " + path);
}
}
+
+
+
+
+ public void remove(Query query) throws JcrMappingException
+ {
+ try
+ {
+
+ String jcrExpression = this.queryManager.buildJCRExpression(query);
+ javax.jcr.query.Query jcrQuery = session.getWorkspace().getQueryManager().createQuery(jcrExpression, javax.jcr.query.Query.XPATH);
+ QueryResult queryResult = jcrQuery.execute();
+ NodeIterator nodeIterator = queryResult.getNodes();
+
+
+ while (nodeIterator.hasNext())
+ {
+ Node node = nodeIterator.nextNode();
+ log.debug("Remove node : " + node.getPath());
+ node.remove();
+ }
+
+
+ }
+ catch (RepositoryException e)
+ {
+ throw new JcrMappingException("Impossible to delte the object collection", e);
+ }
+
+ }
/**
*
@@ -187,13 +217,55 @@
}
}
- public Collection getObjects(Query query) throws JcrMappingException
+ /**
+ *
+ * @see org.apache.portals.graffito.jcr.persistence.PersistenceManager#getObject(org.apache.portals.graffito.jcr.query.Query)
+ */
+ public Object getObject(Query query) throws JcrMappingException
{
+
try
{
String jcrExpression = this.queryManager.buildJCRExpression(query);
log.debug("Get Object with expression : " + jcrExpression);
+
+ javax.jcr.query.Query jcrQuery = session.getWorkspace().getQueryManager().createQuery(jcrExpression, javax.jcr.query.Query.XPATH);
+ QueryResult queryResult = jcrQuery.execute();
+ NodeIterator nodeIterator = queryResult.getNodes();
+
+ if (nodeIterator.getSize() > 1)
+ {
+ throw new JcrMappingException("Impossible to get the object - the query returns more than one object");
+ }
+
+ Object object = null;
+ if (nodeIterator.hasNext())
+ {
+ Node node = nodeIterator.nextNode();
+ object = objectConverter.getObject(session, query.getFilter().getFilterClass(), node.getPath());
+ }
+
+ return object;
+ }
+ catch (RepositoryException e)
+ {
+ throw new JcrMappingException("Impossible to get the object collection", e);
+ }
+
+ }
+
+ /**
+ *
+ * @see org.apache.portals.graffito.jcr.persistence.PersistenceManager#getObjects(org.apache.portals.graffito.jcr.query.Query)
+ */
+ public Collection getObjects(Query query) throws JcrMappingException
+ {
+ try
+ {
+
+ String jcrExpression = this.queryManager.buildJCRExpression(query);
+ log.debug("Get Objects with expression : " + jcrExpression);
javax.jcr.query.Query jcrQuery = session.getWorkspace().getQueryManager().createQuery(jcrExpression, javax.jcr.query.Query.XPATH);
QueryResult queryResult = jcrQuery.execute();
Modified: incubator/graffito/trunk/jcr-mapping/src/test/org/apache/portals/graffito/jcr/TestBase.java
URL: http://svn.apache.org/viewcvs/incubator/graffito/trunk/jcr-mapping/src/test/org/apache/portals/graffito/jcr/TestBase.java?rev=315038&r1=315037&r2=315038&view=diff
==============================================================================
--- incubator/graffito/trunk/jcr-mapping/src/test/org/apache/portals/graffito/jcr/TestBase.java (original)
+++ incubator/graffito/trunk/jcr-mapping/src/test/org/apache/portals/graffito/jcr/TestBase.java Wed Oct 12 13:37:47 2005
@@ -60,116 +60,123 @@
*/
public abstract class TestBase extends TestCase
{
- /**
- * Jcr session to work with.
- */
- protected Session session;
-
-
- private PersistenceManager persistenceManager;
- private QueryManager queryManager;
-
- private static boolean isInit = false;
-
- /**
- * <p>Defines the test case name for junit.</p>
- * @param testName The test case name.
- */
- public TestBase(String testName) throws Exception
- {
- super(testName);
- if ( ! isInit)
- {
- RepositoryUtil.registerRepository("repositoryTest", "./src/test-config/repository.xml", "./target/repository");
- isInit = true;
- }
- }
-
- /** Setting up the testcase.
- * @see junit.framework.TestCase#setUp()
- */
- protected void setUp() throws Exception
- {
- super.setUp();
- DigesterMapperImpl mapper = new DigesterMapperImpl("./src/test-config/jcrmapping.xml");
- Repository repository = RepositoryUtil.getRepository("repositoryTest");
-
- session = RepositoryUtil.login(repository, "superuser", "superuser");
-
- // TODO : After Spring integration, move the following code into the assembly script
-
-
- HashMap atomicTypeConverters = new HashMap();
- atomicTypeConverters.put(String.class, new StringTypeConverterImpl(session.getValueFactory()));
- atomicTypeConverters.put(InputStream.class, new BinaryTypeConverterImpl(session.getValueFactory()));
- atomicTypeConverters.put(long.class, new LongTypeConverterImpl(session.getValueFactory()));
- atomicTypeConverters.put(Long.class, new LongTypeConverterImpl(session.getValueFactory()));
- atomicTypeConverters.put(int.class, new IntTypeConverterImpl(session.getValueFactory()));
- atomicTypeConverters.put(Integer.class, new IntTypeConverterImpl(session.getValueFactory()));
- atomicTypeConverters.put(double.class, new DoubleTypeConverterImpl(session.getValueFactory()));
- atomicTypeConverters.put(Double.class, new DoubleTypeConverterImpl(session.getValueFactory()));
- atomicTypeConverters.put(boolean.class, new BooleanTypeConverterImpl(session.getValueFactory()));
- atomicTypeConverters.put(Boolean.class, new BooleanTypeConverterImpl(session.getValueFactory()));
- atomicTypeConverters.put(Calendar.class, new CalendarTypeConverterImpl(session.getValueFactory()));
- atomicTypeConverters.put(GregorianCalendar.class, new CalendarTypeConverterImpl(session.getValueFactory()));
- atomicTypeConverters.put(Date.class, new UtilDateTypeConverterImpl(session.getValueFactory()));
- atomicTypeConverters.put(byte[].class, new ByteArrayTypeConverterImpl(session.getValueFactory()));
- atomicTypeConverters.put(Timestamp.class, new TimestampTypeConverterImpl(session.getValueFactory()));
- queryManager = new QueryManagerImpl(mapper, atomicTypeConverters);
- persistenceManager = new PersistenceManagerImpl(mapper, atomicTypeConverters, queryManager, session);
-
-
-
-
- }
-
- /**
- * @see junit.framework.TestCase#tearDown()
- */
- public void tearDown() throws Exception
- {
- getPersistenceManager().logout();
- super.tearDown();
- }
-
- /** Getter for property persistenceManager.
- * @return jcrSession
- */
- public PersistenceManager getPersistenceManager()
- {
- return persistenceManager;
- }
-
- /** Setter for property jcrSession.
- * @param persistenceManager The persistence manager
- */
- public void setPersistenceManager(PersistenceManager persistenceManager)
- {
- this.persistenceManager = persistenceManager;
- }
-
- public void exportDocument(String filePath, String nodePath, boolean skipBinary, boolean noRecurse)
- {
- try {
- BufferedOutputStream os = new BufferedOutputStream(new FileOutputStream(filePath));
+ /**
+ * Jcr session to work with.
+ */
+ protected Session session;
+
+ private PersistenceManager persistenceManager;
+
+ private QueryManager queryManager;
+
+ private static boolean isInit = false;
+
+ /**
+ * <p>Defines the test case name for junit.</p>
+ * @param testName The test case name.
+ */
+ public TestBase(String testName) throws Exception
+ {
+ super(testName);
+ if (!isInit)
+ {
+ RepositoryUtil.registerRepository("repositoryTest", "./src/test-config/repository.xml", "./target/repository");
+ isInit = true;
+ }
+ }
+
+ /** Setting up the testcase.
+ * @see junit.framework.TestCase#setUp()
+ */
+ protected void setUp() throws Exception
+ {
+ try
+ {
+ super.setUp();
+ String[] files = { "./src/test-config/jcrmapping.xml", "./src/test-config/jcrmapping-atomic.xml" };
+ DigesterMapperImpl mapper = new DigesterMapperImpl(files);
+ Repository repository = RepositoryUtil.getRepository("repositoryTest");
+
+ session = RepositoryUtil.login(repository, "superuser", "superuser");
+
+ // TODO : After Spring integration, move the following code into the assembly script
+
+ HashMap atomicTypeConverters = new HashMap();
+ atomicTypeConverters.put(String.class, new StringTypeConverterImpl(session.getValueFactory()));
+ atomicTypeConverters.put(InputStream.class, new BinaryTypeConverterImpl(session.getValueFactory()));
+ atomicTypeConverters.put(long.class, new LongTypeConverterImpl(session.getValueFactory()));
+ atomicTypeConverters.put(Long.class, new LongTypeConverterImpl(session.getValueFactory()));
+ atomicTypeConverters.put(int.class, new IntTypeConverterImpl(session.getValueFactory()));
+ atomicTypeConverters.put(Integer.class, new IntTypeConverterImpl(session.getValueFactory()));
+ atomicTypeConverters.put(double.class, new DoubleTypeConverterImpl(session.getValueFactory()));
+ atomicTypeConverters.put(Double.class, new DoubleTypeConverterImpl(session.getValueFactory()));
+ atomicTypeConverters.put(boolean.class, new BooleanTypeConverterImpl(session.getValueFactory()));
+ atomicTypeConverters.put(Boolean.class, new BooleanTypeConverterImpl(session.getValueFactory()));
+ atomicTypeConverters.put(Calendar.class, new CalendarTypeConverterImpl(session.getValueFactory()));
+ atomicTypeConverters.put(GregorianCalendar.class, new CalendarTypeConverterImpl(session.getValueFactory()));
+ atomicTypeConverters.put(Date.class, new UtilDateTypeConverterImpl(session.getValueFactory()));
+ atomicTypeConverters.put(byte[].class, new ByteArrayTypeConverterImpl(session.getValueFactory()));
+ atomicTypeConverters.put(Timestamp.class, new TimestampTypeConverterImpl(session.getValueFactory()));
+ queryManager = new QueryManagerImpl(mapper, atomicTypeConverters);
+ persistenceManager = new PersistenceManagerImpl(mapper, atomicTypeConverters, queryManager, session);
+ }
+ catch (Exception e)
+ {
+ e.printStackTrace();
+ fail();
+ }
+
+ }
+
+ /**
+ * @see junit.framework.TestCase#tearDown()
+ */
+ public void tearDown() throws Exception
+ {
+ getPersistenceManager().logout();
+ super.tearDown();
+ }
+
+ /** Getter for property persistenceManager.
+ * @return jcrSession
+ */
+ public PersistenceManager getPersistenceManager()
+ {
+ return persistenceManager;
+ }
+
+ /** Setter for property jcrSession.
+ * @param persistenceManager The persistence manager
+ */
+ public void setPersistenceManager(PersistenceManager persistenceManager)
+ {
+ this.persistenceManager = persistenceManager;
+ }
+
+ public void exportDocument(String filePath, String nodePath, boolean skipBinary, boolean noRecurse)
+ {
+ try
+ {
+ BufferedOutputStream os = new BufferedOutputStream(new FileOutputStream(filePath));
ContentHandler handler = new org.apache.xml.serialize.XMLSerializer(os, null).asContentHandler();
- session.exportDocumentView(nodePath, handler, skipBinary, noRecurse);
+ session.exportDocumentView(nodePath, handler, skipBinary, noRecurse);
os.flush();
- os.close();
- } catch (Exception e)
+ os.close();
+ }
+ catch (Exception e)
{
System.out.println("Impossible to export the content from : " + nodePath);
e.printStackTrace();
}
- }
-
- public void importDocument(String filePath, String nodePath)
- {
- try
+ }
+
+ public void importDocument(String filePath, String nodePath)
+ {
+ try
{
BufferedInputStream is = new BufferedInputStream(new FileInputStream(filePath));
session.importXML(nodePath, is, ImportUUIDBehavior.IMPORT_UUID_CREATE_NEW);
- session.save();
+ session.save();
is.close();
}
catch (Exception e)
@@ -177,17 +184,17 @@
System.out.println("Impossible to import the content from : " + nodePath);
e.printStackTrace();
}
-
- }
-
- protected Session getSession()
- {
- return this.session;
- }
-
- public QueryManager getQueryManager()
- {
- return this.queryManager;
- }
-
+
+ }
+
+ protected Session getSession()
+ {
+ return this.session;
+ }
+
+ public QueryManager getQueryManager()
+ {
+ return this.queryManager;
+ }
+
}
Added: incubator/graffito/trunk/jcr-mapping/src/test/org/apache/portals/graffito/jcr/persistence/impl/PersistenceManagerMultiValueQueryTest.java
URL: http://svn.apache.org/viewcvs/incubator/graffito/trunk/jcr-mapping/src/test/org/apache/portals/graffito/jcr/persistence/impl/PersistenceManagerMultiValueQueryTest.java?rev=315038&view=auto
==============================================================================
--- incubator/graffito/trunk/jcr-mapping/src/test/org/apache/portals/graffito/jcr/persistence/impl/PersistenceManagerMultiValueQueryTest.java (added)
+++ incubator/graffito/trunk/jcr-mapping/src/test/org/apache/portals/graffito/jcr/persistence/impl/PersistenceManagerMultiValueQueryTest.java Wed Oct 12 13:37:47 2005
@@ -0,0 +1,155 @@
+/* ========================================================================
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ========================================================================
+ */
+package org.apache.portals.graffito.jcr.persistence.impl;
+
+import java.util.ArrayList;
+import java.util.Collection;
+
+import javax.jcr.Node;
+import javax.jcr.Session;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.portals.graffito.jcr.TestBase;
+import org.apache.portals.graffito.jcr.persistence.PersistenceManager;
+import org.apache.portals.graffito.jcr.query.Filter;
+import org.apache.portals.graffito.jcr.query.Query;
+import org.apache.portals.graffito.jcr.query.QueryManager;
+import org.apache.portals.graffito.jcr.testmodel.MultiValue;
+
+/**
+ * Test NTCollectionConverterImpl
+ *
+ * @author <a href="mailto:christophe.lombart@sword-technologies.com">Christophe Lombart</a>
+ */
+public class PersistenceManagerMultiValueQueryTest extends TestBase
+{
+ private final static Log log = LogFactory.getLog(PersistenceManagerMultiValueQueryTest.class);
+
+ /**
+ * <p>Defines the test case name for junit.</p>
+ * @param testName The test case name.
+ */
+ public PersistenceManagerMultiValueQueryTest(String testName) throws Exception
+ {
+ super(testName);
+ }
+
+ public static Test suite()
+ {
+ // All methods starting with "test" will be executed in the test suite.
+ return new TestSuite(PersistenceManagerMultiValueQueryTest.class);
+ }
+
+ public void testMultiValueSearch()
+ {
+ try
+ {
+
+ importData();
+
+ QueryManager queryManager = this.getQueryManager();
+ Filter filter = queryManager.createFilter(MultiValue.class);
+ filter.addEqualTo("multiValues", "Value1");
+ Query query = queryManager.createQuery(filter);
+ PersistenceManager persistenceManager = this.getPersistenceManager();
+ Collection result = persistenceManager.getObjects(query);
+ assertTrue("Invalid number of objects - should be = 3", result.size() == 3);
+
+ queryManager = this.getQueryManager();
+ filter = queryManager.createFilter(MultiValue.class);
+ filter.addEqualTo("multiValues", "Value9");
+ query = queryManager.createQuery(filter);
+ persistenceManager = this.getPersistenceManager();
+ result = persistenceManager.getObjects(query);
+ assertTrue("Invalid number of objects - should be = 1", result.size() == 1);
+ MultiValue multiValue = (MultiValue)result.iterator().next();
+ assertTrue("Incorrect MultiValue found ", multiValue.getName().equals("m3"));
+
+ }
+ catch (Exception e)
+ {
+ e.printStackTrace();
+ fail("Exception occurs during the unit test : " + e);
+ }
+
+ }
+
+
+ public void importData()
+ {
+ try
+ {
+ PersistenceManager persistenceManager = getPersistenceManager();
+
+ if (persistenceManager.itemExists("/test"))
+ {
+ persistenceManager.remove("/test");
+ persistenceManager.save();
+ }
+
+ PersistenceManagerImpl persistenceManagerImpl = (PersistenceManagerImpl) persistenceManager;
+
+ Session session = persistenceManagerImpl.getSession();
+ Node root = session.getRootNode();
+ root.addNode("test");
+
+ MultiValue multiValue = new MultiValue();
+ multiValue.setName("m1");
+ ArrayList values = new ArrayList();
+ values.add("Value1");
+ values.add("Value2");
+ values.add("Value3");
+ values.add("Value4");
+ multiValue.setMultiValues(values);
+ persistenceManager.insert("/test/m1", multiValue);
+
+ multiValue = new MultiValue();
+ multiValue.setName("m2");
+ values = new ArrayList();
+ values.add("Value1");
+ values.add("Value5");
+ values.add("Value6");
+ values.add("Value7");
+ multiValue.setMultiValues(values);
+ persistenceManager.insert("/test/m2", multiValue);
+
+ multiValue = new MultiValue();
+ multiValue.setName("m3");
+ values = new ArrayList();
+ values.add("Value1");
+ values.add("Value2");
+ values.add("Value8");
+ values.add("Value9");
+
+ multiValue.setMultiValues(values);
+ persistenceManager.insert("/test/m3", multiValue);
+
+ persistenceManager.save();
+
+ }
+ catch(Exception e)
+ {
+ e.printStackTrace();
+ fail("Impossible to insert objects");
+ }
+
+ }
+}
\ No newline at end of file
Added: incubator/graffito/trunk/jcr-mapping/src/test/org/apache/portals/graffito/jcr/persistence/impl/PersistenceManagerRemoveTest.java
URL: http://svn.apache.org/viewcvs/incubator/graffito/trunk/jcr-mapping/src/test/org/apache/portals/graffito/jcr/persistence/impl/PersistenceManagerRemoveTest.java?rev=315038&view=auto
==============================================================================
--- incubator/graffito/trunk/jcr-mapping/src/test/org/apache/portals/graffito/jcr/persistence/impl/PersistenceManagerRemoveTest.java (added)
+++ incubator/graffito/trunk/jcr-mapping/src/test/org/apache/portals/graffito/jcr/persistence/impl/PersistenceManagerRemoveTest.java Wed Oct 12 13:37:47 2005
@@ -0,0 +1,165 @@
+/* ========================================================================
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ========================================================================
+ */
+package org.apache.portals.graffito.jcr.persistence.impl;
+
+import java.io.ByteArrayInputStream;
+import java.sql.Timestamp;
+import java.util.Calendar;
+import java.util.Collection;
+import java.util.Date;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.portals.graffito.jcr.TestBase;
+import org.apache.portals.graffito.jcr.persistence.PersistenceManager;
+import org.apache.portals.graffito.jcr.query.Filter;
+import org.apache.portals.graffito.jcr.query.Query;
+import org.apache.portals.graffito.jcr.query.QueryManager;
+import org.apache.portals.graffito.jcr.testmodel.Atomic;
+import org.apache.portals.graffito.jcr.testmodel.MultiValue;
+
+/**
+ * Test Query on atomic fields
+ *
+ * @author <a href="mailto:christophe.lombart@sword-technologies.com">Christophe Lombart</a>
+ */
+public class PersistenceManagerRemoveTest extends TestBase
+{
+ private final static Log log = LogFactory.getLog(PersistenceManagerRemoveTest.class);
+
+ /**
+ * <p>Defines the test case name for junit.</p>
+ * @param testName The test case name.
+ */
+ public PersistenceManagerRemoveTest(String testName) throws Exception
+ {
+ super(testName);
+
+ }
+
+ public static Test suite()
+ {
+ // All methods starting with "test" will be executed in the test suite.
+ return new TestSuite(PersistenceManagerRemoveTest.class);
+ }
+
+ public void tearDown() throws Exception
+ {
+
+ for (int i = 1; i <= 100; i++)
+ {
+ if (getPersistenceManager().itemExists("/test" + i))
+ {
+ getPersistenceManager().remove("/test" + i);
+ }
+
+ }
+
+ super.tearDown();
+ }
+
+ public void testRemove()
+ {
+
+ try
+ {
+ Date date = new Date();
+ this.importData(date);
+
+ PersistenceManager persistenceManager = this.getPersistenceManager();
+ persistenceManager.remove("/test5");
+ persistenceManager.save();
+
+ assertFalse("Test5 has not been removed", persistenceManager.itemExists("/test5"));
+
+ QueryManager queryManager = this.getQueryManager();
+ Filter filter = queryManager.createFilter(Atomic.class);
+ filter.addEqualTo("booleanObject" , new Boolean(false));
+ Query query = queryManager.createQuery(filter);
+ persistenceManager.remove(query);
+
+ filter = queryManager.createFilter(Atomic.class);
+ filter.setScope("//");
+ query = queryManager.createQuery(filter);
+ Collection result = persistenceManager.getObjects(query);
+ assertTrue("Invalid number of objects", result.size() == 5);
+
+ }
+ catch (Exception e)
+ {
+ e.printStackTrace();
+ fail();
+ }
+
+ }
+
+ private void importData(Date date)
+ {
+ try
+ {
+
+ PersistenceManager persistenceManager = getPersistenceManager();
+
+ if (persistenceManager.itemExists("/test"))
+ {
+ persistenceManager.remove("/test");
+ }
+
+ for (int i = 1; i <= 10; i++)
+ {
+ Atomic a = new Atomic();
+ a.setBooleanObject(new Boolean(i % 2 == 0));
+ a.setBooleanPrimitive(true);
+ a.setIntegerObject(new Integer(100 * i));
+ a.setIntPrimitive(200 + i);
+ a.setString("Test String " + i);
+ a.setDate(date);
+ Calendar calendar = Calendar.getInstance();
+ calendar.set(1976, 4, 20, 15, 40);
+ a.setCalendar(calendar);
+ a.setDoubleObject(new Double(2.12 + i));
+ a.setDoublePrimitive(1.23 + i);
+ long now = System.currentTimeMillis();
+ a.setTimestamp(new Timestamp(now));
+ if ((i % 2) == 0)
+ {
+ a.setByteArray("This is small object stored in a JCR repository".getBytes());
+ a.setInputStream(new ByteArrayInputStream("Test inputstream".getBytes()));
+ }
+ else
+ {
+ a.setByteArray("This is small object stored in a Graffito repository".getBytes());
+ a.setInputStream(new ByteArrayInputStream("Another Stream".getBytes()));
+ }
+ persistenceManager.insert("/test" + i, a);
+
+ }
+ persistenceManager.save();
+
+ }
+ catch (Exception e)
+ {
+ e.printStackTrace();
+ fail("Exception occurs during the unit test : " + e);
+ }
+
+ }
+
+}
\ No newline at end of file
Modified: incubator/graffito/trunk/jcr-mapping/src/test/org/apache/portals/graffito/jcr/persistence/impl/PersistenceManagerSimpleQueryTest.java
URL: http://svn.apache.org/viewcvs/incubator/graffito/trunk/jcr-mapping/src/test/org/apache/portals/graffito/jcr/persistence/impl/PersistenceManagerSimpleQueryTest.java?rev=315038&r1=315037&r2=315038&view=diff
==============================================================================
--- incubator/graffito/trunk/jcr-mapping/src/test/org/apache/portals/graffito/jcr/persistence/impl/PersistenceManagerSimpleQueryTest.java (original)
+++ incubator/graffito/trunk/jcr-mapping/src/test/org/apache/portals/graffito/jcr/persistence/impl/PersistenceManagerSimpleQueryTest.java Wed Oct 12 13:37:47 2005
@@ -30,7 +30,6 @@
import org.apache.portals.graffito.jcr.query.Filter;
import org.apache.portals.graffito.jcr.query.Query;
import org.apache.portals.graffito.jcr.query.QueryManager;
-import org.apache.portals.graffito.jcr.testmodel.C;
import org.apache.portals.graffito.jcr.testmodel.Page;
import org.apache.portals.graffito.jcr.testmodel.Paragraph;
@@ -59,6 +58,55 @@
return new TestSuite(PersistenceManagerSimpleQueryTest.class);
}
+ /**
+ * @see junit.framework.TestCase#setUp()
+ */
+ protected void setUp() throws Exception
+ {
+ super.setUp();
+ importData();
+ }
+
+ /**
+ * @see junit.framework.TestCase#tearDown()
+ */
+ public void tearDown() throws Exception
+ {
+ getPersistenceManager().remove("/test");
+ super.tearDown();
+ }
+
+ /**
+ * Test equalTo
+ *
+ */
+ public void testGetObjectEqualsTo()
+ {
+
+ try
+ {
+
+ // Build the Query Object
+ QueryManager queryManager = this.getQueryManager();
+ Filter filter = queryManager.createFilter(Paragraph.class);
+ filter.addEqualTo("text", "Para 1");
+
+
+ Query query = queryManager.createQuery(filter);
+
+ PersistenceManager persistenceManager = this.getPersistenceManager();
+ Paragraph paragraph = (Paragraph) persistenceManager.getObject(query);
+ assertNotNull("Object is null", paragraph);
+ assertTrue("Invalid paragraph found" , paragraph.getText().equals("Para 1"));
+
+ }
+ catch (Exception e)
+ {
+ e.printStackTrace();
+ fail("Exception occurs during the unit test : " + e);
+ }
+
+ }
/**
* Test equalTo
@@ -69,9 +117,7 @@
try
{
-
- importData();
-
+
// Build the Query Object
QueryManager queryManager = this.getQueryManager();
Filter filter = queryManager.createFilter(Paragraph.class);
@@ -104,8 +150,6 @@
try
{
- importData();
-
// Build the Query Object
QueryManager queryManager = this.getQueryManager();
Filter filter = queryManager.createFilter(Paragraph.class);
@@ -144,8 +188,6 @@
try
{
- importData();
-
// Build the Query Object
QueryManager queryManager = this.getQueryManager();
Filter filter1 = queryManager.createFilter(Paragraph.class);
@@ -182,8 +224,6 @@
try
{
- importData();
-
// Build the Query Object
QueryManager queryManager = this.getQueryManager();
Filter filter = queryManager.createFilter(Paragraph.class);
Modified: incubator/graffito/trunk/jcr-mapping/src/test/org/apache/portals/graffito/jcr/testmodel/MultiValue.java
URL: http://svn.apache.org/viewcvs/incubator/graffito/trunk/jcr-mapping/src/test/org/apache/portals/graffito/jcr/testmodel/MultiValue.java?rev=315038&r1=315037&r2=315038&view=diff
==============================================================================
--- incubator/graffito/trunk/jcr-mapping/src/test/org/apache/portals/graffito/jcr/testmodel/MultiValue.java (original)
+++ incubator/graffito/trunk/jcr-mapping/src/test/org/apache/portals/graffito/jcr/testmodel/MultiValue.java Wed Oct 12 13:37:47 2005
@@ -27,9 +27,29 @@
*/
public class MultiValue
{
+ private String name;
+
private Collection multiValues;
private Collection nullMultiValues;
+
+
+
+ /**
+ * @return Returns the name.
+ */
+ public String getName()
+ {
+ return name;
+ }
+
+ /**
+ * @param name The name to set.
+ */
+ public void setName(String name)
+ {
+ this.name = name;
+ }
/**
* @return Returns the multiValues.