public void DoesNotForwardDisconnectFromSourceToSink() { var source = _session.WithMockSource(); var sink = _session.WithMockSink(); var disconnectEvent = new DisconnectEventArgs("originIdentifier"); // Raise a disconnectEvent from source source.Raise(responseConsumer => responseConsumer.RaiseUserEvent += null, disconnectEvent); // Verify that the handler on sink was never called. sink.Verify(lineConsumer => lineConsumer.HandleUserEvent(_session, disconnectEvent), Times.Never()); }
public void DetachesFromSourceAfterDisconnect() { var source = _session.WithMockSource(); var sink = _session.WithMockSink(); var lineEvent = new LineReadyEventArgs("Line", "originIdentifier", null); var disconnectEvent = new DisconnectEventArgs("originIdentifier"); // Raise a lineEvent from source source.Raise(responseConsumer => responseConsumer.RaiseUserEvent += null, lineEvent); // Verify that the handler on sink was called exactly once. sink.Verify(lineConsumer => lineConsumer.HandleUserEvent(_session, lineEvent), Times.Once()); // Raise a disconnectEvent from source source.Raise(responseConsumer => responseConsumer.RaiseUserEvent += null, disconnectEvent); // Raise a lineEvent from source source.Raise(responseConsumer => responseConsumer.RaiseUserEvent += null, lineEvent); // Verify that the handler on sink was called exactly once, and not a second time. sink.Verify(lineConsumer => lineConsumer.HandleUserEvent(_session, lineEvent), Times.Once()); }