public void ShouldTryToReconnectTwiceAndFailWhenRequestedTwoAttemptsWithIncorrectAddressAndReconnectEnabled() { var log = LogManager.GetLogger(Global.CallerName()); log.Info("Start"); ManualResetEvent = new ManualResetEvent(false); Flag = false; var reconnects = 0; var options = CreateOptions(); options.Reconnection = true; options.ReconnectionAttempts = 2; options.ReconnectionDelay = 10; var uri = "http://localhost:3940"; var manager = new Manager(new Uri(uri), options); socket = manager.Socket("/asd"); manager.On(Manager.EVENT_RECONNECT_ATTEMPT, () => { log.Info("EVENT_RECONNECT_ATTEMPT"); reconnects++; }); manager.On(Manager.EVENT_RECONNECT_FAILED, () => { log.Info("EVENT_RECONNECT_FAILED"); Flag = true; socket.Disconnect(); manager.Close(); ManualResetEvent.Set(); }); ManualResetEvent.WaitOne(); Assert.Equal(2, reconnects); }
public void ShouldNotTryToReconnectWithIncorrectPortWhenReconnectionDisabled() { var log = LogManager.GetLogger(Global.CallerName()); log.Info("Start"); ManualResetEvent = new ManualResetEvent(false); Flag = false; var options = CreateOptions(); options.Reconnection = false; var uri = "http://localhost:3940"; var manager = new Manager(new Uri(uri), options); socket = manager.Socket("/invalid"); manager.On(Manager.EVENT_RECONNECT_ATTEMPT, () => { Flag = true; }); manager.On(Manager.EVENT_CONNECT_ERROR, async () => { // set a timeout to let reconnection possibly fire log.Info("EVENT_CONNECT_ERROR"); await Task.Delay(1000); ManualResetEvent.Set(); }); ManualResetEvent.WaitOne(); log.Info("after WaitOne"); socket.Disconnect(); manager.Close(); Assert.False(Flag); }
public void ShouldNotTryToReconnectAndShouldFormAConnectionWhenConnectingToCorrectPortWithDefaultTimeout() { var log = LogManager.GetLogger(Global.CallerName()); log.Info("Start"); ManualResetEvent = new ManualResetEvent(false); Flag = false; var options = CreateOptions(); options.Reconnection = true; options.ReconnectionDelay = 10; var uri = CreateUri(); var manager = new Manager(new Uri(uri), options); socket = manager.Socket("/valid"); manager.On(Manager.EVENT_RECONNECT_ATTEMPT, () => { Flag = true; }); socket.On(Socket.EVENT_CONNECT, async() => { // set a timeout to let reconnection possibly fire log.Info("EVENT_CONNECT"); await Task.Delay(1000); ManualResetEvent.Set(); }); ManualResetEvent.WaitOne(); log.Info("after WaitOne"); socket.Close(); manager.Close(); Assert.False(Flag); }
public void ShouldFireReconnectingOnSocketWithAttemptsNumberWhenReconnectingTwice() { var log = LogManager.GetLogger(Global.CallerName()); log.Info("Start"); ManualResetEvent = new ManualResetEvent(false); Flag = false; var reconnects = 0; var events = new Queue<int>(); var correct = new int[] { 1,2,2 }; var options = CreateOptions(); options.Reconnection = true; options.Timeout = 0; options.ReconnectionAttempts = 2; options.ReconnectionDelay = 10; var uri = CreateUri(); var manager = new Manager(new Uri(uri), options); socket = manager.Socket("/timeout_socket"); socket.On(Socket.EVENT_RECONNECTING, (attempts) => { reconnects++; events.Enqueue(int.Parse((attempts).ToString())); }); socket.On(Socket.EVENT_RECONNECT_FAILED, () => { log.Info("EVENT_RECONNECT_FAILED"); Flag = true; events.Enqueue(reconnects); socket.Close(); manager.Close(); ManualResetEvent.Set(); }); ManualResetEvent.WaitOne(); var j = 0; foreach (var number in events) { Assert.Equal(correct[j++], number); } }
public void ShouldFireErrorOnSocket() { var log = LogManager.GetLogger(Global.CallerName()); log.Info("Start"); ManualResetEvent = new ManualResetEvent(false); Flag = false; var events = new Queue<object>(); var options = CreateOptions(); options.Reconnection = true; var uri = CreateUri(); var manager = new Manager(new Uri(uri), options); socket = manager.Socket("/timeout_socket"); socket.On(Socket.EVENT_ERROR, (e) => { var exception = (EngineIOException) e; log.Info("EVENT_ERROR"); events.Enqueue(exception.code); socket.Close(); manager.Close(); ManualResetEvent.Set(); }); socket.On(Socket.EVENT_CONNECT, () => { log.Info("EVENT_CONNECT"); manager.EngineSocket.OnPacket(new Packet(Packet.ERROR, "test")); }); ManualResetEvent.WaitOne(); var obj = (string)events.Dequeue(); Assert.Equal("test", obj); }
public void ShouldTryToReconnectTwiceAndFailWhenRequestedTwoAttemptsWithImmediateTimeoutAndReconnectEnabled() { var log = LogManager.GetLogger(Global.CallerName()); log.Info("Start"); ManualResetEvent = new ManualResetEvent(false); Flag = false; var reconnects = 0; var options = CreateOptions(); options.Reconnection = true; options.Timeout = 0; options.ReconnectionAttempts = 2; options.ReconnectionDelay = 10; var uri = CreateUri(); var manager = new Manager(new Uri(uri), options); manager.On(Manager.EVENT_RECONNECT_ATTEMPT, () => { log.Info("EVENT_RECONNECT_ATTEMPT"); reconnects++; }); manager.On(Manager.EVENT_RECONNECT_FAILED, () => { log.Info("EVENT_RECONNECT_FAILED"); Flag = true; manager.Close(); ManualResetEvent.Set(); }); ManualResetEvent.WaitOne(); Assert.True(Flag); Assert.Equal(2,reconnects); }
public void ShouldOpenANewNamespaceAfterConnectionGetsClosed() { var log = LogManager.GetLogger(Global.CallerName()); log.Info("Start"); ManualResetEvent = new ManualResetEvent(false); Flag = false; var options = CreateOptions(); var uri = CreateUri(); var manager = new Manager(new Uri(uri), options); socket = manager.Socket("/"); socket.On(Socket.EVENT_CONNECT, () => { socket.Disconnect(); }); socket.On(Socket.EVENT_DISCONNECT, () => { var foo = manager.Socket("/foo"); foo.On(Socket.EVENT_CONNECT, () => { Flag = true; foo.Disconnect(); socket.Disconnect(); manager.Close(); ManualResetEvent.Set(); }); foo.Open(); }); ManualResetEvent.WaitOne(); Assert.True(Flag); }