Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
项羽过江东
spring-framework-source
提交
376a8989
spring-framework-source
项目概览
项羽过江东
/
spring-framework-source
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
spring-framework-source
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
376a8989
编写于
8月 27, 2023
作者:
A
Anna Buyevich
提交者:
Brian Clozel
8月 29, 2023
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Add more tests to DefaultClientRequestObservationConvention
Closes gh-31125
上级
38392233
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
51 addition
and
6 deletion
+51
-6
spring-web/src/test/java/org/springframework/http/client/observation/DefaultClientRequestObservationConventionTests.java
...ation/DefaultClientRequestObservationConventionTests.java
+51
-6
未找到文件。
spring-web/src/test/java/org/springframework/http/client/observation/DefaultClientRequestObservationConventionTests.java
浏览文件 @
376a8989
...
@@ -20,10 +20,12 @@ package org.springframework.http.client.observation;
...
@@ -20,10 +20,12 @@ package org.springframework.http.client.observation;
import
java.io.IOException
;
import
java.io.IOException
;
import
io.micrometer.common.KeyValue
;
import
io.micrometer.common.KeyValue
;
import
io.micrometer.common.KeyValues
;
import
io.micrometer.observation.Observation
;
import
io.micrometer.observation.Observation
;
import
org.junit.jupiter.api.Test
;
import
org.junit.jupiter.api.Test
;
import
org.springframework.http.HttpMethod
;
import
org.springframework.http.HttpMethod
;
import
org.springframework.http.HttpStatusCode
;
import
org.springframework.http.client.ClientHttpRequest
;
import
org.springframework.http.client.ClientHttpRequest
;
import
org.springframework.http.client.ClientHttpResponse
;
import
org.springframework.http.client.ClientHttpResponse
;
import
org.springframework.web.testfixture.http.client.MockClientHttpRequest
;
import
org.springframework.web.testfixture.http.client.MockClientHttpRequest
;
...
@@ -42,6 +44,8 @@ class DefaultClientRequestObservationConventionTests {
...
@@ -42,6 +44,8 @@ class DefaultClientRequestObservationConventionTests {
private
final
MockClientHttpRequest
request
=
new
MockClientHttpRequest
(
HttpMethod
.
GET
,
"/test"
);
private
final
MockClientHttpRequest
request
=
new
MockClientHttpRequest
(
HttpMethod
.
GET
,
"/test"
);
private
final
static
MockClientHttpResponse
response
=
new
MockClientHttpResponse
();
private
final
DefaultClientRequestObservationConvention
observationConvention
=
new
DefaultClientRequestObservationConvention
();
private
final
DefaultClientRequestObservationConvention
observationConvention
=
new
DefaultClientRequestObservationConvention
();
@Test
@Test
...
@@ -65,7 +69,7 @@ class DefaultClientRequestObservationConventionTests {
...
@@ -65,7 +69,7 @@ class DefaultClientRequestObservationConventionTests {
@Test
@Test
void
addsKeyValuesForRequestWithUriTemplate
()
{
void
addsKeyValuesForRequestWithUriTemplate
()
{
ClientRequestObservationContext
context
=
createContext
(
ClientRequestObservationContext
context
=
createContext
(
new
MockClientHttpRequest
(
HttpMethod
.
GET
,
"/resource/{id}"
,
42
),
new
MockClientHttpResponse
()
);
new
MockClientHttpRequest
(
HttpMethod
.
GET
,
"/resource/{id}"
,
42
),
response
);
context
.
setUriTemplate
(
"/resource/{id}"
);
context
.
setUriTemplate
(
"/resource/{id}"
);
assertThat
(
this
.
observationConvention
.
getLowCardinalityKeyValues
(
context
))
assertThat
(
this
.
observationConvention
.
getLowCardinalityKeyValues
(
context
))
.
contains
(
KeyValue
.
of
(
"exception"
,
"none"
),
KeyValue
.
of
(
"method"
,
"GET"
),
KeyValue
.
of
(
"uri"
,
"/resource/{id}"
),
.
contains
(
KeyValue
.
of
(
"exception"
,
"none"
),
KeyValue
.
of
(
"method"
,
"GET"
),
KeyValue
.
of
(
"uri"
,
"/resource/{id}"
),
...
@@ -76,7 +80,7 @@ class DefaultClientRequestObservationConventionTests {
...
@@ -76,7 +80,7 @@ class DefaultClientRequestObservationConventionTests {
@Test
@Test
void
addsKeyValuesForRequestWithUriTemplateWithHost
()
{
void
addsKeyValuesForRequestWithUriTemplateWithHost
()
{
ClientRequestObservationContext
context
=
createContext
(
ClientRequestObservationContext
context
=
createContext
(
new
MockClientHttpRequest
(
HttpMethod
.
GET
,
"https://example.org/resource/{id}"
,
42
),
new
MockClientHttpResponse
()
);
new
MockClientHttpRequest
(
HttpMethod
.
GET
,
"https://example.org/resource/{id}"
,
42
),
response
);
context
.
setUriTemplate
(
"https://example.org/resource/{id}"
);
context
.
setUriTemplate
(
"https://example.org/resource/{id}"
);
assertThat
(
this
.
observationConvention
.
getLowCardinalityKeyValues
(
context
))
assertThat
(
this
.
observationConvention
.
getLowCardinalityKeyValues
(
context
))
.
contains
(
KeyValue
.
of
(
"exception"
,
"none"
),
KeyValue
.
of
(
"method"
,
"GET"
),
KeyValue
.
of
(
"uri"
,
"/resource/{id}"
),
.
contains
(
KeyValue
.
of
(
"exception"
,
"none"
),
KeyValue
.
of
(
"method"
,
"GET"
),
KeyValue
.
of
(
"uri"
,
"/resource/{id}"
),
...
@@ -88,7 +92,7 @@ class DefaultClientRequestObservationConventionTests {
...
@@ -88,7 +92,7 @@ class DefaultClientRequestObservationConventionTests {
@Test
@Test
void
addsKeyValuesForRequestWithoutUriTemplate
()
{
void
addsKeyValuesForRequestWithoutUriTemplate
()
{
ClientRequestObservationContext
context
=
createContext
(
ClientRequestObservationContext
context
=
createContext
(
new
MockClientHttpRequest
(
HttpMethod
.
GET
,
"/resource/42"
),
new
MockClientHttpResponse
()
);
new
MockClientHttpRequest
(
HttpMethod
.
GET
,
"/resource/42"
),
response
);
assertThat
(
this
.
observationConvention
.
getLowCardinalityKeyValues
(
context
))
assertThat
(
this
.
observationConvention
.
getLowCardinalityKeyValues
(
context
))
.
contains
(
KeyValue
.
of
(
"method"
,
"GET"
),
KeyValue
.
of
(
"client.name"
,
"none"
),
KeyValue
.
of
(
"uri"
,
"none"
));
.
contains
(
KeyValue
.
of
(
"method"
,
"GET"
),
KeyValue
.
of
(
"client.name"
,
"none"
),
KeyValue
.
of
(
"uri"
,
"none"
));
assertThat
(
this
.
observationConvention
.
getHighCardinalityKeyValues
(
context
)).
contains
(
KeyValue
.
of
(
"http.url"
,
"/resource/42"
));
assertThat
(
this
.
observationConvention
.
getHighCardinalityKeyValues
(
context
)).
contains
(
KeyValue
.
of
(
"http.url"
,
"/resource/42"
));
...
@@ -98,19 +102,60 @@ class DefaultClientRequestObservationConventionTests {
...
@@ -98,19 +102,60 @@ class DefaultClientRequestObservationConventionTests {
void
addsClientNameForRequestWithHost
()
{
void
addsClientNameForRequestWithHost
()
{
ClientRequestObservationContext
context
=
createContext
(
ClientRequestObservationContext
context
=
createContext
(
new
MockClientHttpRequest
(
HttpMethod
.
GET
,
"https://localhost:8080/resource/42"
),
new
MockClientHttpRequest
(
HttpMethod
.
GET
,
"https://localhost:8080/resource/42"
),
new
MockClientHttpResponse
()
);
response
);
assertThat
(
this
.
observationConvention
.
getLowCardinalityKeyValues
(
context
)).
contains
(
KeyValue
.
of
(
"client.name"
,
"localhost"
));
assertThat
(
this
.
observationConvention
.
getLowCardinalityKeyValues
(
context
)).
contains
(
KeyValue
.
of
(
"client.name"
,
"localhost"
));
}
}
@Test
@Test
void
addsKeyValueForNonResolvableStatus
()
throws
Exception
{
void
addsKeyValueForNonResolvableStatus
()
throws
Exception
{
ClientRequestObservationContext
context
=
new
ClientRequestObservationContext
(
this
.
request
);
ClientHttpResponse
response
=
mock
();
ClientHttpResponse
response
=
mock
();
context
.
setResponse
(
response
);
ClientRequestObservationContext
context
=
createContext
(
this
.
request
,
response
);
given
(
response
.
getStatusCode
()).
willThrow
(
new
IOException
(
"test error"
));
given
(
response
.
getStatusCode
()).
willThrow
(
new
IOException
(
"test error"
));
assertThat
(
this
.
observationConvention
.
getLowCardinalityKeyValues
(
context
)).
contains
(
KeyValue
.
of
(
"status"
,
"IO_ERROR"
));
assertThat
(
this
.
observationConvention
.
getLowCardinalityKeyValues
(
context
)).
contains
(
KeyValue
.
of
(
"status"
,
"IO_ERROR"
));
}
}
@Test
void
addKeyValueForNon200Response
()
{
MockClientHttpResponse
response
=
new
MockClientHttpResponse
(
new
byte
[
0
],
HttpStatusCode
.
valueOf
(
400
));
ClientRequestObservationContext
context
=
createContext
(
request
,
response
);
KeyValues
lowCardinality
=
this
.
observationConvention
.
getLowCardinalityKeyValues
(
context
);
assertThat
(
lowCardinality
).
contains
(
KeyValue
.
of
(
"status"
,
"400"
));
}
@Test
void
addKeyValuesForUnknownStatusResponse
()
{
MockClientHttpResponse
response
=
new
MockClientHttpResponse
(
new
byte
[
0
],
512
);
ClientRequestObservationContext
context
=
createContext
(
request
,
response
);
KeyValues
lowCardinalityKeyValues
=
this
.
observationConvention
.
getLowCardinalityKeyValues
(
context
);
assertThat
(
lowCardinalityKeyValues
).
contains
(
KeyValue
.
of
(
"status"
,
"512"
),
KeyValue
.
of
(
"outcome"
,
"UNKNOWN"
));
}
@Test
void
addKeyValuesForRequestNull
()
{
ClientRequestObservationContext
context
=
createContext
(
null
,
response
);
KeyValues
highCardinality
=
this
.
observationConvention
.
getHighCardinalityKeyValues
(
context
);
assertThat
(
highCardinality
).
contains
(
KeyValue
.
of
(
"http.url"
,
"none"
));
KeyValues
lowCardinality
=
this
.
observationConvention
.
getLowCardinalityKeyValues
(
context
);
assertThat
(
lowCardinality
).
contains
(
KeyValue
.
of
(
"method"
,
"none"
),
KeyValue
.
of
(
"exception"
,
"none"
),
KeyValue
.
of
(
"client.name"
,
"none"
),
KeyValue
.
of
(
"uri"
,
"none"
)
);
}
@Test
void
addKeyValueForResponseNull
()
{
ClientRequestObservationContext
context
=
createContext
(
this
.
request
,
null
);
KeyValues
lowCardinality
=
this
.
observationConvention
.
getLowCardinalityKeyValues
(
context
);
assertThat
(
lowCardinality
).
contains
(
KeyValue
.
of
(
"status"
,
"CLIENT_ERROR"
));
}
@Test
void
addKeyValueForContextError
()
{
ClientRequestObservationContext
context
=
createContext
(
this
.
request
,
response
);
context
.
setError
(
new
RuntimeException
(
"error"
));
KeyValues
lowCardinality
=
this
.
observationConvention
.
getLowCardinalityKeyValues
(
context
);
assertThat
(
lowCardinality
).
contains
(
KeyValue
.
of
(
"exception"
,
"RuntimeException"
));
}
private
ClientRequestObservationContext
createContext
(
ClientHttpRequest
request
,
ClientHttpResponse
response
)
{
private
ClientRequestObservationContext
createContext
(
ClientHttpRequest
request
,
ClientHttpResponse
response
)
{
ClientRequestObservationContext
context
=
new
ClientRequestObservationContext
(
request
);
ClientRequestObservationContext
context
=
new
ClientRequestObservationContext
(
request
);
context
.
setResponse
(
response
);
context
.
setResponse
(
response
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录