Beispiel #1
0
        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"));
        }
Beispiel #3
0
        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);
        }
Beispiel #4
0
        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);
        }
Beispiel #5
0
        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);
                }
            }
        }
Beispiel #6
0
        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();
            }
        }