Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
javalover123888
SkyWalking
提交
1194f0a8
S
SkyWalking
项目概览
javalover123888
/
SkyWalking
与 Fork 源项目一致
Fork自
山不在高_有仙则灵 / SkyWalking
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
S
SkyWalking
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
1194f0a8
编写于
9月 22, 2017
作者:
W
wendal chen
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
add: testcase for nutz http 1.x plugin
上级
59341589
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
114 addition
and
0 deletion
+114
-0
apm-sniffer/apm-sdk-plugin/nutz-plugins/http-1.x-plugin/src/test/java/org/skywalking/apm/plugin/nutz/http/sync/SenderInterceptorTest.java
...king/apm/plugin/nutz/http/sync/SenderInterceptorTest.java
+114
-0
未找到文件。
apm-sniffer/apm-sdk-plugin/nutz-plugins/http-1.x-plugin/src/test/java/org/skywalking/apm/plugin/nutz/http/sync/SenderInterceptorTest.java
0 → 100644
浏览文件 @
1194f0a8
package
org.skywalking.apm.plugin.nutz.http.sync
;
import
static
org
.
hamcrest
.
CoreMatchers
.
is
;
import
static
org
.
hamcrest
.
MatcherAssert
.
assertThat
;
import
static
org
.
mockito
.
Mockito
.
times
;
import
static
org
.
mockito
.
Mockito
.
verify
;
import
static
org
.
mockito
.
Mockito
.
when
;
import
java.lang.reflect.Method
;
import
java.util.List
;
import
org.junit.After
;
import
org.junit.Before
;
import
org.junit.Rule
;
import
org.junit.Test
;
import
org.junit.runner.RunWith
;
import
org.mockito.Mock
;
import
org.nutz.http.Request
;
import
org.nutz.http.Request.METHOD
;
import
org.nutz.http.Response
;
import
org.nutz.http.Sender
;
import
org.nutz.http.sender.FilePostSender
;
import
org.nutz.http.sender.GetSender
;
import
org.nutz.http.sender.PostSender
;
import
org.powermock.modules.junit4.PowerMockRunnerDelegate
;
import
org.skywalking.apm.agent.core.boot.ServiceManager
;
import
org.skywalking.apm.agent.core.context.trace.AbstractTracingSpan
;
import
org.skywalking.apm.agent.core.context.trace.TraceSegment
;
import
org.skywalking.apm.agent.core.plugin.interceptor.enhance.EnhancedInstance
;
import
org.skywalking.apm.agent.test.helper.SegmentHelper
;
import
org.skywalking.apm.agent.test.tools.AgentServiceRule
;
import
org.skywalking.apm.agent.test.tools.SegmentStorage
;
import
org.skywalking.apm.agent.test.tools.SegmentStoragePoint
;
import
org.skywalking.apm.agent.test.tools.TracingSegmentRunner
;
@RunWith
(
org
.
powermock
.
modules
.
junit4
.
PowerMockRunner
.
class
)
@PowerMockRunnerDelegate
(
TracingSegmentRunner
.
class
)
public
class
SenderInterceptorTest
{
@SegmentStoragePoint
public
SegmentStorage
segmentStorage
;
@Rule
public
AgentServiceRule
serviceRule
=
new
AgentServiceRule
();
@Mock
private
EnhancedInstance
enhancedInstance
;
@Mock
Response
resp
;
SenderConstructorInterceptor
constructorInterceptPoint
;
SenderSendInterceptor
senderSendInterceptor
;
Method
sendMethod
;
Object
[]
allArguments
;
Class
<?>[]
argumentsTypes
;
@Before
public
void
setUp
()
throws
Exception
{
ServiceManager
.
INSTANCE
.
boot
();
constructorInterceptPoint
=
new
SenderConstructorInterceptor
();
senderSendInterceptor
=
new
SenderSendInterceptor
();
}
public
void
setupSender
(
Class
<?
extends
Sender
>
klass
)
throws
NoSuchMethodException
,
SecurityException
{
sendMethod
=
klass
.
getMethod
(
"send"
);
allArguments
=
new
Object
[
0
];
argumentsTypes
=
new
Class
<?>[
0
];
}
@Test
public
void
test_constructor
()
{
Request
request
=
Request
.
create
(
"https://nutz.cn/yvr/list"
,
METHOD
.
GET
);
constructorInterceptPoint
.
onConstruct
(
enhancedInstance
,
new
Object
[]{
request
});
verify
(
enhancedInstance
,
times
(
1
)).
setSkyWalkingDynamicField
(
request
);
}
@Test
public
void
test_getsender_send
()
throws
NoSuchMethodException
,
SecurityException
,
Throwable
{
setupSender
(
GetSender
.
class
);
_sender_sender_test
();
}
@Test
public
void
test_postsender_send
()
throws
NoSuchMethodException
,
SecurityException
,
Throwable
{
setupSender
(
PostSender
.
class
);
_sender_sender_test
();
}
@Test
public
void
test_filepostsender_send
()
throws
NoSuchMethodException
,
SecurityException
,
Throwable
{
setupSender
(
FilePostSender
.
class
);
_sender_sender_test
();
}
protected
void
_sender_sender_test
()
throws
Throwable
{
Request
request
=
Request
.
create
(
"https://nutz.cn/yvr/list"
,
METHOD
.
GET
);
constructorInterceptPoint
.
onConstruct
(
enhancedInstance
,
new
Object
[]{
request
});
verify
(
enhancedInstance
,
times
(
1
)).
setSkyWalkingDynamicField
(
request
);
when
(
enhancedInstance
.
getSkyWalkingDynamicField
()).
thenReturn
(
request
);
when
(
resp
.
getStatus
()).
thenReturn
(
200
);
senderSendInterceptor
.
beforeMethod
(
enhancedInstance
,
sendMethod
,
allArguments
,
argumentsTypes
,
null
);
senderSendInterceptor
.
afterMethod
(
enhancedInstance
,
sendMethod
,
allArguments
,
argumentsTypes
,
resp
);
TraceSegment
traceSegment
=
segmentStorage
.
getTraceSegments
().
get
(
0
);
List
<
AbstractTracingSpan
>
spans
=
SegmentHelper
.
getSpans
(
traceSegment
);
assertThat
(
spans
.
size
(),
is
(
1
));
assertThat
(
spans
.
get
(
0
).
getOperationName
(),
is
(
"/yvr/list"
));
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录