/** * Copyright Plugtree LLC * * Licensed 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 com.plugtree.solrmeter.statistic; import org.apache.solr.client.solrj.SolrQuery; import com.plugtree.solrmeter.BaseTestCase; import com.plugtree.solrmeter.model.SolrMeterConfiguration; import com.plugtree.solrmeter.model.exception.QueryException; import com.plugtree.solrmeter.model.statistic.QueryLogStatistic; public class QueryLogStatisticTestCase extends BaseTestCase { public void simpleTest() { QueryLogStatistic statistic = new QueryLogStatistic(); assertEquals(0, statistic.getLastQueries().size()); statistic.onExecutedQuery(createQueryResponse(10), 0); assertEquals(1, statistic.getLastQueries().size()); statistic.onExecutedQuery(createQueryResponse(10), 0); assertEquals(2, statistic.getLastQueries().size()); statistic.onQueryError(createQueryException()); statistic.onQueryError(createQueryException()); assertEquals(4, statistic.getLastQueries().size()); assertTrue(statistic.getLastQueries().getLast().isError()); assertEquals(new Integer(-1), statistic.getLastQueries().getLast().getQTime()); assertEquals("filterQuery=value", statistic.getLastQueries().getLast().getFacetQueryString()); assertEquals("field=value", statistic.getLastQueries().getLast().getFilterQueryString()); assertEquals("test", statistic.getLastQueries().getLast().getQueryString()); } public void testManyQueries() { SolrMeterConfiguration.setProperty("solr.queryLogStatistic.maxStored", "100"); QueryLogStatistic statistic = new QueryLogStatistic(); for(int i = 1; i <= 100; i++) { statistic.onExecutedQuery(createQueryResponse(i), 0); assertEquals(i, statistic.getLastQueries().size()); } assertEquals(new Integer(100), statistic.getLastQueries().getFirst().getQTime()); assertEquals(new Integer(1), statistic.getLastQueries().getLast().getQTime()); statistic.onExecutedQuery(createQueryResponse(1000), 0); assertEquals(new Integer(1000), statistic.getLastQueries().getFirst().getQTime()); assertEquals(new Integer(2), statistic.getLastQueries().getLast().getQTime()); assertFalse(statistic.getLastQueries().getLast().isError()); } @Override protected void tearDown() throws Exception { SolrMeterConfiguration.loadConfiguration(); } private QueryException createQueryException() { QueryException queryException = new QueryException(); SolrQuery query = new SolrQuery(); query.setQuery("test"); query.setFilterQueries("field=value"); query.addFacetQuery("filterQuery=value"); queryException.setQuery(query); return queryException; } }