From: <die...@us...> - 2010-03-18 19:43:19
|
Revision: 2151 http://openutils.svn.sourceforge.net/openutils/?rev=2151&view=rev Author: diego_schivo Date: 2010-03-18 19:43:12 +0000 (Thu, 18 Mar 2010) Log Message: ----------- CRIT-9 more unit-tests Added Paths: ----------- trunk/openutils-mgnlcriteria/src/test/java/net/sourceforge/openutils/mgnlcriteria/advanced/JcrContainsCriteriaSearchTest.java trunk/openutils-mgnlcriteria/src/test/resources/crit-bootstrap/website.jcr-contains.xml Added: trunk/openutils-mgnlcriteria/src/test/java/net/sourceforge/openutils/mgnlcriteria/advanced/JcrContainsCriteriaSearchTest.java =================================================================== --- trunk/openutils-mgnlcriteria/src/test/java/net/sourceforge/openutils/mgnlcriteria/advanced/JcrContainsCriteriaSearchTest.java (rev 0) +++ trunk/openutils-mgnlcriteria/src/test/java/net/sourceforge/openutils/mgnlcriteria/advanced/JcrContainsCriteriaSearchTest.java 2010-03-18 19:43:12 UTC (rev 2151) @@ -0,0 +1,121 @@ +package net.sourceforge.openutils.mgnlcriteria.advanced; + +import java.util.Collection; + +import junit.framework.Assert; +import info.magnolia.cms.beans.config.ContentRepository; +import info.magnolia.cms.core.Content; +import info.magnolia.context.MgnlContext; + +import org.apache.commons.lang.StringUtils; +import org.testng.annotations.BeforeClass; +import org.testng.annotations.Test; + +import net.sourceforge.openutils.mgnlcriteria.jcr.query.AdvancedResult; +import net.sourceforge.openutils.mgnlcriteria.jcr.query.AdvancedResultItem; +import net.sourceforge.openutils.mgnlcriteria.jcr.query.Criteria; +import net.sourceforge.openutils.mgnlcriteria.jcr.query.JCRCriteriaFactory; +import net.sourceforge.openutils.mgnlcriteria.jcr.query.JCRQueryException; +import net.sourceforge.openutils.mgnlcriteria.jcr.query.ResultIterator; +import net.sourceforge.openutils.mgnlcriteria.jcr.query.criterion.Restrictions; +import net.sourceforge.openutils.mgnlcriteria.tests.RepositoryTestNgTestcase; + + +/** + * @author dschivo + * @version $Id$ + */ +public class JcrContainsCriteriaSearchTest extends RepositoryTestNgTestcase +{ + + /** + * {@inheritDoc} + */ + @Override + @BeforeClass + protected void setUp() throws Exception + { + setRepositoryConfigFileName("/crit-repository/test-repositories.xml"); + setJackrabbitRepositoryConfigFileName("/crit-repository/jackrabbit-test-configuration.xml"); + + super.setUp(); + + bootstrapSingleResource("/crit-bootstrap/website.jcr-contains.xml"); + MgnlContext.getHierarchyManager(ContentRepository.WEBSITE).save(); + } + + @Test + public void testTest1() throws Exception + { + Criteria criteria = criteria("test?"); + Assert.assertEquals("//*[((@jcr:primaryType='mgnl:content')and(jcr:contains(@title,'test\\?')))]", StringUtils + .remove(criteria.toXpathExpression(), ' ')); + AdvancedResult advResult = null; + try + { + advResult = criteria.execute(); + } + catch (JCRQueryException e) + { + Assert.fail("Invalid query. " + e.getMessage()); + } + Assert.assertNotNull(advResult); + Assert.assertEquals(1, advResult.getTotalSize()); + ResultIterator<AdvancedResultItem> items = advResult.getItems(); + AdvancedResultItem item = items.next(); + Assert.assertEquals("hello test? world", item.getTitle()); + } + + @Test + public void testTest2() throws Exception + { + Criteria criteria = criteria("te?st"); +// Assert.assertEquals("//*[((@jcr:primaryType='mgnl:content')and(jcr:contains(@title,'te\\?st')))]", StringUtils +// .remove(criteria.toXpathExpression(), ' ')); + AdvancedResult advResult = null; + try + { + advResult = criteria.execute(); + } + catch (JCRQueryException e) + { + Assert.fail("Invalid query. " + e.getMessage()); + } + Assert.assertNotNull(advResult); + Assert.assertEquals(1, advResult.getTotalSize()); + ResultIterator<AdvancedResultItem> items = advResult.getItems(); + AdvancedResultItem item = items.next(); + Assert.assertEquals("hello te?st world", item.getTitle()); + } + + @Test + public void testMilano() throws Exception + { + Criteria criteria = criteria("\"Milano\""); +// Assert.assertEquals("//*[((@jcr:primaryType='mgnl:content')and(jcr:contains(@title,'\\\"Milano\\\"')))]", StringUtils +// .remove(criteria.toXpathExpression(), ' ')); + AdvancedResult advResult = null; + try + { + advResult = criteria.execute(); + } + catch (JCRQueryException e) + { + Assert.fail("Invalid query. " + e.getMessage()); + } + Assert.assertNotNull(advResult); + Assert.assertEquals(1, advResult.getTotalSize()); + ResultIterator<AdvancedResultItem> items = advResult.getItems(); + AdvancedResultItem item = items.next(); + Assert.assertEquals("hello \\\"Milano\\\" world", item.getTitle()); + } + + private Criteria criteria(String titleSearch) + { + Criteria criteria = JCRCriteriaFactory.createCriteria().setWorkspace(ContentRepository.WEBSITE); + criteria.setBasePath(StringUtils.EMPTY); + criteria.add(Restrictions.eq("@jcr:primaryType", "mgnl:content")); + criteria.add(Restrictions.contains("@title", titleSearch)); + return criteria; + } +} Property changes on: trunk/openutils-mgnlcriteria/src/test/java/net/sourceforge/openutils/mgnlcriteria/advanced/JcrContainsCriteriaSearchTest.java ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:keywords + Author Date Id Revision Added: svn:eol-style + native Added: trunk/openutils-mgnlcriteria/src/test/resources/crit-bootstrap/website.jcr-contains.xml =================================================================== --- trunk/openutils-mgnlcriteria/src/test/resources/crit-bootstrap/website.jcr-contains.xml (rev 0) +++ trunk/openutils-mgnlcriteria/src/test/resources/crit-bootstrap/website.jcr-contains.xml 2010-03-18 19:43:12 UTC (rev 2151) @@ -0,0 +1,155 @@ +<?xml version="1.0" encoding="UTF-8"?> +<sv:node sv:name="jcr-contains" xmlns:sv="http://www.jcp.org/jcr/sv/1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <sv:property sv:name="jcr:primaryType" sv:type="Name"> + <sv:value>mgnl:content</sv:value> + </sv:property> + <sv:property sv:name="jcr:mixinTypes" sv:type="Name"> + <sv:value>mix:lockable</sv:value> + </sv:property> + <sv:property sv:name="jcr:uuid" sv:type="String"> + <sv:value>3d54f6f4-2460-44ae-9ee7-a76b2cfac715</sv:value> + </sv:property> + <sv:property sv:name="jcr:createdBy" sv:type="String"> + <sv:value>admin</sv:value> + </sv:property> + <sv:node sv:name="MetaData"> + <sv:property sv:name="jcr:primaryType" sv:type="Name"> + <sv:value>mgnl:metaData</sv:value> + </sv:property> + <sv:property sv:name="jcr:createdBy" sv:type="String"> + <sv:value>admin</sv:value> + </sv:property> + <sv:property sv:name="mgnl:authorid" sv:type="String"> + <sv:value>superuser</sv:value> + </sv:property> + <sv:property sv:name="mgnl:creationdate" sv:type="Date"> + <sv:value>2010-03-18T20:11:22.366+01:00</sv:value> + </sv:property> + <sv:property sv:name="mgnl:lastmodified" sv:type="Date"> + <sv:value>2010-03-18T20:11:37.334+01:00</sv:value> + </sv:property> + <sv:property sv:name="mgnl:template" sv:type="String"> + <sv:value>t-redirect</sv:value> + </sv:property> + </sv:node> + <sv:node sv:name="test1"> + <sv:property sv:name="jcr:primaryType" sv:type="Name"> + <sv:value>mgnl:content</sv:value> + </sv:property> + <sv:property sv:name="jcr:mixinTypes" sv:type="Name"> + <sv:value>mix:lockable</sv:value> + </sv:property> + <sv:property sv:name="jcr:uuid" sv:type="String"> + <sv:value>10b5e798-7b05-46a6-ac3b-9b4edb381576</sv:value> + </sv:property> + <sv:property sv:name="jcr:createdBy" sv:type="String"> + <sv:value>admin</sv:value> + </sv:property> + <sv:property sv:name="title" sv:type="String"> + <sv:value>hello test? world</sv:value> + </sv:property> + <sv:node sv:name="MetaData"> + <sv:property sv:name="jcr:primaryType" sv:type="Name"> + <sv:value>mgnl:metaData</sv:value> + </sv:property> + <sv:property sv:name="jcr:createdBy" sv:type="String"> + <sv:value>admin</sv:value> + </sv:property> + <sv:property sv:name="mgnl:activated" sv:type="Boolean"> + <sv:value>false</sv:value> + </sv:property> + <sv:property sv:name="mgnl:authorid" sv:type="String"> + <sv:value>superuser</sv:value> + </sv:property> + <sv:property sv:name="mgnl:creationdate" sv:type="Date"> + <sv:value>2010-03-18T20:11:39.803+01:00</sv:value> + </sv:property> + <sv:property sv:name="mgnl:lastmodified" sv:type="Date"> + <sv:value>2010-03-18T20:31:16.022+01:00</sv:value> + </sv:property> + <sv:property sv:name="mgnl:template" sv:type="String"> + <sv:value>t-redirect</sv:value> + </sv:property> + </sv:node> + </sv:node> + <sv:node sv:name="test2"> + <sv:property sv:name="jcr:primaryType" sv:type="Name"> + <sv:value>mgnl:content</sv:value> + </sv:property> + <sv:property sv:name="jcr:mixinTypes" sv:type="Name"> + <sv:value>mix:lockable</sv:value> + </sv:property> + <sv:property sv:name="jcr:uuid" sv:type="String"> + <sv:value>96e53868-c919-46d3-9edc-9d002723305b</sv:value> + </sv:property> + <sv:property sv:name="jcr:createdBy" sv:type="String"> + <sv:value>admin</sv:value> + </sv:property> + <sv:property sv:name="title" sv:type="String"> + <sv:value>hello te?st world</sv:value> + </sv:property> + <sv:node sv:name="MetaData"> + <sv:property sv:name="jcr:primaryType" sv:type="Name"> + <sv:value>mgnl:metaData</sv:value> + </sv:property> + <sv:property sv:name="jcr:createdBy" sv:type="String"> + <sv:value>admin</sv:value> + </sv:property> + <sv:property sv:name="mgnl:activated" sv:type="Boolean"> + <sv:value>false</sv:value> + </sv:property> + <sv:property sv:name="mgnl:authorid" sv:type="String"> + <sv:value>superuser</sv:value> + </sv:property> + <sv:property sv:name="mgnl:creationdate" sv:type="Date"> + <sv:value>2010-03-18T20:11:39.803+01:00</sv:value> + </sv:property> + <sv:property sv:name="mgnl:lastmodified" sv:type="Date"> + <sv:value>2010-03-18T20:31:18.162+01:00</sv:value> + </sv:property> + <sv:property sv:name="mgnl:template" sv:type="String"> + <sv:value>t-redirect</sv:value> + </sv:property> + </sv:node> + </sv:node> + <sv:node sv:name="milano"> + <sv:property sv:name="jcr:primaryType" sv:type="Name"> + <sv:value>mgnl:content</sv:value> + </sv:property> + <sv:property sv:name="jcr:mixinTypes" sv:type="Name"> + <sv:value>mix:lockable</sv:value> + </sv:property> + <sv:property sv:name="jcr:uuid" sv:type="String"> + <sv:value>f6403aa4-6b48-41d7-a1c1-60e4101cc203</sv:value> + </sv:property> + <sv:property sv:name="jcr:createdBy" sv:type="String"> + <sv:value>admin</sv:value> + </sv:property> + <sv:property sv:name="title" sv:type="String"> + <sv:value>hello "Milano" world</sv:value> + </sv:property> + <sv:node sv:name="MetaData"> + <sv:property sv:name="jcr:primaryType" sv:type="Name"> + <sv:value>mgnl:metaData</sv:value> + </sv:property> + <sv:property sv:name="jcr:createdBy" sv:type="String"> + <sv:value>admin</sv:value> + </sv:property> + <sv:property sv:name="mgnl:activated" sv:type="Boolean"> + <sv:value>false</sv:value> + </sv:property> + <sv:property sv:name="mgnl:authorid" sv:type="String"> + <sv:value>superuser</sv:value> + </sv:property> + <sv:property sv:name="mgnl:creationdate" sv:type="Date"> + <sv:value>2010-03-18T20:13:30.866+01:00</sv:value> + </sv:property> + <sv:property sv:name="mgnl:lastmodified" sv:type="Date"> + <sv:value>2010-03-18T20:39:02.475+01:00</sv:value> + </sv:property> + <sv:property sv:name="mgnl:template" sv:type="String"> + <sv:value>t-redirect</sv:value> + </sv:property> + </sv:node> + </sv:node> +</sv:node> Property changes on: trunk/openutils-mgnlcriteria/src/test/resources/crit-bootstrap/website.jcr-contains.xml ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:keywords + Author Date Id Revision Added: svn:eol-style + native This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |