private async Task <SendResult> SendDeliverMessageAsync( Method deliverMethod, DeliverMessageEnvelope deliverMessage) { IDeliverSender sender = _messageProvider.GetDeliverSender(deliverMethod.Type); if (sender == null) { throw new ArgumentNullException( nameof(sender), $@"No {nameof(IDeliverSender)} can be found for DeliverMethod.Type = {deliverMethod?.Type}"); } sender.Configure(deliverMethod); Task <SendResult> sendAsync = sender.SendAsync(deliverMessage); if (sendAsync == null) { throw new ArgumentNullException( nameof(sendAsync), $@"{sender.GetType().Name} returns 'null' for sending DeliverMessage"); } return(await sendAsync.ConfigureAwait(false)); }
private IStep CreateSendDeliverStepWithSender(IDeliverSender spySender) { var stubProvider = new Mock <IDeliverSenderProvider>(); stubProvider.Setup(p => p.GetDeliverSender(It.IsAny <string>())).Returns(spySender); return(new SendDeliverMessageStep(stubProvider.Object, GetDataStoreContext)); }
/// <summary> /// Initializes a new instance of the <see cref="ReliableSender"/> class. /// </summary> /// <param name="deliverSender"></param> public ReliableSender(IDeliverSender deliverSender) { if (deliverSender == null) { throw new ArgumentNullException(nameof(deliverSender)); } InnerDeliverSender = deliverSender; }
public void DeliverSenderProviderGetsSender( string expectedKey, Type expectedSenderType) { // Arrange var provider = DeliverSenderProvider.Instance; // Act IDeliverSender actualSender = provider.GetDeliverSender(expectedKey); // Assert Assert.IsType <ReliableSender>(actualSender); Assert.IsType(expectedSenderType, ((ReliableSender)actualSender).InnerDeliverSender); }