[유치수] [NOBTS] add InvokeMethodInterceptor unit test.

git-svn-id: http://svn.bds.nhncorp.com/pe/hippo-tomcat-profiler/trunk@550 84d0f5b1-2673-498c-a247-62c4ff18d310
This commit is contained in:
Chisu Yu
2012-08-28 06:31:37 +00:00
parent 5e55d34ca1
commit a2994cffa0
3 changed files with 59 additions and 12 deletions
+5
View File
@@ -104,6 +104,11 @@
<version>4.8.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-all</artifactId>
<version>1.9.0</version>
</dependency>
</dependencies>
<build>
@@ -8,6 +8,7 @@ import com.profiler.context.Annotation;
import com.profiler.context.Header;
import com.profiler.context.Trace;
import com.profiler.context.TraceID;
import com.profiler.context.tracer.DefaultTracer;
import com.profiler.interceptor.StaticAroundInterceptor;
import com.profiler.trace.RequestTracer;
@@ -22,31 +23,36 @@ public class InvokeMethodInterceptor implements StaticAroundInterceptor {
String traceID = request.getHeader(Header.HTTP_TRACE_ID.toString());
String parentSpanID = request.getHeader(Header.HTTP_PARENT_SPAN_ID.toString());
String spanID = request.getHeader(Header.HTTP_PARENT_SPAN_ID.toString());
String spanID = request.getHeader(Header.HTTP_SPAN_ID.toString());
Boolean sampled = Boolean.valueOf(request.getHeader(Header.HTTP_SAMPLED.toString()));
Integer flags = Integer.valueOf(request.getHeader(Header.HTTP_FLAGS.toString()));
String parameters = getParameter(request);
// record
// TODO: traceid 유무 확인.
Trace.setTraceId(new TraceID(traceID, parentSpanID, spanID, sampled, flags));
Trace.recordRpcName("service_name", requestURL);
if (traceID != null) {
Trace.setTraceId(new TraceID(traceID, parentSpanID, spanID, sampled, flags));
} else {
Trace.setTraceId(TraceID.newTraceId());
}
Trace.addTracer(new DefaultTracer());
Trace.recordRpcName("tomcat", requestURL);
Trace.recordServerAddr(request.getLocalAddr(), request.getLocalPort());
Trace.recordBinary("http.uri", parameters);
Trace.record("Parameter=" + parameters);
Trace.record(new Annotation.ServerRecv());
RequestTracer.startTransaction(requestURL, clientIP, System.currentTimeMillis(), parameters);
} catch (Exception e) {
e.printStackTrace();
// To change body of catch statement use File | Settings | File
// Templates.
}
System.out.println("end--------------");
}
@Override
public void after(Object target, String className, String methodName, Object[] args, Object result) {
Trace.record(new Annotation.ServerSend());
RequestTracer.endTransaction();
}
@@ -1,10 +1,46 @@
package com.profiler.modifier.tomcat;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
import java.util.Enumeration;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.junit.Before;
import org.junit.Test;
public class InvokeMethodInterceptorTest {
@Test
public void getURLs() {
import com.profiler.context.Header;
}
public class InvokeMethodInterceptorTest {
HttpServletRequest request;
HttpServletResponse response;
@Before
public void beforeTest() {
request = mock(HttpServletRequest.class);
response = mock(HttpServletResponse.class);
when(request.getRequestURI()).thenReturn("/hellotest.nhn");
when(request.getRemoteAddr()).thenReturn("10.0.0.1");
when(request.getHeader(Header.HTTP_TRACE_ID.toString())).thenReturn("TRACEID");
when(request.getHeader(Header.HTTP_PARENT_SPAN_ID.toString())).thenReturn("PARENTSPANID");
when(request.getHeader(Header.HTTP_SPAN_ID.toString())).thenReturn("SPANID");
when(request.getHeader(Header.HTTP_SAMPLED.toString())).thenReturn("false");
when(request.getHeader(Header.HTTP_FLAGS.toString())).thenReturn("0");
Enumeration<?> enumeration = mock(Enumeration.class);
when(request.getParameterNames()).thenReturn(enumeration);
}
@Test
public void doTest() {
InvokeMethodInterceptor interceptor = new InvokeMethodInterceptor();
interceptor.before("target", "classname", "methodname", new Object[] { request, response });
interceptor.after("target", "classname", "methodname", new Object[] { request, response }, new Object());
}
}