package com.plugtree.solrmeter.extractor;
import com.plugtree.solrmeter.BaseTestCase;
import com.plugtree.solrmeter.model.FileUtils;
import com.plugtree.solrmeter.model.extractor.LogExtractor;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class LogExtractorTestCase extends BaseTestCase{
private String inputPath;
private String regularExpression = LogExtractor.defaultRegularExpression;
public void testExtractQueryFromAString(){
LogExtractor logExtractor = new LogExtractor(regularExpression);
String line = "INFO: [] webapp=/solr path=/select params={fl=*,score&debugQuery=true&indent=true&q=HTTP&wt=javabin&fq=price:[100+TO+200]&version=2} hits=0 status=0 QTime=17";
String query = logExtractor.extract(line);
assertEquals("fl=*,score&debugQuery=true&indent=true&q=HTTP&wt=javabin&fq=price:[100+TO+200]&version=2", query);
}
public void testExtractQueriesFromAListOfStrings() throws Exception {
LogExtractor logExtractor = new LogExtractor(regularExpression);
List<String> stringList = Arrays.asList(
"INFO: [] webapp=/solr path=/select params={fl=*,score&debugQuery=true&indent=true&q=HTTP&wt=javabin&fq=price:[100+TO+200]&version=2} hits=0 status=0 QTime=17",
"INFO: [] webapp=/solr path=/select params={fl=*,score&debugQuery=true&indent=true&q=Comprehensive&wt=javabin&fq=price:[200+TO+300]&version=2} hits=0 status=0 QTime=2",
"INFO: [] webapp=/solr path=/select params={fl=*,score&debugQuery=true&indent=true&q=Apache+Software+Foundation&wt=javabin&fq=cat:electronics&version=2} hits=0 status=0 QTime=7"
);
List<String> queries = new ArrayList<String>(logExtractor.extract(stringList));
assertEquals(3, queries.size());
assertEquals("fl=*,score&debugQuery=true&indent=true&q=HTTP&wt=javabin&fq=price:[100+TO+200]&version=2", queries.get(0));
assertEquals("fl=*,score&debugQuery=true&indent=true&q=Comprehensive&wt=javabin&fq=price:[200+TO+300]&version=2", queries.get(1));
assertEquals("fl=*,score&debugQuery=true&indent=true&q=Apache+Software+Foundation&wt=javabin&fq=cat:electronics&version=2", queries.get(2) );
}
public void testExtractQueriesFromFile() throws Exception {
inputPath = FileUtils.findFileAsString("./com/plugtree/solrmeter/logTest.txt");
LogExtractor logExtractor = new LogExtractor(regularExpression);
List<String> queries = new ArrayList<String>(logExtractor.extractFromFile(inputPath));
assertEquals(3, queries.size());
assertEquals("fl=*,score&debugQuery=true&indent=true&q=HTTP&wt=javabin&fq=price:[100+TO+200]&version=2", queries.get(0));
assertEquals("fl=*,score&debugQuery=true&indent=true&q=Comprehensive&wt=javabin&fq=price:[200+TO+300]&version=2", queries.get(1));
assertEquals("fl=*,score&debugQuery=true&indent=true&q=Apache+Software+Foundation&wt=javabin&fq=cat:electronics&version=2", queries.get(2) );
}
}