/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You 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.xcmis.search.query.content;
import org.junit.Ignore;
/**
* <code>NodeNameTest</code> checks if conversion of literals is correctly
* performed and operators work as specified.
*/
@Ignore
public class NodeNameTest extends AbstractQOMTest
{
// private Node node1;
//
// protected void setUp() throws Exception {
// super.setUp();
// node1 = testRootNode.addNode(nodeName1, testNodeType);
// superuser.save();
// }
//
// protected void tearDown() throws Exception {
// node1 = null;
// super.tearDown();
// }
//
// public void testStringLiteral() throws RepositoryException {
// Value literal = vf.createValue(nodeName1);
// QueryObjectModel qom = createQuery(QueryObjectModelConstants.JCR_OPERATOR_EQUAL_TO, literal);
// checkQOM(qom, new Node[]{node1});
// }
//
// public void testStringLiteralInvalidName() throws RepositoryException {
// Value literal = vf.createValue("[" + nodeName1);
// try {
// createQuery(QueryObjectModelConstants.JCR_OPERATOR_EQUAL_TO, literal).execute();
// fail("NodeName comparison with STRING that cannot be converted to NAME must fail with InvalidQueryException");
// } catch (InvalidQueryException e) {
// // expected
// }
// try {
// String stmt = "SELECT * FROM [" + testNodeType + "] AS s " +
// "WHERE NAME(s) = '" + literal.getString() + "'";
// qm.createQuery(stmt, Query.JCR_SQL2).execute();
// fail("NAME() comparison with STRING that cannot be converted to NAME must fail with InvalidQueryException");
// } catch (InvalidQueryException e) {
// // expected
// }
// }
//
// public void testBinaryLiteral() throws RepositoryException {
// Value literal = vf.createValue(
// nodeName1, PropertyType.BINARY);
// QueryObjectModel qom = createQuery(QueryObjectModelConstants.JCR_OPERATOR_EQUAL_TO, literal);
// checkQOM(qom, new Node[]{node1});
// }
//
// public void testDateLiteral() throws RepositoryException {
// Value literal = vf.createValue(Calendar.getInstance());
// try {
// createQuery(QueryObjectModelConstants.JCR_OPERATOR_EQUAL_TO, literal).execute();
// fail("NodeName comparison with DATE must fail with InvalidQueryException");
// } catch (InvalidQueryException e) {
// // expected
// }
// try {
// String stmt = "SELECT * FROM [" + testNodeType + "] AS s " +
// "WHERE NAME(s) = CAST('" + literal.getString() + "' AS DATE)";
// qm.createQuery(stmt, Query.JCR_SQL2).execute();
// fail("NAME() comparison with DATE must fail with InvalidQueryException");
// } catch (InvalidQueryException e) {
// // expected
// }
// }
//
// public void testDoubleLiteral() throws RepositoryException {
// Value literal = vf.createValue(Math.PI);
// try {
// createQuery(QueryObjectModelConstants.JCR_OPERATOR_EQUAL_TO, literal).execute();
// fail("NodeName comparison with DOUBLE must fail with InvalidQueryException");
// } catch (InvalidQueryException e) {
// // expected
// }
// try {
// String stmt = "SELECT * FROM [" + testNodeType + "] AS s " +
// "WHERE NAME(s) = CAST('" + literal.getString() + "' AS DOUBLE)";
// qm.createQuery(stmt, Query.JCR_SQL2).execute();
// fail("NAME() comparison with DOUBLE must fail with InvalidQueryException");
// } catch (InvalidQueryException e) {
// // expected
// }
// }
//
// public void testDecimalLiteral() throws RepositoryException {
// Value literal = vf.createValue(new BigDecimal(283));
// try {
// createQuery(QueryObjectModelConstants.JCR_OPERATOR_EQUAL_TO, literal).execute();
// fail("NodeName comparison with DECIMAL must fail with InvalidQueryException");
// } catch (InvalidQueryException e) {
// // expected
// }
// try {
// String stmt = "SELECT * FROM [" + testNodeType + "] AS s " +
// "WHERE NAME(s) = CAST('" + literal.getString() + "' AS DECIMAL)";
// qm.createQuery(stmt, Query.JCR_SQL2).execute();
// fail("NAME() comparison with DECIMAL must fail with InvalidQueryException");
// } catch (InvalidQueryException e) {
// // expected
// }
// }
//
// public void testLongLiteral() throws RepositoryException {
// Value literal = vf.createValue(283);
// try {
// createQuery(QueryObjectModelConstants.JCR_OPERATOR_EQUAL_TO, literal).execute();
// fail("NodeName comparison with LONG must fail with InvalidQueryException");
// } catch (InvalidQueryException e) {
// // expected
// }
// try {
// String stmt = "SELECT * FROM [" + testNodeType + "] AS s " +
// "WHERE NAME(s) = CAST(" + literal.getString() + " AS LONG)";
// qm.createQuery(stmt, Query.JCR_SQL2).execute();
// fail("NAME() comparison with LONG must fail with InvalidQueryException");
// } catch (InvalidQueryException e) {
// // expected
// }
// }
//
// public void testBooleanLiteral() throws RepositoryException {
// Value literal = vf.createValue(true);
// try {
// createQuery(QueryObjectModelConstants.JCR_OPERATOR_EQUAL_TO, literal).execute();
// fail("NodeName comparison with BOOLEAN must fail with InvalidQueryException");
// } catch (InvalidQueryException e) {
// // expected
// }
// try {
// String stmt = "SELECT * FROM [" + testNodeType + "] AS s " +
// "WHERE NAME(s) = CAST(" + literal.getString() + " AS BOOLEAN)";
// qm.createQuery(stmt, Query.JCR_SQL2).execute();
// fail("NAME() comparison with BOOLEAN must fail with InvalidQueryException");
// } catch (InvalidQueryException e) {
// // expected
// }
// }
//
// public void testNameLiteral() throws RepositoryException {
// Value literal = vf.createValue(nodeName1, PropertyType.NAME);
// QueryObjectModel qom = createQuery(QueryObjectModelConstants.JCR_OPERATOR_EQUAL_TO, literal);
// checkQOM(qom, new Node[]{node1});
// }
//
// public void testPathLiteral() throws RepositoryException {
// Value literal = vf.createValue(nodeName1, PropertyType.PATH);
// QueryObjectModel qom = createQuery(QueryObjectModelConstants.JCR_OPERATOR_EQUAL_TO, literal);
// checkQOM(qom, new Node[]{node1});
//
// literal = vf.createValue(node1.getPath(), PropertyType.PATH);
// try {
// createQuery(QueryObjectModelConstants.JCR_OPERATOR_EQUAL_TO, literal).execute();
// fail("NodeName comparison with absolute PATH must fail with InvalidQueryException");
// } catch (InvalidQueryException e) {
// // expected
// }
// try {
// String stmt = "SELECT * FROM [" + testNodeType + "] AS s " +
// "WHERE NAME(s) = CAST('" + literal.getString() + "' AS PATH)";
// qm.createQuery(stmt, Query.JCR_SQL2).execute();
// fail("NAME() comparison with absolute PATH must fail with InvalidQueryException");
// } catch (InvalidQueryException e) {
// // expected
// }
//
// literal = vf.createValue(nodeName1 + "/" + nodeName1, PropertyType.PATH);
// try {
// createQuery(QueryObjectModelConstants.JCR_OPERATOR_EQUAL_TO, literal).execute();
// fail("NodeName comparison with PATH length >1 must fail with InvalidQueryException");
// } catch (InvalidQueryException e) {
// // expected
// }
// try {
// String stmt = "SELECT * FROM [" + testNodeType + "] AS s " +
// "WHERE NAME(s) = CAST('" + literal.getString() + "' AS PATH)";
// qm.createQuery(stmt, Query.JCR_SQL2).execute();
// fail("NAME() comparison with PATH length >1 must fail with InvalidQueryException");
// } catch (InvalidQueryException e) {
// // expected
// }
// }
//
// public void testReferenceLiteral() throws RepositoryException,
// NotExecutableException {
// ensureMixinType(node1, mixReferenceable);
// superuser.save();
// Value literal = vf.createValue(node1);
// try {
// createQuery(QueryObjectModelConstants.JCR_OPERATOR_EQUAL_TO, literal).execute();
// fail("NodeName comparison with REFERENCE must fail with InvalidQueryException");
// } catch (InvalidQueryException e) {
// // expected
// }
// try {
// String stmt = "SELECT * FROM [" + testNodeType + "] AS s " +
// "WHERE NAME(s) = CAST('" + literal.getString() + "' AS REFERENCE)";
// qm.createQuery(stmt, Query.JCR_SQL2).execute();
// fail("NAME() comparison with REFERENCE must fail with InvalidQueryException");
// } catch (InvalidQueryException e) {
// // expected
// }
// }
//
// public void testWeakReferenceLiteral() throws RepositoryException,
// NotExecutableException {
// ensureMixinType(node1, mixReferenceable);
// superuser.save();
// Value literal = vf.createValue(node1, true);
// try {
// createQuery(QueryObjectModelConstants.JCR_OPERATOR_EQUAL_TO, literal).execute();
// fail("NodeName comparison with WEAKREFERENCE must fail with InvalidQueryException");
// } catch (InvalidQueryException e) {
// // expected
// }
// try {
// String stmt = "SELECT * FROM [" + testNodeType + "] AS s " +
// "WHERE NAME(s) = CAST('" + literal.getString() + "' AS WEAKREFERENCE)";
// qm.createQuery(stmt, Query.JCR_SQL2).execute();
// fail("NAME() comparison with absolute WEAKREFERENCE must fail with InvalidQueryException");
// } catch (InvalidQueryException e) {
// // expected
// }
// }
//
// /**
// * If the URI consists of a single path segment without a colon (for
// * example, simply bar) it is converted to a NAME by percent-unescaping
// * followed by UTF-8-decoding of the byte sequence. If it has a redundant
// * leading ./ followed by a single segment (with or without a colon, like
// * ./bar or ./foo:bar ) the redundant ./ is removed and the remainder is
// * converted to a NAME in the same way. Otherwise a ValueFormatException is
// * thrown.
// */
// public void testURILiteral() throws RepositoryException {
// Value literal = vf.createValue("./" + nodeName1, PropertyType.URI);
// QueryObjectModel qom = createQuery(QueryObjectModelConstants.JCR_OPERATOR_EQUAL_TO, literal);
// checkQOM(qom, new Node[]{node1});
//
// literal = vf.createValue("http://example.com", PropertyType.URI);
// try {
// createQuery(QueryObjectModelConstants.JCR_OPERATOR_EQUAL_TO, literal).execute();
// fail("NodeName comparison with URI that cannot be converted to NAME must fail with InvalidQueryException");
// } catch (InvalidQueryException e) {
// // expected
// }
// try {
// String stmt = "SELECT * FROM [" + testNodeType + "] AS s " +
// "WHERE NAME(s) = CAST('" + literal.getString() + "' AS URI)";
// qm.createQuery(stmt, Query.JCR_SQL2).execute();
// fail("NAME() comparison with URI that cannot be converted to NAME must fail with InvalidQueryException");
// } catch (InvalidQueryException e) {
// // expected
// }
// }
//
// public void testEqualTo() throws RepositoryException {
// checkOperator(QueryObjectModelConstants.JCR_OPERATOR_EQUAL_TO, false, true, false);
// }
//
// public void testNotEqualTo() throws RepositoryException {
// checkOperator(QueryObjectModelConstants.JCR_OPERATOR_NOT_EQUAL_TO, true, false, true);
// }
//
// //------------------------------< helper >----------------------------------
//
// private void checkOperator(String operator,
// boolean matchesLesser,
// boolean matchesEqual,
// boolean matchesGreater)
// throws RepositoryException {
// checkOperatorSingleLiteral(createLexicographicallyLesser(nodeName1), operator, matchesLesser);
// checkOperatorSingleLiteral(nodeName1, operator, matchesEqual);
// checkOperatorSingleLiteral(createLexicographicallyGreater(nodeName1), operator, matchesGreater);
// }
//
// private void checkOperatorSingleLiteral(String literal,
// String operator,
// boolean matches)
// throws RepositoryException {
// Value value = vf.createValue(literal);
// QueryObjectModel qom = createQuery(operator, value);
// checkQOM(qom, matches ? new Node[]{node1} : new Node[0]);
// }
//
// private String createLexicographicallyGreater(String name) {
// StringBuffer tmp = new StringBuffer(name);
// tmp.setCharAt(tmp.length() - 1, (char) (tmp.charAt(tmp.length() - 1) + 1));
// return tmp.toString();
// }
//
// private String createLexicographicallyLesser(String name) {
// StringBuffer tmp = new StringBuffer(name);
// tmp.setCharAt(tmp.length() - 1, (char) (tmp.charAt(tmp.length() - 1) - 1));
// return tmp.toString();
// }
//
// private QueryObjectModel createQuery(String operator, Value literal)
// throws RepositoryException {
// return qf.createQuery(
// qf.selector(testNodeType, "s"),
// qf.and(
// qf.childNode("s", testRoot),
// qf.comparison(
// qf.nodeName("s"),
// operator,
// qf.literal(literal)
// )
// ), null, null);
// }
}