Example #1
0
        public void Can_get_message_from_client_connection()
        {
            using (var connection = new RavenMQConnection(new Uri(configuration.ServerUrl)))
            {
                var             manualResetEventSlim = new ManualResetEventSlim(false);
                OutgoingMessage msg = null;
                connection.SubscribeRaw("/queues/abc", (context, message) =>
                {
                    msg = message;
                    manualResetEventSlim.Set();
                });

                WaitForSubscription();

                ravenMqServer.Queues.Enqueue(new IncomingMessage
                {
                    Data  = new byte[] { 1, 2, 3 },
                    Queue = "/queues/abc"
                });

                manualResetEventSlim.Wait();

                Assert.Equal(new byte[] { 1, 2, 3 }, msg.Data);
            }
        }
Example #2
0
        public void Queues_are_incase_sensitive()
        {
            using (var connection = new RavenMQConnection(new Uri(configuration.ServerUrl)))
            {
                Exception e    = null;
                var       slim = new ManualResetEventSlim(false);
                connection.DeserializationError += (sender, args) =>
                {
                    e = args.Value;
                    slim.Set();
                };
                User u = null;
                connection.StartPublishing
                .Add("/queues/User", new User {
                    Name = "Ayende"
                })
                .PublishAsync();

                connection.Subscribe <User>("/queues/USER", (context, s) =>
                {
                    u = s;
                    slim.Set();
                });


                slim.Wait();
                Assert.Null(e);
                Assert.Equal(u.Name, "Ayende");
            }
        }
Example #3
0
        public void Publishing_Guid()
        {
            using (var connection = new RavenMQConnection(new Uri(configuration.ServerUrl)))
            {
                Exception e = null;
                var slim = new ManualResetEventSlim(false);
                connection.DeserializationError += (sender, args) =>
                {
                    e = args.Value;
                    slim.Set();
                };
                Guid expected = new Guid("368B3B18-ACCD-4D95-8632-82A93E9E15DE");
                Guid dt = Guid.Empty;

                connection.StartPublishing
                    .Add("/queues/gd", expected)
                    .PublishAsync();

                connection.Subscribe<Guid>("/queues/gd", (context, s) =>
                {
                    dt = s;
                    slim.Set();
                });

                slim.Wait();
                Assert.Null(e);
                Assert.Equal(expected, dt);
            }
        }
Example #4
0
        static void Main()
        {
            var con = new RavenMQConnection(new Uri("http://AYENDEPC:8181/"));



            Console.ReadLine();
        }
Example #5
0
        public void Can_send_a_message_from_receiving_msg()
        {
            using (var connection = new RavenMQConnection(new Uri(configuration.ServerUrl)))
            {
                var             manualResetEventSlim = new ManualResetEventSlim(false);
                OutgoingMessage msg = null;
                connection.SubscribeRaw("/queues/abc", (context, message) =>
                {
                    msg = message;
                    context.Send(new IncomingMessage
                    {
                        Data  = new byte[] { 4, 5, 6 },
                        Queue = "/queues/def"
                    });
                    manualResetEventSlim.Set();
                });

                WaitForSubscription();

                ravenMqServer.Queues.Enqueue(new IncomingMessage
                {
                    Data  = new byte[] { 1, 2, 3 },
                    Queue = "/queues/abc"
                });

                manualResetEventSlim.Wait();

                Assert.Equal(new byte[] { 1, 2, 3 }, msg.Data);

                ReadResults results;
                do
                {
                    results = ravenMqServer.Queues.Read(new ReadRequest
                    {
                        Queue = "/queues/def"
                    });
                    Thread.Sleep(1);
                } while (results.Results.Count() == 0);

                Assert.Equal(new byte[] { 4, 5, 6 }, results.Results.First().Data);
            }
        }
Example #6
0
        public void Publishing_DateTime()
        {
            using (var connection = new RavenMQConnection(new Uri(configuration.ServerUrl)))
            {
                DateTime dt = DateTime.MinValue;
                var slim = new ManualResetEventSlim(false);

                connection.StartPublishing
                    .Add("/queues/dt", new DateTime(2010,1,1))
                    .PublishAsync();

                connection.Subscribe<DateTime>("/queues/dt", (context, s) =>
                {
                    dt = s;
                    slim.Set();
                });

                slim.Wait();
                Assert.Equal(new DateTime(2010, 1, 1), dt);
            }
        }
Example #7
0
        public void Publishing_DateTime()
        {
            using (var connection = new RavenMQConnection(new Uri(configuration.ServerUrl)))
            {
                DateTime dt   = DateTime.MinValue;
                var      slim = new ManualResetEventSlim(false);

                connection.StartPublishing
                .Add("/queues/dt", new DateTime(2010, 1, 1))
                .PublishAsync();

                connection.Subscribe <DateTime>("/queues/dt", (context, s) =>
                {
                    dt = s;
                    slim.Set();
                });


                slim.Wait();
                Assert.Equal(new DateTime(2010, 1, 1), dt);
            }
        }
Example #8
0
        public void Publishing_from_the_client_out_of_scope()
        {
            using (var connection = new RavenMQConnection(new Uri(configuration.ServerUrl)))
            {
                connection.StartPublishing.AddRaw(new IncomingMessage
                {
                    Queue = "/queues/abc",
                    Data  = new byte[] { 1, 2, 3 },
                }).PublishAsync();
                var             manualResetEventSlim = new ManualResetEventSlim(false);
                OutgoingMessage msg = null;
                connection.SubscribeRaw("/queues/abc", (context, message) =>
                {
                    msg = message;
                    manualResetEventSlim.Set();
                });

                manualResetEventSlim.Wait(TimeSpan.FromSeconds(10));

                Assert.Equal(new byte[] { 1, 2, 3 }, msg.Data);
            }
        }
Example #9
0
        public void Can_flush_messages_manually()
        {
            using (var connection = new RavenMQConnection(new Uri(configuration.ServerUrl)))
            {
                connection.ConnectToServerTask.Wait();
                var manualResetEventSlim = new ManualResetEventSlim(false);
                OutgoingMessage msg = null;
                connection.SubscribeRaw("/queues/abc", (context, message) =>
                {
                    msg = message;
                    context.Send(new IncomingMessage
                    {
                        Data = new byte[] { 4, 5, 6 },
                        Queue = "/queues/def"
                    });
                    context.FlushAsync().Wait();
                    manualResetEventSlim.Set();
                });

                WaitForSubscription();

                ravenMqServer.Queues.Enqueue(new IncomingMessage
                {
                    Data = new byte[] { 1, 2, 3 },
                    Queue = "/queues/abc"
                });

                manualResetEventSlim.Wait();

                Assert.Equal(new byte[] { 1, 2, 3 }, msg.Data);

                var results = ravenMqServer.Queues.Read(new ReadRequest
                {
                    Queue = "/queues/def"
                });

                Assert.Equal(new byte[] { 4, 5, 6 }, results.Results.First().Data);
            }
        }
Example #10
0
        public void Can_flush_messages_manually()
        {
            using (var connection = new RavenMQConnection(new Uri(configuration.ServerUrl)))
            {
                connection.ConnectToServerTask.Wait();
                var             manualResetEventSlim = new ManualResetEventSlim(false);
                OutgoingMessage msg = null;
                connection.SubscribeRaw("/queues/abc", (context, message) =>
                {
                    msg = message;
                    context.Send(new IncomingMessage
                    {
                        Data  = new byte[] { 4, 5, 6 },
                        Queue = "/queues/def"
                    });
                    context.FlushAsync().Wait();
                    manualResetEventSlim.Set();
                });

                WaitForSubscription();

                ravenMqServer.Queues.Enqueue(new IncomingMessage
                {
                    Data  = new byte[] { 1, 2, 3 },
                    Queue = "/queues/abc"
                });

                manualResetEventSlim.Wait();

                Assert.Equal(new byte[] { 1, 2, 3 }, msg.Data);

                var results = ravenMqServer.Queues.Read(new ReadRequest
                {
                    Queue = "/queues/def"
                });

                Assert.Equal(new byte[] { 4, 5, 6 }, results.Results.First().Data);
            }
        }
Example #11
0
        public void Publishing_from_the_client_out_of_scope()
        {
            using (var connection = new RavenMQConnection(new Uri(configuration.ServerUrl)))
            {

                connection.StartPublishing.AddRaw(new IncomingMessage
                {
                    Queue = "/queues/abc",
                    Data = new byte[] {1, 2, 3},
                }).PublishAsync();
                var manualResetEventSlim = new ManualResetEventSlim(false);
                OutgoingMessage msg = null;
                connection.SubscribeRaw("/queues/abc", (context, message) =>
                {
                    msg = message;
                    manualResetEventSlim.Set();
                });

                manualResetEventSlim.Wait(TimeSpan.FromSeconds(10));

                Assert.Equal(new byte[] { 1, 2, 3 }, msg.Data);
            }
        }
Example #12
0
        static void Main()
        {
            var con = new RavenMQConnection(new Uri("http://AYENDEPC:8181/"));

            Console.ReadLine();
        }
Example #13
0
        public void Publishing_string()
        {
            using (var connection = new RavenMQConnection(new Uri(configuration.ServerUrl)))
            {
                string str = null;
                var slim = new ManualResetEventSlim(false);
                connection.DeserializationError += (sender, args) =>
                {
                    str = args.Value.ToString();
                    slim.Set();
                };

                connection.Subscribe<string>("/queues/str", (context, s) =>
                {
                    str = s;
                    slim.Set();
                });

                connection.ConnectToServerTask.Wait();

                connection.StartPublishing
                    .Add("/queues/str", "abc")
                    .PublishAsync().Wait();

                slim.Wait();
                Assert.Equal("abc", str);
            }
        }
Example #14
0
        public void Can_send_a_message_from_receiving_msg()
        {
            using (var connection = new RavenMQConnection(new Uri(configuration.ServerUrl)))
            {
                var manualResetEventSlim = new ManualResetEventSlim(false);
                OutgoingMessage msg = null;
                connection.SubscribeRaw("/queues/abc", (context, message) =>
                {
                    msg = message;
                    context.Send(new IncomingMessage
                    {
                        Data = new byte[] {4, 5, 6},
                        Queue = "/queues/def"
                    });
                    manualResetEventSlim.Set();
                });

                WaitForSubscription();

                ravenMqServer.Queues.Enqueue(new IncomingMessage
                {
                    Data = new byte[] { 1, 2, 3 },
                    Queue = "/queues/abc"
                });

                manualResetEventSlim.Wait();

                Assert.Equal(new byte[] { 1, 2, 3 }, msg.Data);

                ReadResults results;
                do
                {
                    results = ravenMqServer.Queues.Read(new ReadRequest
                    {
                        Queue = "/queues/def"
                    });
                    Thread.Sleep(1);
                } while (results.Results.Count() == 0);

                Assert.Equal(new byte[]{4,5,6}, results.Results.First().Data);
            }
        }
Example #15
0
        public void Queues_are_incase_sensitive()
        {
            using (var connection = new RavenMQConnection(new Uri(configuration.ServerUrl)))
            {
                Exception e = null;
                var slim = new ManualResetEventSlim(false);
                connection.DeserializationError += (sender, args) =>
                {
                    e = args.Value;
                    slim.Set();
                };
                User u = null;
                connection.StartPublishing
                    .Add("/queues/User", new User { Name = "Ayende" })
                    .PublishAsync();

                connection.Subscribe<User>("/queues/USER", (context, s) =>
                {
                    u = s;
                    slim.Set();
                });

                slim.Wait();
                Assert.Null(e);
                Assert.Equal(u.Name, "Ayende");
            }
        }
Example #16
0
 public RavenMQPublisher(RavenMQConnection connection)
 {
     this.connection = connection;
 }
Example #17
0
        public void Can_get_message_from_client_connection()
        {
            using(var connection = new RavenMQConnection(new Uri(configuration.ServerUrl)))
            {
                var manualResetEventSlim = new ManualResetEventSlim(false);
                OutgoingMessage msg = null;
                connection.SubscribeRaw("/queues/abc", (context, message) =>
                {
                    msg = message;
                    manualResetEventSlim.Set();
                });

                WaitForSubscription();

                ravenMqServer.Queues.Enqueue(new IncomingMessage
                {
                    Data = new byte[] {1, 2, 3},
                    Queue = "/queues/abc"
                });

                manualResetEventSlim.Wait();

                Assert.Equal(new byte[]{1,2,3}, msg.Data);
            }
        }