Azure Функции имеют атрибуты привязки веб-заданий, такие как EventHub, SendGrid et c. Эти атрибуты помогают сделать соответствующие службы IAsyncCollector доступными внутри функций. Внутри функций я могу использовать коллектор SendGrid, например, для отправки сообщений электронной почты. Пример фрагмента кода приведен ниже -
[FunctionName("SendReportEmail")]
public async Task SendEmailAsync(
[ActivityTrigger] IDurableActivityContext context,
ILogger logger,
[SendGrid(ApiKey = "SendGridKey")] IAsyncCollector <SendGridMessage> messageCollector) {
var data = context.GetInput <EmailModel> ();
var message = _service.GetEmailMessage(data, logger);
await messageCollector.AddAsync(message);
}
Теперь я хотел бы подделать messageCollector
, чтобы при попытке отправить сообщение электронной почты он добавил список или словарь вместо электронной почты.
Я знаю, что могу создать новый атрибут, чтобы обернуть существующее поведение клиента sendgrid и сделать доступным новый сборщик. Но есть ли другой способ контролировать поведение коллектора?
NB. Я хочу сделать это с целью тестирования компонентов. Так что, если есть способ сделать это на уровне приложения, было бы здорово.