提交 92c90008 编写于 作者: Y yong.you

add the testcase

上级 b69c56ef
......@@ -11,6 +11,7 @@ import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;
import org.unidal.lookup.ComponentTestCase;
import org.unidal.webres.helper.Files;
import com.dianping.cat.Cat;
import com.dianping.cat.message.Event;
......@@ -18,6 +19,7 @@ import com.dianping.cat.message.Heartbeat;
import com.dianping.cat.message.Message;
import com.dianping.cat.message.Trace;
import com.dianping.cat.message.Transaction;
import com.dianping.cat.message.internal.AbstractMessage;
import com.dianping.cat.message.internal.DefaultEvent;
import com.dianping.cat.message.internal.DefaultHeartbeat;
import com.dianping.cat.message.internal.DefaultTrace;
......@@ -29,6 +31,37 @@ import com.dianping.cat.message.spi.internal.DefaultMessageTree;
@RunWith(JUnit4.class)
public class HtmlMessageCodecTest extends ComponentTestCase {
private DefaultMessageTree buildMessageTree() {
long timestamp = 1325489621987L;
Transaction transaction = Cat.newTransaction("transaction", "transaction");
Cat.logTrace("logTrace", "<trace>");
Cat.logTrace("logTrace", "<trace>", Trace.SUCCESS, "data");
Cat.logMetric("logMetric", "test", "test");
Cat.logMetricForCount("logMetricForCount");
Cat.logMetricForCount("logMetricForCount", 4);
Cat.logMetricForDuration("logMetricForDuration", 100);
Cat.logMetricForSum("logMetricForSum", 100);
Cat.logMetricForSum("logMetricForSum", 100, 100);
Cat.logError(new RuntimeException());
Cat.logError("message", new RuntimeException());
Cat.logEvent("RemoteLink", "Call", Message.SUCCESS, "Cat-0a010680-384736-2061");
Cat.logEvent("EventType", "EventName");
Cat.logHeartbeat("logHeartbeat", "logHeartbeat", Message.SUCCESS, null);
DefaultMessageTree tree = (DefaultMessageTree) Cat.getManager().getThreadLocalMessageTree();
((DefaultTransaction) transaction).setDurationInMicros(8000);
((DefaultTransaction) transaction).setTimestamp(timestamp);
String messageId = "Cat-c0a80746-384747-36441";
tree.setMessageId(messageId);
tree.setRootMessageId(messageId);
tree.setParentMessageId(messageId);
for (Message message : transaction.getChildren()) {
((AbstractMessage) message).setTimestamp(timestamp);
}
return tree;
}
private void check(MessageTree tree, Message message, String expected) throws Exception {
HtmlMessageCodec codec = (HtmlMessageCodec) lookup(MessageCodec.class, "html");
ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
......@@ -104,36 +137,23 @@ public class HtmlMessageCodecTest extends ComponentTestCase {
transaction.setDurationInMillis(duration);
return transaction;
}
@Test
public void testEncode() throws Exception {
Cat.newTransaction("test", "test");
Cat.logTrace("Trace", "trace");
Cat.logMetric("metric", "test","test");
Cat.logMetricForCount("metric");
Cat.logMetricForCount("metric", 4);
Cat.logMetricForDuration("metricDuration", 100);
Cat.logMetricForSum("metricSum", 100);
Cat.logMetricForSum("metric", 100, 100);
Cat.logError(new RuntimeException());
Cat.logError("message", new RuntimeException());
Cat.logEvent("RemoteLink", "Call", Message.SUCCESS, "Cat-0a010680-384736-2061");
DefaultMessageTree tree = (DefaultMessageTree)Cat.getManager().getThreadLocalMessageTree();
MessageTree tree = buildMessageTree();
HtmlMessageCodec codec = (HtmlMessageCodec) lookup(MessageCodec.class, "html");
ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
String messageId = "Cat-0a010680-384736-2061";
String parentMessageId = "Cat-0a010680-384736-2062";
tree.setRootMessageId(messageId);
tree.setParentMessageId(parentMessageId);
codec.encode(tree, buf);
Assert.assertEquals(1024, buf.capacity());
Assert.assertEquals(1024, buf.array().length);
Assert.assertEquals(674, buf.readableBytes());
System.out.println(tree);
String content = Files.forIO().readFrom(HtmlMessageCodecTest.class.getResourceAsStream("MessageTree.txt"),
"utf-8");
Assert.assertEquals(content.trim(), tree.toString().trim());
Assert.assertEquals(6797, buf.readableBytes());
}
@Test
......@@ -224,8 +244,7 @@ public class HtmlMessageCodecTest extends ComponentTestCase {
+ "\tat com.dianping.cat.message.spi.codec.PlainTextMessageCodecTest.testTraceForException(PlainTextMessageCodecTest.java:108)\n<br>"
+ "</td></tr>\r\n");
}
@Test
public void testTransactionNormal() throws Exception {
long timestamp = 1325489621987L;
......@@ -253,7 +272,7 @@ public class HtmlMessageCodecTest extends ComponentTestCase {
+ "<tr><td>&nbsp;&nbsp;E15:33:42.027</td><td>URL</td><td>View</td><td>&nbsp;</td><td>view=HTML</td></tr>\r\n"
+ "<tr><td>T15:33:42.087</td><td>URL</td><td>Review</td><td>&nbsp;</td><td>100ms /review/2468</td></tr>\r\n");
}
@Test
public void testTransactionSimple() throws Exception {
long timestamp = 1325489621987L;
......
PT1 Cat youyongmatoMacBook-Air.local 192.168.22.92 main 1 main Cat-c0a80746-384747-36441 Cat-0a010680-384736-2062 Cat-0a010680-384736-2061 null
t2012-01-02 15:33:41.987 transaction transaction
L2012-01-02 15:33:41.987 logTrace <trace> 0
L2012-01-02 15:33:41.987 logTrace <trace> 0 data
M2012-01-02 15:33:41.987 logMetric 0 test=test
M2012-01-02 15:33:41.987 logMetricForCount C 1
M2012-01-02 15:33:41.987 logMetricForCount C 4
M2012-01-02 15:33:41.987 logMetricForDuration T 100
M2012-01-02 15:33:41.987 logMetricForSum S 100.00
M2012-01-02 15:33:41.987 logMetricForSum S,C 100.00,100
E2012-01-02 15:33:41.987 RuntimeException java.lang.RuntimeException ERROR java.lang.RuntimeException\n\tat com.dianping.cat.message.spi.core.HtmlMessageCodecTest.buildMessageTree(HtmlMessageCodecTest.java:122)\n\tat com.dianping.cat.message.spi.core.HtmlMessageCodecTest.testEncode(HtmlMessageCodecTest.java:143)\n\tat sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n\tat sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)\n\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)\n\tat java.lang.reflect.Method.invoke(Method.java:597)\n\tat org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)\n\tat org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)\n\tat org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)\n\tat org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)\n\tat org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)\n\tat org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)\n\tat org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76)\n\tat org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)\n\tat org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)\n\tat org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)\n\tat org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)\n\tat org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)\n\tat org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)\n\tat org.junit.runners.ParentRunner.run(ParentRunner.java:236)\n\tat org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)\n\tat org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)\n\tat org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)\n\tat org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)\n\tat org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)\n\tat org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)\n
E2012-01-02 15:33:41.987 RuntimeException java.lang.RuntimeException ERROR message java.lang.RuntimeException\n\tat com.dianping.cat.message.spi.core.HtmlMessageCodecTest.buildMessageTree(HtmlMessageCodecTest.java:123)\n\tat com.dianping.cat.message.spi.core.HtmlMessageCodecTest.testEncode(HtmlMessageCodecTest.java:143)\n\tat sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n\tat sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)\n\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)\n\tat java.lang.reflect.Method.invoke(Method.java:597)\n\tat org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)\n\tat org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)\n\tat org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)\n\tat org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)\n\tat org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)\n\tat org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)\n\tat org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76)\n\tat org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)\n\tat org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)\n\tat org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)\n\tat org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)\n\tat org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)\n\tat org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)\n\tat org.junit.runners.ParentRunner.run(ParentRunner.java:236)\n\tat org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)\n\tat org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)\n\tat org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)\n\tat org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)\n\tat org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)\n\tat org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)\n
E2012-01-02 15:33:41.987 RemoteLink Call 0 Cat-0a010680-384736-2061
E2012-01-02 15:33:41.987 EventType EventName 0
H2012-01-02 15:33:41.987 logHeartbeat logHeartbeat 0
T2012-01-02 15:33:41.995 transaction transaction unset 8000us
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册