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); } }
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"); } }
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); } }
static void Main() { var con = new RavenMQConnection(new Uri("http://AYENDEPC:8181/")); Console.ReadLine(); }
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); } }
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); } }
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); } }
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); } }
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); } }
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); } }
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); } }
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); } }
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"); } }
public RavenMQPublisher(RavenMQConnection connection) { this.connection = connection; }
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); } }