Исходный код вики Простой moq для MediatR command
Редактировал(а) Alexandr Fokin 2024/01/04 19:19
Последние авторы
author | version | line-number | content |
---|---|---|---|
1 | [[Moq>>doc:Разработка.NET.Библиотеки.Тестирование.Moq.WebHome]] билдер для [[Тестирование>>doc:Разработка.Тестирование.WebHome]]. | ||
2 | |||
3 | ---- | ||
4 | |||
5 | {{code language="c#"}} | ||
6 | using MediatR; | ||
7 | |||
8 | using Moq; | ||
9 | |||
10 | namespace test.Model | ||
11 | { | ||
12 | internal class MediatorMoqBuilder | ||
13 | { | ||
14 | private readonly Mock<IMediator> _mock = new Mock<IMediator>(); | ||
15 | |||
16 | |||
17 | public MediatorMoqBuilder AddCommand<TParameter, TResult>( | ||
18 | Func<TParameter, CancellationToken, Task<TResult>> commandActionAsync | ||
19 | ) | ||
20 | where TParameter : IRequest<TResult> | ||
21 | { | ||
22 | _mock | ||
23 | .Setup( | ||
24 | e => e.Send(It.IsAny<TParameter>(), It.IsAny<CancellationToken>()) | ||
25 | ) | ||
26 | .Returns(commandActionAsync); | ||
27 | return this; | ||
28 | } | ||
29 | |||
30 | |||
31 | public IMediator GetMediator() | ||
32 | { | ||
33 | return _mock.Object; | ||
34 | } | ||
35 | } | ||
36 | } | ||
37 | {{/code}} |