/* * 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>ColumnTest</code> contains test cases related to QOM column. */ @Ignore public class ColumnTest extends AbstractQOMTest { // private static final String SELECTOR_1 = "s"; // // private static final String SELECTOR_2 = "p"; // // private static final String TEST_VALUE = "value"; // // /** // * From the spec: // * <p/> // * If propertyName is not specified, a column is included for each // * single-valued non-residual property of the node type specified by the // * nodeType attribute of the selector selectorName. // * <p/> // * [..] If propertyName is not specified, // * columnName must not be specified, and the included columns will be // * named "selectorName.propertyName". // */ // public void testExpandColumnsForNodeType() throws RepositoryException { // QueryObjectModel qom = qf.createQuery( // qf.selector(testNodeType, SELECTOR_1), // null, // null, // new Column[]{qf.column(SELECTOR_1, null, null)}); // forQOMandSQL2(qom, new Callable() { // public Object call(Query query) throws RepositoryException { // QueryResult result = query.execute(); // List names = new ArrayList(Arrays.asList(result.getColumnNames())); // NodeTypeManager ntMgr = superuser.getWorkspace().getNodeTypeManager(); // NodeType nt = ntMgr.getNodeType(testNodeType); // PropertyDefinition[] propDefs = nt.getPropertyDefinitions(); // for (int i = 0; i < propDefs.length; i++) { // PropertyDefinition propDef = propDefs[i]; // if (!propDef.isMultiple() && !propDef.getName().equals("*")) { // String columnName = SELECTOR_1 + "." + propDef.getName(); // assertTrue("Missing column: " + columnName, // names.remove(columnName)); // } // } // for (Iterator it = names.iterator(); it.hasNext(); ) { // fail(it.next() + " is not a property on node type " + testNodeType); // } // return null; // } // }); // } // // /** // * From the spec: // * <p/> // * If propertyName is specified, columnName is required and used to name // * the column in the tabular results. // */ // public void testColumnNames() throws RepositoryException { // QueryObjectModel qom = qf.createQuery( // qf.selector(testNodeType, SELECTOR_1), // null, // null, // new Column[]{qf.column(SELECTOR_1, propertyName1, propertyName1)}); // forQOMandSQL2(qom, new Callable() { // public Object call(Query query) throws RepositoryException { // QueryResult result = query.execute(); // List names = new ArrayList(Arrays.asList(result.getColumnNames())); // assertTrue("Missing column: " + propertyName1, names.remove(propertyName1)); // for (Iterator it = names.iterator(); it.hasNext(); ) { // fail(it.next() + " was not declared as a column"); // } // return null; // } // }); // } // // public void testMultiColumn() throws RepositoryException { // Node n = testRootNode.addNode(nodeName1, testNodeType); // n.setProperty(propertyName1, TEST_VALUE); // superuser.save(); // // final String columnName1 = SELECTOR_1 + "." + propertyName1; // final String columnName2 = SELECTOR_2 + "." + propertyName1; // QueryObjectModel qom = qf.createQuery( // qf.join( // qf.selector(testNodeType, SELECTOR_1), // qf.selector(testNodeType, SELECTOR_2), // QueryObjectModelConstants.JCR_JOIN_TYPE_INNER, // qf.equiJoinCondition(SELECTOR_1, propertyName1, SELECTOR_2, propertyName1) // ), // qf.descendantNode(SELECTOR_1, testRoot), // null, // new Column[]{ // qf.column(SELECTOR_1, propertyName1, columnName1), // qf.column(SELECTOR_2, propertyName1, columnName2) // } // ); // forQOMandSQL2(qom, new Callable() { // public Object call(Query query) throws RepositoryException { // RowIterator rows = query.execute().getRows(); // assertTrue("empty result", rows.hasNext()); // Row r = rows.nextRow(); // assertEquals("unexpected value", TEST_VALUE, r.getValue(columnName1).getString()); // assertEquals("unexpected value", TEST_VALUE, r.getValue(columnName2).getString()); // return null; // } // }); // } }