Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
dotNET Platform
runtime
提交
af71fcca
R
runtime
项目概览
dotNET Platform
/
runtime
12 个月 前同步成功
通知
1
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
runtime
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
af71fcca
编写于
4月 23, 2021
作者:
G
Günther Foidl
提交者:
GitHub
4月 23, 2021
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Added tests for LoggerMessage.Define with skipEnabledCheck (#50773)
上级
dfeb707f
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
45 addition
and
0 deletion
+45
-0
src/libraries/Microsoft.Extensions.Logging/tests/Common/LoggerMessageTest.cs
...soft.Extensions.Logging/tests/Common/LoggerMessageTest.cs
+43
-0
src/libraries/Microsoft.Extensions.Logging/tests/DI.Common/Common/src/TestLogger.cs
...tensions.Logging/tests/DI.Common/Common/src/TestLogger.cs
+2
-0
未找到文件。
src/libraries/Microsoft.Extensions.Logging/tests/Common/LoggerMessageTest.cs
浏览文件 @
af71fcca
...
...
@@ -191,6 +191,38 @@ public void LogMessages(Delegate messageDelegate, int argumentCount)
var
actualLogValues
=
Assert
.
IsAssignableFrom
<
IReadOnlyList
<
KeyValuePair
<
string
,
object
>>>(
write
.
State
);
AssertLogValues
(
expectedValues
,
actualLogValues
.
ToList
());
Assert
.
Equal
(
expectedToString
,
actualLogValues
.
ToString
());
Assert
.
Equal
(
2
,
testLogger
.
IsEnabledCallCount
);
}
[
Theory
]
[
MemberData
(
nameof
(
LogMessagesDataSkipEnabledCheck
))]
public
void
LogMessagesSkipEnabledCheck
(
Delegate
messageDelegate
,
int
argumentCount
)
{
// Arrange
var
testSink
=
new
TestSink
();
var
testLogger
=
new
TestLogger
(
"testlogger"
,
testSink
,
enabled
:
true
);
var
exception
=
new
Exception
(
"TestException"
);
var
parameterNames
=
Enumerable
.
Range
(
0
,
argumentCount
).
Select
(
i
=>
"P"
+
i
).
ToArray
();
var
parameters
=
new
List
<
object
>();
parameters
.
Add
(
testLogger
);
parameters
.
AddRange
(
parameterNames
);
parameters
.
Add
(
exception
);
var
expectedFormat
=
"Log "
+
string
.
Join
(
" "
,
parameterNames
.
Select
(
p
=>
"{"
+
p
+
"}"
));
var
expectedToString
=
"Log "
+
string
.
Join
(
" "
,
parameterNames
);
var
expectedValues
=
parameterNames
.
Select
(
p
=>
new
KeyValuePair
<
string
,
object
>(
p
,
p
)).
ToList
();
expectedValues
.
Add
(
new
KeyValuePair
<
string
,
object
>(
"{OriginalFormat}"
,
expectedFormat
));
// Act
messageDelegate
.
DynamicInvoke
(
parameters
.
ToArray
());
// Assert
Assert
.
Single
(
testSink
.
Writes
);
var
write
=
testSink
.
Writes
.
First
();
var
actualLogValues
=
Assert
.
IsAssignableFrom
<
IReadOnlyList
<
KeyValuePair
<
string
,
object
>>>(
write
.
State
);
AssertLogValues
(
expectedValues
,
actualLogValues
.
ToList
());
Assert
.
Equal
(
expectedToString
,
actualLogValues
.
ToString
());
Assert
.
Equal
(
1
,
testLogger
.
IsEnabledCallCount
);
}
[
Fact
]
...
...
@@ -392,6 +424,17 @@ public void DefineAndDefineScope_ThrowsException_WhenFormatString_IsNull(Delegat
new
object
[]
{
LoggerMessage
.
Define
<
string
,
string
,
string
,
string
,
string
,
string
>(
LogLevel
.
Error
,
6
,
"Log {P0} {P1} {P2} {P3} {P4} {P5}"
),
6
},
};
public
static
IEnumerable
<
object
[
]>
LogMessagesDataSkipEnabledCheck
=>
new
[]
{
new
object
[]
{
LoggerMessage
.
Define
(
LogLevel
.
Error
,
0
,
"Log "
,
skipEnabledCheck
:
true
),
0
},
new
object
[]
{
LoggerMessage
.
Define
<
string
>(
LogLevel
.
Error
,
1
,
"Log {P0}"
,
skipEnabledCheck
:
true
),
1
},
new
object
[]
{
LoggerMessage
.
Define
<
string
,
string
>(
LogLevel
.
Error
,
2
,
"Log {P0} {P1}"
,
skipEnabledCheck
:
true
),
2
},
new
object
[]
{
LoggerMessage
.
Define
<
string
,
string
,
string
>(
LogLevel
.
Error
,
3
,
"Log {P0} {P1} {P2}"
,
skipEnabledCheck
:
true
),
3
},
new
object
[]
{
LoggerMessage
.
Define
<
string
,
string
,
string
,
string
>(
LogLevel
.
Error
,
4
,
"Log {P0} {P1} {P2} {P3}"
,
skipEnabledCheck
:
true
),
4
},
new
object
[]
{
LoggerMessage
.
Define
<
string
,
string
,
string
,
string
,
string
>(
LogLevel
.
Error
,
5
,
"Log {P0} {P1} {P2} {P3} {P4}"
,
skipEnabledCheck
:
true
),
5
},
new
object
[]
{
LoggerMessage
.
Define
<
string
,
string
,
string
,
string
,
string
,
string
>(
LogLevel
.
Error
,
6
,
"Log {P0} {P1} {P2} {P3} {P4} {P5}"
,
skipEnabledCheck
:
true
),
6
},
};
private
delegate
Delegate
Define
(
LogLevel
logLevel
,
EventId
eventId
,
string
formatString
);
private
delegate
Delegate
DefineScope
(
string
formatString
);
private
static
object
[]
DefineInvalidParameters
=>
new
object
[]
{
LogLevel
.
Error
,
new
EventId
(
0
),
null
};
...
...
src/libraries/Microsoft.Extensions.Logging/tests/DI.Common/Common/src/TestLogger.cs
浏览文件 @
af71fcca
...
...
@@ -25,6 +25,7 @@ public TestLogger(string name, ITestSink sink, Func<LogLevel, bool> filter)
}
public
string
Name
{
get
;
set
;
}
public
int
IsEnabledCallCount
{
get
;
private
set
;
}
public
IDisposable
BeginScope
<
TState
>(
TState
state
)
{
...
...
@@ -60,6 +61,7 @@ public void Log<TState>(LogLevel logLevel, EventId eventId, TState state, Except
public
bool
IsEnabled
(
LogLevel
logLevel
)
{
IsEnabledCallCount
++;
return
logLevel
!=
LogLevel
.
None
&&
_filter
(
logLevel
);
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录