package com.jaeksoft.searchlib.test.legacy;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.xpath.XPathExpressionException;
import junit.framework.TestCase;
import org.apache.http.NameValuePair;
import org.apache.http.client.methods.HttpPost;
import org.junit.Test;
import org.xml.sax.SAXException;
public class SearchTemplateTest extends TestCase {
private CommonTestCase commomTestCase = null;
public SearchTemplateTest(String name) {
super(name);
commomTestCase = new CommonTestCase();
}
@Test
public void testCreateSpellCheckQuery() throws IllegalStateException,
IOException, XPathExpressionException, SAXException,
ParserConfigurationException {
List<NameValuePair> namedValuePairs = new ArrayList<NameValuePair>();
namedValuePairs.add(commomTestCase.getNameValuePair("cmd", "create"));
namedValuePairs.add(commomTestCase.getNameValuePair("qt.type",
"SpellCheckRequest"));
namedValuePairs.add(commomTestCase.getNameValuePair("qt.name",
"spellcheck"));
namedValuePairs.add(commomTestCase.getNameValuePair("qt.query", "*:*"));
namedValuePairs.add(commomTestCase.getNameValuePair("qt.suggestions",
"1"));
namedValuePairs.add(commomTestCase.getNameValuePair("qt.field",
"titleExact"));
namedValuePairs.add(commomTestCase.getNameValuePair("qt.lang",
"ENGLISH"));
namedValuePairs.add(commomTestCase.getNameValuePair("qt.algorithm",
"JaroWinklerDistance"));
HttpPost httpPost = commomTestCase.queryInstance(namedValuePairs,
CommonTestCase.SEARCH_TEMPLATE_API, true);
String response = commomTestCase.getHttpResponse(httpPost,
"response/entry[@key='Status']");
assertEquals("OK", response);
}
@Test
public void testCreateMoreLikeThisTemplate() throws IllegalStateException,
IOException, XPathExpressionException, SAXException,
ParserConfigurationException {
List<NameValuePair> namedValuePairs = new ArrayList<NameValuePair>();
namedValuePairs.add(commomTestCase.getNameValuePair("cmd", "create"));
namedValuePairs.add(commomTestCase.getNameValuePair("qt.type",
"MoreLikeThisRequest"));
namedValuePairs.add(commomTestCase.getNameValuePair("qt.name",
"morelikethis"));
namedValuePairs.add(commomTestCase.getNameValuePair("qt.query", "*:*"));
namedValuePairs.add(commomTestCase.getNameValuePair("qt.like",
"opensearchserver"));
namedValuePairs.add(commomTestCase.getNameValuePair("qt.minwordlen",
"0"));
namedValuePairs.add(commomTestCase.getNameValuePair("qt.maxwordlen",
"5"));
namedValuePairs.add(commomTestCase.getNameValuePair("qt.mindocfreq",
"5"));
namedValuePairs.add(commomTestCase.getNameValuePair("qt.mintermfreq",
"3"));
namedValuePairs.add(commomTestCase.getNameValuePair("qt.maxqueryTerms",
"25"));
namedValuePairs.add(commomTestCase.getNameValuePair(
"qt.maxnumtokensparsed", "5000"));
namedValuePairs.add(commomTestCase.getNameValuePair("qt.lang", "en"));
namedValuePairs.add(commomTestCase.getNameValuePair("qt.analyzer",
"StandardAnalyzer"));
namedValuePairs.add(commomTestCase.getNameValuePair("qt.rows", "10"));
namedValuePairs.add(commomTestCase.getNameValuePair("qt.start", "0"));
namedValuePairs.add(commomTestCase.getNameValuePair("qt.fields",
"title"));
namedValuePairs.add(commomTestCase.getNameValuePair("qt.returnfields",
"title"));
HttpPost httpPost = commomTestCase.queryInstance(namedValuePairs,
CommonTestCase.SEARCH_TEMPLATE_API, true);
String response = commomTestCase.getHttpResponse(httpPost,
"response/entry[@key='Status']");
assertEquals("OK", response);
}
}