package org.fastcatsearch.servlet;
import org.fastcatsearch.http.writer.GroupResultWriter;
import org.fastcatsearch.ir.group.GroupEntry;
import org.fastcatsearch.ir.group.GroupFunctionType;
import org.fastcatsearch.ir.group.GroupResult;
import org.fastcatsearch.ir.group.GroupResults;
import org.fastcatsearch.ir.group.value.IntGroupingValue;
import org.fastcatsearch.util.JSONResponseWriter;
import org.fastcatsearch.util.ResponseWriter;
import org.fastcatsearch.util.ResultWriterException;
import org.fastcatsearch.util.XMLResponseWriter;
import org.junit.Before;
import org.junit.Test;
import java.io.IOException;
import java.io.StringWriter;
import java.util.Date;
public class GroupResultWriterTest {
GroupResults result = null;
@Before
public void init(){
String[] headerNameList = new String[]{"COUNT"};
int groupSize = 3;
int totalSearchCount = 11200;
result = new GroupResults(groupSize, totalSearchCount);
GroupResult groupResult1 = new GroupResult("category", headerNameList, 10000, 3);
groupResult1.setEntry(0, new GroupEntry("1", new IntGroupingValue(800, GroupFunctionType.COUNT)));
groupResult1.setEntry(1, new GroupEntry("2", new IntGroupingValue(150, GroupFunctionType.COUNT)));
groupResult1.setEntry(2, new GroupEntry("3", new IntGroupingValue(50, GroupFunctionType.COUNT)));
result.add(groupResult1);
GroupResult groupResult2 = new GroupResult("language", headerNameList, 1000, 3);
groupResult2.setEntry(0, new GroupEntry("Korea", new IntGroupingValue(650, GroupFunctionType.COUNT)));
groupResult2.setEntry(1, new GroupEntry("Japan", new IntGroupingValue(250, GroupFunctionType.COUNT)));
groupResult2.setEntry(2, new GroupEntry("America", new IntGroupingValue(100, GroupFunctionType.COUNT)));
result.add(groupResult2);
GroupResult groupResult3 = new GroupResult("regdate", headerNameList, 200, 3);
groupResult3.setEntry(0, new GroupEntry(new Date().toString(), new IntGroupingValue(100, GroupFunctionType.COUNT)));
groupResult3.setEntry(1, new GroupEntry(new Date().toString(), new IntGroupingValue(70, GroupFunctionType.COUNT)));
groupResult3.setEntry(2, new GroupEntry(new Date().toString(), new IntGroupingValue(30, GroupFunctionType.COUNT)));
result.add(groupResult3);
}
@Test
public void testJson() throws ResultWriterException, IOException {
StringWriter writer = new StringWriter();
ResponseWriter resultWriter = new JSONResponseWriter(writer, true, false, false);
GroupResultWriter groupResultWriter = new GroupResultWriter(resultWriter);
long searchTime = 1234;
boolean isSuccess = true;
groupResultWriter.writeResult(result, searchTime, isSuccess);
System.out.println(writer.toString());
}
@Test
public void testXML() throws ResultWriterException, IOException {
StringWriter writer = new StringWriter();
XMLResponseWriter stringer = new XMLResponseWriter(writer, "fastcatsearch", true, false);
GroupResultWriter groupResultWriter = new GroupResultWriter(stringer);
long searchTime = 1234;
boolean isSuccess = true;
groupResultWriter.writeResult(result, searchTime, isSuccess);
System.out.println(writer.toString());
}
}