Exemplo n.º 1
0
        public void DisconnectTest()
        {
            //Arrange
            var objWebSocketClient  = Substitute.For <IWebSocketClient>();
            var objKeepAliveMonitor = Substitute.For <IKeepAliveMonitor>();
            var objClient           = new WebsocketClient(objWebSocketClient, objKeepAliveMonitor);
            var objHandler          = Substitute.For <EventHandler <IConnection.IConnection> >();

            objClient.Disconnected += objHandler;

            //Act
            objClient.ConnectAsync(new ClientParams()
            {
                HostName = "localhost", Port = 80, Secure = false
            });
            objClient.Disconnect();

            //Assert
            objWebSocketClient.Received(1).OnOpen        -= Arg.Any <EventHandler>();
            objWebSocketClient.Received(1).OnClose       -= Arg.Any <EventHandler <ICloseEventArgs> >();
            objWebSocketClient.Received(1).OnError       -= Arg.Any <EventHandler <IErrorEventArgs> >();
            objWebSocketClient.Received(1).OnMessage     -= Arg.Any <EventHandler <IMessageEventArgs> >();
            objKeepAliveMonitor.Received(1).TimeOut      -= Arg.Any <EventHandler>();
            objKeepAliveMonitor.Received(1).UnResponsive -= Arg.Any <EventHandler>();

            objKeepAliveMonitor.Received(1).Stop();

            objHandler
            .Received(1)
            .Invoke(Arg.Is(objClient), Arg.Is(objClient))
            ;
        }