blob: 0a807953df7e073b937ca9b49dbde806d934e7c9 [file] [log] [blame]
/*
* 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.apache.solr.core;
import javax.xml.parsers.DocumentBuilderFactory;
import org.apache.solr.schema.IndexSchema;
import org.apache.solr.update.processor.RegexReplaceProcessorFactory;
import org.apache.solr.update.processor.UpdateRequestProcessorChain;
import org.apache.solr.SolrTestCaseJ4;
import org.junit.Assume;
import org.junit.BeforeClass;
/**
* Test both XInclude as well as more old school "entity includes"
*/
public class TestXIncludeConfig extends SolrTestCaseJ4 {
@BeforeClass
public static void beforeClass() throws Exception {
initCore("solrconfig-xinclude.xml", "schema-xinclude.xml");
}
@Override
public void setUp() throws Exception {
javax.xml.parsers.DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
try {
//see whether it even makes sense to run this test
dbf.setXIncludeAware(true);
dbf.setNamespaceAware(true);
} catch (UnsupportedOperationException e) {
Assume.assumeTrue(false);
}
super.setUp();
}
public void testXInclude() throws Exception {
SolrCore core = h.getCore();
assertNotNull("includedHandler is null",
core.getRequestHandler("/includedHandler"));
UpdateRequestProcessorChain chain
= core.getUpdateProcessingChain("special-include");
assertNotNull("chain is missing included processor", chain);
assertEquals("chain with inclued processor is wrong size",
1, chain.getProcessors().size());
assertEquals("chain has wrong included processor",
RegexReplaceProcessorFactory.class,
chain.getProcessors().get(0).getClass());
IndexSchema schema = core.getLatestSchema();
// xinclude
assertNotNull("ft-included is null", schema.getFieldTypeByName("ft-included"));
assertNotNull("field-included is null", schema.getFieldOrNull("field-included"));
// entity include
assertNotNull("ft-entity-include1 is null",
schema.getFieldTypeByName("ft-entity-include1"));
assertNotNull("ft-entity-include2 is null",
schema.getFieldTypeByName("ft-entity-include2"));
// sanity check
assertNull("ft-entity-include3 is not null", // Does Not Exist Anywhere
schema.getFieldTypeByName("ft-entity-include3"));
}
}