package com.plugtree.solrmeter.model.generator; import com.plugtree.solrmeter.mock.ExternalFileQueryGeneratorSpy; import junit.framework.TestCase; import org.apache.solr.client.solrj.SolrQuery; import java.util.List; public class ExternalFileQueryGeneratorTestCase extends TestCase{ private ExternalFileQueryGeneratorSpy queryGenerator; public void setUp(){ queryGenerator = new ExternalFileQueryGeneratorSpy(); } public void testShouldBreakTheStringInKeyValue() throws Exception { String queryString = "formatter=html&hl.fragsize=0&q=*:*&h1.requireFieldMatch=true&hl.simple.pre=%3Cem+class%3D%22yellow_highlight%22%3E&hl.fl=content&hl=true&rows=5"; List<String> params = queryGenerator.getParamsFrom(queryString); assertEquals(8, params.size()); String secondQueryString = "formatter%3Dhtml%26hl.fragsize%3D0%26q%3D*%3A*%26h1.requireFieldMatch%3Dtrue%26hl.simple.pre%3D%253Cem%2Bclass%253D%2522yellow_highlight%2522%253E%26hl.fl%3Dcontent%26hl%3Dtrue%26rows%3D5"; List<String> params2 = queryGenerator.getParamsFrom(secondQueryString); assertEquals(8, params2.size()); } public void testShouldRemoveEmptyStringsOrWrongKeyValueFromParameterList() throws Exception { String queryString = "qt=/duplicate&&shards.qt=/duplicate"; List<String> list = queryGenerator.getParamsFrom(queryString); assertEquals(2, list.size()); } public void testShouldBreakTheStringUsingASpecifiedChar() throws Exception { String string = "formatter=html&hl.fragsize=0&sort=harvestDate desc"; List<String> values = queryGenerator.split(string, "&"); assertEquals(3, values.size()); String string2 = "formatter=html"; List<String> keyVal = queryGenerator.getKeyValuePair(string2); assertEquals(2, keyVal.size()); } public void testShouldCreateASolrQueryStartingFromAString() throws Exception { String q= "q=*:*&rows=5"; SolrQuery query = queryGenerator.fromString(q); SolrQuery expected = new SolrQuery(); expected.add("q", "*:*"); expected.add("rows", "5"); assertEquals(query.toString(), expected.toString()); } public void testWithLocalParams() { String q = "facet.field={!ex=source}source&facet.field={!ex=source}type&facet.field={!ex=source}status&facet.field={!ex=display}author&qt=/browse&fq={!tag=source}source:1&fq={!tag=display}display:true"; SolrQuery query = queryGenerator.fromString(q); assertEquals("{!ex=source}source", query.getFacetFields()[0]); assertEquals("{!ex=source}type", query.getFacetFields()[1]); assertEquals("{!ex=source}status", query.getFacetFields()[2]); assertEquals("{!ex=display}author", query.getFacetFields()[3]); assertEquals("{!tag=source}source:1", query.getFilterQueries()[0]); assertEquals("{!tag=display}display:true", query.getFilterQueries()[1]); } }