public void Can_reconnect() { var reconnected = false; var client = new DdpClient(_socket, _helper); client.DdpReconnect += () => reconnected = true; var firstMessage = new PortableMessageReceivedEventArgs(JsonConvert.SerializeObject(new { session = AutoFixture.Create<string>(), msg = "connected" })); var secondMessage = new PortableMessageReceivedEventArgs(JsonConvert.SerializeObject(new { session = AutoFixture.Create<string>(), msg = "connected" })); // Act _socket.MessageReceived += Raise.Event<EventHandler<PortableMessageReceivedEventArgs>>(new object(), firstMessage); _socket.Closed += Raise.Event<EventHandler>(); _socket.MessageReceived += Raise.Event<EventHandler<PortableMessageReceivedEventArgs>>(new object(), secondMessage); // Assert _socket.Received().Open(); reconnected.Should().BeTrue(); }