blob: b60092b62e35540b50f781cb8c4a7dd01885cf61 [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.rest.schema;
import org.apache.solr.rest.SolrRestletTestBase;
import org.junit.Test;
public class TestSchemaResource extends SolrRestletTestBase {
@Test
public void testXMLResponse() throws Exception {
assertQ("/schema/?indent=on&wt=xml", // should work with or without trailing slash on '/schema/' path
"count(/response/lst[@name='schema']/str[@name='name']) = 1",
"/response/lst[@name='schema']/str[@name='name'][.='test-rest']",
"count(/response/lst[@name='schema']/float[@name='version']) = 1",
"/response/lst[@name='schema']/float[@name='version'][.='1.6']",
"count(/response/lst[@name='schema']/str[@name='uniqueKey']) = 1",
"/response/lst[@name='schema']/str[@name='uniqueKey'][.='id']",
"(/response/lst[@name='schema']/arr[@name='fieldTypes']/lst/str[@name='name'])[1] = 'HTMLstandardtok'",
"(/response/lst[@name='schema']/arr[@name='fieldTypes']/lst/str[@name='name'])[2] = 'HTMLwhitetok'",
"(/response/lst[@name='schema']/arr[@name='fieldTypes']/lst/str[@name='name'])[3] = 'boolean'",
"(/response/lst[@name='schema']/arr[@name='fields']/lst/str[@name='name'])[1] = 'HTMLstandardtok'",
"(/response/lst[@name='schema']/arr[@name='fields']/lst/str[@name='name'])[2] = 'HTMLwhitetok'",
"(/response/lst[@name='schema']/arr[@name='fields']/lst/str[@name='name'])[3] = '_version_'",
"(/response/lst[@name='schema']/arr[@name='dynamicFields']/lst/str[@name='name'])[1] = '*_coordinate'",
"(/response/lst[@name='schema']/arr[@name='dynamicFields']/lst/str[@name='name'])[2] = 'ignored_*'",
"(/response/lst[@name='schema']/arr[@name='dynamicFields']/lst/str[@name='name'])[3] = '*_mfacet'",
"/response/lst[@name='schema']/arr[@name='copyFields']/lst[ str[@name='source'][.='title']"
+" and str[@name='dest'][.='title_stemmed']"
+" and int[@name='maxChars'][.='200']]",
"/response/lst[@name='schema']/arr[@name='copyFields']/lst[ str[@name='source'][.='title']"
+" and str[@name='dest'][.='dest_sub_no_ast_s']]",
"/response/lst[@name='schema']/arr[@name='copyFields']/lst[ str[@name='source'][.='*_i']"
+" and str[@name='dest'][.='title']]",
"/response/lst[@name='schema']/arr[@name='copyFields']/lst[ str[@name='source'][.='*_i']"
+" and str[@name='dest'][.='*_s']]",
"/response/lst[@name='schema']/arr[@name='copyFields']/lst[ str[@name='source'][.='*_i']"
+" and str[@name='dest'][.='*_dest_sub_s']]",
"/response/lst[@name='schema']/arr[@name='copyFields']/lst[ str[@name='source'][.='*_i']"
+" and str[@name='dest'][.='dest_sub_no_ast_s']]",
"/response/lst[@name='schema']/arr[@name='copyFields']/lst[ str[@name='source'][.='*_src_sub_i']"
+" and str[@name='dest'][.='title']]",
"/response/lst[@name='schema']/arr[@name='copyFields']/lst[ str[@name='source'][.='*_src_sub_i']"
+" and str[@name='dest'][.='*_s']]",
"/response/lst[@name='schema']/arr[@name='copyFields']/lst[ str[@name='source'][.='*_src_sub_i']"
+" and str[@name='dest'][.='*_dest_sub_s']]",
"/response/lst[@name='schema']/arr[@name='copyFields']/lst[ str[@name='source'][.='*_src_sub_i']"
+" and str[@name='dest'][.='dest_sub_no_ast_s']]",
"/response/lst[@name='schema']/arr[@name='copyFields']/lst[ str[@name='source'][.='src_sub_no_ast_i']"
+" and str[@name='dest'][.='title']]",
"/response/lst[@name='schema']/arr[@name='copyFields']/lst[ str[@name='source'][.='src_sub_no_ast_i']"
+" and str[@name='dest'][.='*_s']]",
"/response/lst[@name='schema']/arr[@name='copyFields']/lst[ str[@name='source'][.='src_sub_no_ast_i']"
+" and str[@name='dest'][.='*_dest_sub_s']]",
"/response/lst[@name='schema']/arr[@name='copyFields']/lst[ str[@name='source'][.='src_sub_no_ast_i']"
+" and str[@name='dest'][.='dest_sub_no_ast_s']]",
"/response/lst[@name='schema']/arr[@name='copyFields']/lst[ str[@name='source'][.='title_*']"
+" and str[@name='dest'][.='text']]",
"/response/lst[@name='schema']/arr[@name='copyFields']/lst[ str[@name='source'][.='title_*']"
+" and str[@name='dest'][.='*_s']]",
"/response/lst[@name='schema']/arr[@name='copyFields']/lst[ str[@name='source'][.='title_*']"
+" and str[@name='dest'][.='*_dest_sub_s']]",
"/response/lst[@name='schema']/arr[@name='copyFields']/lst[ str[@name='source'][.='title_*']"
+" and str[@name='dest'][.='dest_sub_no_ast_s']]");
}
@Test
public void testJSONResponse() throws Exception {
assertJQ("/schema", // Should work with or without a trailing slash
"/schema/name=='test-rest'",
"/schema/version==1.6",
"/schema/uniqueKey=='id'",
"/schema/fieldTypes/[0]/name=='HTMLstandardtok'",
"/schema/fieldTypes/[1]/name=='HTMLwhitetok'",
"/schema/fieldTypes/[2]/name=='boolean'",
"/schema/fields/[0]/name=='HTMLstandardtok'",
"/schema/fields/[1]/name=='HTMLwhitetok'",
"/schema/fields/[2]/name=='_version_'",
"/schema/dynamicFields/[0]/name=='*_coordinate'",
"/schema/dynamicFields/[1]/name=='ignored_*'",
"/schema/dynamicFields/[2]/name=='*_mfacet'",
"/schema/copyFields/[1]=={'source':'src_sub_no_ast_i','dest':'title'}",
"/schema/copyFields/[7]=={'source':'title','dest':'dest_sub_no_ast_s'}",
"/schema/copyFields/[8]=={'source':'*_i','dest':'title'}",
"/schema/copyFields/[9]=={'source':'*_i','dest':'*_s'}",
"/schema/copyFields/[10]=={'source':'*_i','dest':'*_dest_sub_s'}",
"/schema/copyFields/[11]=={'source':'*_i','dest':'dest_sub_no_ast_s'}",
"/schema/copyFields/[12]=={'source':'*_src_sub_i','dest':'title'}",
"/schema/copyFields/[13]=={'source':'*_src_sub_i','dest':'*_s'}",
"/schema/copyFields/[14]=={'source':'*_src_sub_i','dest':'*_dest_sub_s'}",
"/schema/copyFields/[15]=={'source':'*_src_sub_i','dest':'dest_sub_no_ast_s'}",
"/schema/copyFields/[16]=={'source':'src_sub_no_ast_i','dest':'*_s'}",
"/schema/copyFields/[17]=={'source':'src_sub_no_ast_i','dest':'*_dest_sub_s'}",
"/schema/copyFields/[18]=={'source':'src_sub_no_ast_i','dest':'dest_sub_no_ast_s'}");
}
@Test
public void testSchemaXmlResponse() {
assertQ("/schema?wt=schema.xml", // should work with or without trailing slash on '/schema/' path
"/schema/@name = 'test-rest'",
"/schema/@version = '1.6'",
"/schema/uniqueKey = 'id'",
"(/schema/fieldType)[1]/@name = 'HTMLstandardtok'",
"(/schema/fieldType)[2]/@name = 'HTMLwhitetok'",
"(/schema/fieldType)[3]/@name = 'boolean'",
"(/schema/field)[1]/@name = 'HTMLstandardtok'",
"(/schema/field)[2]/@name = 'HTMLwhitetok'",
"(/schema/field)[3]/@name = '_version_'",
"(/schema/dynamicField)[1]/@name = '*_coordinate'",
"(/schema/dynamicField)[2]/@name = 'ignored_*'",
"(/schema/dynamicField)[3]/@name = '*_mfacet'",
"/schema/copyField[@source='title'][@dest='title_stemmed'][@maxChars='200']",
"/schema/copyField[@source='title'][@dest='dest_sub_no_ast_s']",
"/schema/copyField[@source='*_i'][@dest='title']",
"/schema/copyField[@source='*_i'][@dest='*_s']",
"/schema/copyField[@source='*_i'][@dest='*_dest_sub_s']",
"/schema/copyField[@source='*_i'][@dest='dest_sub_no_ast_s']",
"/schema/copyField[@source='*_src_sub_i'][@dest='title']",
"/schema/copyField[@source='*_src_sub_i'][@dest='*_s']",
"/schema/copyField[@source='*_src_sub_i'][@dest='*_dest_sub_s']",
"/schema/copyField[@source='*_src_sub_i'][@dest='dest_sub_no_ast_s']",
"/schema/copyField[@source='src_sub_no_ast_i'][@dest='title']",
"/schema/copyField[@source='src_sub_no_ast_i'][@dest='*_s']",
"/schema/copyField[@source='src_sub_no_ast_i'][@dest='*_dest_sub_s']",
"/schema/copyField[@source='src_sub_no_ast_i'][@dest='dest_sub_no_ast_s']",
"/schema/copyField[@source='title_*'][@dest='text']",
"/schema/copyField[@source='title_*'][@dest='*_s']",
"/schema/copyField[@source='title_*'][@dest='*_dest_sub_s']",
"/schema/copyField[@source='title_*'][@dest='dest_sub_no_ast_s']");
}
}