package com.jinhe.tss.component.log;
import java.io.IOException;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import com.jinhe.tss.component.TxTestSupport;
import com.jinhe.tss.component.log.maintain.LogQueryCondition;
import com.jinhe.tss.component.log.maintain.LogService;
import com.jinhe.tss.component.testmock.model._Group;
import com.jinhe.tss.component.testmock.model._User;
import com.jinhe.tss.component.testmock.service._IUMSerivce;
import freemarker.template.TemplateException;
/**
* 测试了日志解析、日志Annotation、线程池、异步输出日志
*
* @author bl00618
*
*/
public class BusinessLogTest extends TxTestSupport {
@Autowired private _IUMSerivce umSerivce;
@Autowired private LogService logService;
public void testParseMacro() throws IOException, TemplateException {
String template = "<#if args[1]=1>停用<#else>启用</#if>了节点${args[0]}";
Object[] objects = new Object[]{new Long(12), new Integer(0)};
BusinessLogInterceptor intercepter = new BusinessLogInterceptor();
assertEquals("启用了节点12", intercepter.parseMacro(template, objects, null));
}
/**
* 测试日志Annotation、线程池、异步输出日志
*/
public void testUMToCreateLog() throws InterruptedException {
log.info("test start......");
for(int i = 0; i < 10; i++) {
for(int j = 0; j < 10; j++) {
_Group group = new _Group();
group.setCode("RD" + i + "_" + j);
group.setName("研发");
umSerivce.createGroup(group);
_User user = new _User();
user.setGroup(group);
user.setUserName("JohnXa" + i + "_" + j);
user.setPassword("123456");
user.setAge(new Integer(25));
user.setAddr("New York");
user.setEmail("john@hotmail.com");
umSerivce.createUser(user);
}
}
Thread.sleep(3*1000);
List<_User> result = umSerivce.queryAllUsers();
assertTrue(result.size() > 50);
LogQueryCondition condition = new LogQueryCondition();
Object[] logsInfo = logService.getLogsByCondition(condition);
assertEquals(50, ((List<?>)logsInfo[0]).size());
assertTrue( (Integer)logsInfo[1] >= 180 ); // 还有10条没输出Test就over了
}
}