public void Create_Default(string name, Data d) { var test = new MessageContextData <Data>(name, d); Assert.Equal(name, test.Name); Assert.Equal(d, test.Default); }
private async Task <ConsumeResult> DispatchMessage(object message, MessageContextData messageContextData) { var returnResult = ConsumeResult.Success; var messageType = message.GetType(); var validMessageType = false; foreach (var binding in bindings.Where(binding => binding.Accept(messageType))) { var consumeResult = await InvokeUsingBinding(message, messageContextData, binding); validMessageType = true; if (consumeResult != ConsumeResult.Success) { returnResult = consumeResult; } } if (!validMessageType) { throw new ArgumentException($"No binding found for message type: {message.GetType().FullName}"); } return(returnResult); }
private async Task <ConsumeResult> InvokeUsingBinding(object message, MessageContextData messageContextData, IBinding binding) { using (var context = new MessageContext { Config = config, Queue = queueName, Exchange = messageContextData.Exchange, RoutingKey = messageContextData.RoutingKey, Message = message, Properties = messageContextData.Properties, Binding = binding }) { try { await MiddlewareHelper.GoAsync(config.Middleware.Message, async (handler, next) => await handler.Handle(context, next), async() => { await binding.Invoke(context); }); await binding.Cleanup(context, ConsumeResult.Success); return(ConsumeResult.Success); } catch (Exception invokeException) { var exceptionContext = new ExceptionStrategyContext(context, invokeException); HandleException(exceptionContext); await binding.Cleanup(context, exceptionContext.ConsumeResult); return(exceptionContext.ConsumeResult); } } }
public void Create_Null_Name_Fails() { Assert.Throws<ArgumentNullException>( delegate { var test = new MessageContextData<Data>(null, null); Assert.Null(test); }); }
public void Create_Null_Name_Fails() { Assert.Throws <ArgumentNullException>( delegate { var test = new MessageContextData <Data>(null, null); Assert.Null(test); }); }
public void Send_Message_And_Data(string value) { using (var test = CreateQueue()) { var data = new FakeAMessageData(); IMessageContextData <string> header = new MessageContextData <string>(value, string.Empty); data.SetHeader(header, value); test.Send((message, notification) => Console.WriteLine("hello"), data); } }
public void Send_Message_And_Data(string value) { using (var test = CreateQueue()) { var data = new FakeAMessageData(); IMessageContextData <string> header = new MessageContextData <string>(value, string.Empty); data.SetHeader(header, value); test.Send(new FakeMessage(), data); } }
public void Send_Message_And_Data(string value) { using (var test = CreateQueue()) { var data = new FakeAMessageData(); IMessageContextData <string> header = new MessageContextData <string>(value, string.Empty); data.SetHeader(header, value); var response = test.CreateResponse(Substitute.For <IMessageId>(), TimeSpan.FromHours(1)); test.Send(new FakeMessage(), response, data); } }
public void Create_Default(string name, Data d) { var test = new MessageContextData<Data>(name, d); Assert.Equal(name, test.Name); Assert.Equal(d, test.Default); }
public void Create_Null_Data_Ok(string name) { var test = new MessageContextData<Data>(name, null); Assert.NotNull(test); }
public void Send_Message_And_Data(string value) { using (var test = CreateQueue()) { var data = new FakeAMessageData(); IMessageContextData<string> header = new MessageContextData<string>(value, string.Empty); data.SetHeader(header, value); test.Send((message, notification) => Console.WriteLine("hello"), data); } }
public void Create_Null_Data_Ok(string name) { var test = new MessageContextData <Data>(name, null); Assert.NotNull(test); }
public void Send_Message_And_Data(string value) { using (var test = CreateQueue()) { var data = new FakeAMessageData(); IMessageContextData<string> header = new MessageContextData<string>(value, string.Empty); data.SetHeader(header, value); var response = test.CreateResponse(Substitute.For<IMessageId>(), TimeSpan.FromHours(1)); test.Send(new FakeMessage(), response, data); } }
public void Send_Message_And_Data(string value) { using (var test = CreateQueue()) { var data = new FakeAMessageData(); IMessageContextData<string> header = new MessageContextData<string>(value, string.Empty); data.SetHeader(header, value); test.Send(new FakeMessage(), data); } }