public void RabbitMQ_deve_lancar_erro_ao_deserializar_messagem_de_tipos_diferentes() { var guid = Guid.NewGuid().ToString(); string queueName = $"fila-teste-rabbitmq-{guid}"; var config = new MessagingConfigBuilder("RabbitMQ", BrokerType.RabbitMQ, new Dictionary <string, string>() { { "HostName", ServerName } }).Create(); // garantir que a fila tem 0 mensagens var vazia = Messaging.Dequeue(queueName, config); Assert.IsNull(vazia); // enviar um objeto Invoice Messaging.Enqueue(queueName, _invoiceMessage, config); // receber objeto convertendo pra AnotherClass Assert.ThrowsException <InvalidCastException>(() => Messaging.Dequeue <AnotherClass>(queueName, config)); // garantir que ainda está na fila recebendo uma mensagem var recebida = Messaging.Dequeue(queueName, config); Assert.IsNotNull(recebida); }
public void Configuracao_deve_emitir_exception_ao_tentar_recuperar_broker_inexistente_de_fila_configurada() { // arquivo var fileContent = @"<?xml version='1.0' encoding='utf-8' ?><configuration><configSections> <section name='MessagingConfigSection' type='Benner.Messaging.MessagingFileConfigSection, Benner.Messaging' /> </configSections><MessagingConfigSection> <queues> <queue name='teste' broker='naoexiste' /> </queues> <brokerList default='RabbitMQ'> <broker name='RabbitMQ' type='Benner.Messaging.RabbitMQConfig, Benner.Messaging'> <add key='chave' value='valor' /> </broker> </brokerList> </MessagingConfigSection></configuration>"; File.AppendAllText(_testeConfigPath, fileContent); Assert.ThrowsException <ArgumentException>(() => new FileMessagingConfig(_testeConfigPath).GetConfigForQueue("teste")); // memória var config = new MessagingConfigBuilder("rabbit", BrokerType.RabbitMQ, new Dictionary <string, string>()) .WithMappedQueue("teste", "naoexiste") .Create(); Assert.ThrowsException <ArgumentException>(() => config.GetConfigForQueue("teste")); }
public void ActiveMQ_deve_enviar_e_receber_mensagens_com_configuracao_em_memoria() { var guid = Guid.NewGuid().ToString(); string queueName = $"fila-teste-activemq-{guid}"; string message = $"Mensagem que deve retornar {guid}"; var config = new MessagingConfigBuilder("ActiveMQ", BrokerType.ActiveMQ, new Dictionary <string, string>() { { "Hostname", ServerName } }) .Create(); Messaging.Enqueue(queueName, message, config); var received = Messaging.Dequeue(queueName, config); Assert.AreEqual(message, received); }
public void AmazonSQS_deve_enviar_e_receber_mensagens_com_configuracao_em_memoria() { var guid = Guid.NewGuid().ToString(); string queueName = $"fila-teste-amazonsqs-{guid}"; string message = $"Mensagem que deve retornar {guid}"; var config = new MessagingConfigBuilder("AmazonSQS", BrokerType.AmazonSQS, new Dictionary <string, string>() { { "InvisibilityTime", "15" } }) .Create(); Messaging.Enqueue(queueName, message, config); var received = Messaging.Dequeue(queueName, config); Assert.AreEqual(message, received); }
static void Main(string[] args) { var config = new MessagingConfigBuilder() .WithRabbitMQBroker("RabbitMQ", "servername", setAsDefault: true) .Create(); // sample 01: enqueue single message // Messaging.Enqueue("queue-name", "hello world!", config); // sample 02: enqueue many messages using (var client = new Messaging(config)) { for (int i = 1; i <= 1000; i++) { client.EnqueueMessage("my-queue", "hello world #" + i); } } }
static void Main(string[] args) { var config = new MessagingConfigBuilder() .WithRabbitMQBroker("RabbitMQ", "servername", setAsDefault: true) .Create(); // sample 01: dequeue single message // var message = Messaging.Dequeue("queue-name", config); // Console.Write(message); // sample 02: keep listening using (var client = new Messaging(config)) { client.StartListening("my-queue", (e) => { // Print the message Console.WriteLine(e.AsString); return(true); }); // Stand-by the application so it can keep listening Console.ReadKey(); } }