package com.ycsoft.report.test;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.junit.Test;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.AbstractTransactionalJUnit4SpringContextTests;
import com.google.gson.Gson;
import com.ycsoft.beans.system.SOptr;
import com.ycsoft.commons.helper.JsonHelper;
import com.ycsoft.report.bean.RepColumn;
import com.ycsoft.report.bean.RepCube;
import com.ycsoft.report.bean.RepDimKey;
import com.ycsoft.report.bean.RepHead;
import com.ycsoft.report.bean.RepQueryLog;
import com.ycsoft.report.commons.FileObjectInputStream;
import com.ycsoft.report.commons.ReportConstants;
import com.ycsoft.report.commons.SystemConfig;
import com.ycsoft.report.component.query.KeyComponent;
import com.ycsoft.report.component.query.QueryComponent;
import com.ycsoft.report.component.query.RepDesignComponent;
import com.ycsoft.report.dao.config.RepColumnDao;
import com.ycsoft.report.dao.config.RepDatabaseDao;
import com.ycsoft.report.dao.config.RepQueryLogDao;
import com.ycsoft.report.dao.config.RepSqlDao;
import com.ycsoft.report.db.ConnContainer;
import com.ycsoft.report.dto.InitQueryDto;
import com.ycsoft.report.dto.RepKeyDto;
import com.ycsoft.report.pojo.Parameter;
import com.ycsoft.report.query.QueryManage;
import com.ycsoft.report.query.QueryManageImpl;
import com.ycsoft.report.query.QueryResult;
import com.ycsoft.report.query.QueryResultCommon;
import com.ycsoft.report.query.cube.Dimension;
import com.ycsoft.report.query.cube.DimensionType;
import com.ycsoft.report.query.cube.MeasureDataType;
import com.ycsoft.report.query.cube.impl.CubeManage;
import com.ycsoft.report.query.cube.impl.DimensionManage;
import com.ycsoft.report.query.cube.impl.MyCube;
import com.ycsoft.report.query.key.Impl.QueryKeyValue;
import com.ycsoft.report.query.sql.AnalyseMemoryKey;
import com.ycsoft.report.query.treequery.DimKeyContainer;
import com.ycsoft.report.test.other.TestConKill;
import com.ycsoft.report.test.other.ZipUtil;
@ContextConfiguration(locations={"classpath*:app*.xml"})
public class SpringTest extends AbstractTransactionalJUnit4SpringContextTests {
private void initSystem()throws Exception{
SystemConfig.init(null,this.applicationContext);
}
private void initDatabase()throws Exception{
RepDatabaseDao dbdao=this.applicationContext.getBean(RepDatabaseDao.class);
ConnContainer.init(dbdao);
}
@Test
public void testZip()throws Exception{
RepQueryLogDao dao=this.applicationContext.getBean(RepQueryLogDao.class);
RepQueryLog log=dao.getRepQuerLog("386808");
String a=ZipUtil.compress(log.getKeylist());
System.out.println(a.length()+" "+log.getKeylist().length()+" "+a.length()*100/log.getKeylist().length());
System.out.println(a);
System.out.println(ZipUtil.uncompress(a));
System.out.println(log.getKeylist());
}
@Test
public void test12231(){
System.out.print(MeasureDataType.valueOf("ad"));
}
@Test
public void testAA()throws Exception{
initSystem();
System.out.println(
org.apache.struts2.json.JSONUtil.serialize(
DimensionManage.getDimension("month")))
;
System.out.println(JsonHelper.
fromObject(DimensionManage.getDimension("month")));
}
/**
* 测试表头加载
* @throws Exception
*/
@Test
public void queryOlapHeader()throws Exception{
initSystem();
}
@Test
public void TestKill()throws Exception{
initDatabase();
TestConKill ki=new TestConKill("system");
System.out.println(2);
ki.start();
System.out.println(3);
Thread.sleep(1000*1);
System.out.println(4);
ki.ConKill();
System.out.println(5);
Thread.sleep(100000*1);
}
@Test
public void TestCube()throws Exception{
initSystem();
RepDesignComponent repDesignComponent=this.applicationContext.getBean(RepDesignComponent.class);
//
System.out.println("queryCubeDimensionTypes测试");
for(QueryKeyValue vo:repDesignComponent.queryCubeDimensionTypes()){
System.out.println(vo.getId()+" "+vo.getName());
}
System.out.println("queryMeasureTypes");
for(QueryKeyValue vo:repDesignComponent.queryMeasureTypes()){
System.out.println(vo.getId()+" "+vo.getName());
}
System.out.println("queryDimensions测试");
//测试cube保存
List<RepCube> repcubes=new ArrayList<RepCube>();
String rep_id="10392";
String optr_id="test1";
RepCube rc=new RepCube();
rc.setRep_id(rep_id);
rc.setColumn_code("cust_colony");
rc.setColumn_type(DimensionType.crosswise.name());
rc.setColumn_define("custcolony");
rc.setColumn_as("");
repcubes.add(rc);
RepCube b=new RepCube();
b.setRep_id(rep_id);
b.setColumn_code("客户数");
b.setColumn_type(DimensionType.measure.name());
b.setColumn_define("COUNT");
b.setColumn_as("数量");
repcubes.add(b);
System.out.println("saveCuleDefine测试");
repDesignComponent.saveCuleDefine(rep_id, optr_id, repcubes);
//
}
/**
*
* @throws Exception
*/
@Test
public void TestCubeNavigate()throws Exception{
initSystem();
QueryComponent queryComponent=this.applicationContext.getBean(QueryComponent.class);
System.out.println("queryMyCube测试");
String rep_id="10393";
String optr_id="aa";
MyCube mycube= null;//queryComponent.queryMyCube(rep_id, optr_id);
//System.out.println(mycube.getHeadishidden());
// for(MyDimension mydim:mycube.getDimensions())
// System.out.println("ID:"+mydim.getId()+" Name:"+mydim.getName()+" Level:"+mydim.getLevel()+" Slices:"+mydim.getSlices()
// +" Usesign:"+mydim.isUsesign()+" Verticalsign"+mydim.isVerticalsign());
System.out.println("queryOlapHeader测试");
KeyComponent keyComponent=this.applicationContext.getBean(KeyComponent.class);
System.out.println("queryLevels测试");
// for(QueryKeyValue vo: keyComponent.queryLevels("custcolony")){
// System.out.println(vo.getId()+" "+vo.getName());
// }
// for(QueryKeyValue vo: keyComponent.queryLevels("district")){
// System.out.println(vo.getId()+" "+vo.getName());
// }
System.out.println("queryLevelValues测试");
for(QueryKeyValue vo: keyComponent.queryLevelValues("district",1)){
System.out.println(vo.getId()+" "+vo.getName()+" "+vo.getPid());
}
for(QueryKeyValue vo: keyComponent.queryLevelValues("district",2)){
System.out.println(vo.getId()+" "+vo.getName()+" "+vo.getPid());
}
}
@Test
public void TestCubeSql()throws Exception{
CubeManage cubeManage=this.applicationContext.getBean(CubeManage.class);
//Cube<QueryResultQuiee> cube=(Cube<QueryResultQuiee>) cubeManage.getCube("aa");
// System.out.println(cube.assembleSql(""));
}
}