/*
* Copyright (C) 2003-2007 eXo Platform SAS.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Affero General Public License
* as published by the Free Software Foundation; either version 3
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, see<http://www.gnu.org/licenses/>.
*/
package org.exoplatform.services.jcr.usecases.query;
import org.exoplatform.services.jcr.usecases.BaseUsecasesTest;
import javax.jcr.Node;
import javax.jcr.NodeIterator;
import javax.jcr.RepositoryException;
import javax.jcr.query.Query;
import javax.jcr.query.QueryManager;
import javax.jcr.query.QueryResult;
/**
* Created by The eXo Platform SAS Author : Anh Nguyen ntuananh.vn@gmail.com Nov
* 15, 2007
*/
public class TestI18NSQLQuery extends BaseUsecasesTest
{
private static String[] input;
static
{
input = new String[]{"ngocanh's o'clock"};
}
public void testI18NQueryPath() throws Exception
{
// Create node
try
{
String content = input[0];
root.addNode(content, "nt:unstructured");
root.save();
}
catch (RepositoryException e)
{
// OK there must be exception - path is illegal
}
// String sqlQuery = "select * from nt:unstructured where jcr:path like
// '/ngocanh''s o''clock' ";
}
public void testI18NQueryProperty() throws Exception
{
// We have problem with unicode chars, in Vietnamese or French, the result
// alway empty
// Create nodes
String content = input[0];
Node childNode = root.addNode("testNode", "nt:unstructured");
childNode.setProperty("exo:testi18n", content);
root.save();
// Do Query by properties
String sqlQuery = "select * from nt:unstructured where exo:testi18n like 'ngocanh''s o''clock' ";
QueryManager manager = session.getWorkspace().getQueryManager();
Query query = manager.createQuery(sqlQuery, Query.SQL);
QueryResult queryResult = query.execute();
NodeIterator iter = queryResult.getNodes();
assertEquals(1, iter.getSize());
}
}