/*
* 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;
// }
// });
// }
}