package fr.gael.dhus.search;
import java.util.List;
import org.testng.Assert;
import org.testng.annotations.Test;
import fr.gael.dhus.search.SolrQueryParser;
public class SolrQueryParserTest
{
@Test
public void testSolrQueryPerser()
{
String q="envisat";
List <String[]>elements = SolrQueryParser.parse(q);
Assert.assertEquals(elements.size(), 1, "No element parsed in query \"" + q + "\".");
Assert.assertEquals (elements.get(0)[SolrQueryParser.INDEX_VALUE], q,
"Query not properly parsed.");
q="*";
elements = SolrQueryParser.parse(q);
Assert.assertEquals(elements.size(), 1, "No element parsed in query \"" + q + "\".");
Assert.assertEquals (elements.get(0)[SolrQueryParser.INDEX_VALUE], "*", "Query not properly parsed");
q="12-TRE_1_RER.AZS";
elements = SolrQueryParser.parse(q);
Assert.assertEquals(elements.size(), 1, "No element parsed in query \"" + q + "\".");
Assert.assertEquals (elements.get(0)[SolrQueryParser.INDEX_VALUE], "12-TRE_1_RER.AZS", "Query not properly parsed");
q="platformName:envisat";
elements = SolrQueryParser.parse(q);
Assert.assertEquals(elements.size(), 1, "No element parsed in query \"" + q + "\".");
Assert.assertEquals (elements.get(0)[SolrQueryParser.INDEX_VALUE], "envisat", "Query not properly parsed");
Assert.assertEquals (elements.get(0)[SolrQueryParser.INDEX_FIELD], "platformName", "Query not properly parsed");
q="*:*";
elements = SolrQueryParser.parse(q);
Assert.assertEquals(elements.size(), 1, "No element parsed in query \"" + q + "\".");
Assert.assertEquals (elements.get(0)[SolrQueryParser.INDEX_VALUE], "*", "Query not properly parsed");
Assert.assertEquals (elements.get(0)[SolrQueryParser.INDEX_FIELD], "*", "Query not properly parsed");
q="a:12-TRE_1_RER.AZS";
elements = SolrQueryParser.parse(q);
Assert.assertEquals(elements.size(), 1, "No element parsed in query \"" + q + "\".");
Assert.assertEquals (elements.get(0)[SolrQueryParser.INDEX_VALUE], "12-TRE_1_RER.AZS", "Query not properly parsed");
Assert.assertEquals (elements.get(0)[SolrQueryParser.INDEX_FIELD], "a", "Query not properly parsed");
q="cloudCoverage:[0 TO 100]";
elements = SolrQueryParser.parse(q);
Assert.assertEquals(elements.size(), 1, "No element parsed in query \"" + q + "\".");
Assert.assertEquals (elements.get(0)[SolrQueryParser.INDEX_VALUE], "[0 TO 100]", "Query not properly parsed");
Assert.assertEquals (elements.get(0)[SolrQueryParser.INDEX_FIELD], "cloudCoverage", "Query not properly parsed");
q="ca:A AND cb:B";
elements = SolrQueryParser.parse(q);
Assert.assertEquals(elements.size(), 3, "Not enough element parsed in query \"" + q + "\".");
Assert.assertEquals (elements.get(0)[SolrQueryParser.INDEX_VALUE], "A", "Query not properly parsed");
Assert.assertEquals (elements.get(0)[SolrQueryParser.INDEX_FIELD], "ca", "Query not properly parsed");
Assert.assertEquals (elements.get(1)[SolrQueryParser.INDEX_VALUE], "AND", "Query not properly parsed");
Assert.assertEquals (elements.get(2)[SolrQueryParser.INDEX_VALUE], "B", "Query not properly parsed");
Assert.assertEquals (elements.get(2)[SolrQueryParser.INDEX_FIELD], "cb", "Query not properly parsed");
}
}