public void TC019_ErrorHandlerNotPedantic() { bool errorThrown = false; AutoResetEvent resetEvent = new AutoResetEvent(false); using (IReactor natsClient = ReactorFactory.GetReactor(typeof(Reactor))) { natsClient.OnError += new EventHandler <ReactorErrorEventArgs>(delegate(object sender, ReactorErrorEventArgs args) { errorThrown = true; resetEvent.Set(); }); natsClient.Start(natsEndpoint); int sid = natsClient.Subscribe("foo"); natsClient.Unsubscribe(sid); natsClient.Unsubscribe(sid); resetEvent.WaitOne(5000); natsClient.Close(); } Assert.IsFalse(errorThrown); }
public void TC012_RecieveMessageOnUnsubscription() { bool errorThrown = false; int receivedCount = 0; object receivedCountLock = new object(); int sid = 0; IReactor natsClient = ReactorFactory.GetReactor(typeof(Reactor)); natsClient.OnError += new EventHandler <ReactorErrorEventArgs>(delegate(object sender, ReactorErrorEventArgs args) { errorThrown = true; }); natsClient.Start(natsEndpoint); ManualResetEvent mre = new ManualResetEvent(false); sid = natsClient.Subscribe("foo", delegate(string msg, string reply, string subject) { lock (receivedCountLock) { receivedCount++; if (receivedCount == 2) { natsClient.Unsubscribe(sid); mre.Set(); } } }); natsClient.Publish("foo", () => { natsClient.Publish("foo", () => { mre.WaitOne(); natsClient.Publish("foo", () => { }, "xxx"); }, "xxx"); }, "xxx"); Thread.Sleep(5000); natsClient.Close(); Assert.IsFalse(errorThrown); Assert.AreEqual(2, receivedCount); }
public void TC018_UnsubscribeWithinBlocks() { bool errorThrown = false; int receivedMessageCount = 0; int sid = 0; AutoResetEvent resetEvent = new AutoResetEvent(false); object receivedMessageCountLock = new object(); using (IReactor natsClient = ReactorFactory.GetReactor(typeof(Reactor))) { natsClient.OnError += new EventHandler <ReactorErrorEventArgs>(delegate(object sender, ReactorErrorEventArgs args) { errorThrown = true; resetEvent.Set(); }); natsClient.Start(natsEndpoint); sid = natsClient.Subscribe("foo", delegate(string msg, string reply, string subject) { lock (receivedMessageCountLock) { receivedMessageCount++; natsClient.Unsubscribe(sid); } }); natsClient.Publish("foo", delegate() { natsClient.Publish("foo", delegate() { resetEvent.Set(); }, "xxx"); }, "xxx"); resetEvent.WaitOne(5000); natsClient.Close(); } Assert.IsFalse(errorThrown); Assert.AreEqual(1, receivedMessageCount); }
public void TC004_CheckServerError() { bool errorThrown = false; AutoResetEvent resetEvent = new AutoResetEvent(false); using (IReactor natsClient = ReactorFactory.GetReactor(typeof(Reactor))) { natsClient.Pedantic = true; natsClient.OnError += new EventHandler <ReactorErrorEventArgs>(delegate(object sender, ReactorErrorEventArgs args) { errorThrown = true; resetEvent.Set(); }); natsClient.Start(natsEndpoint); natsClient.Unsubscribe(10000); natsClient.Publish("done"); resetEvent.WaitOne(10000); natsClient.Close(); } Assert.IsTrue(errorThrown); }