Исходный код вики Простой 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}} |