public void ShouldReturnHandshakeMessage() { var command = JsonStrings.HandshakeMessageIn().WithoutEnd().ToSingleString(); var reader = Substitute.For<IReadNext>(); reader.Next().Returns(command); var format = Substitute.For<IProtocolReaderFormat>(); var setupProcess = Substitute.For<ISetupProcess>(); format.Handshake(command).Returns(new StormHandshake(setupProcess)); var subjectUnderTest = new StormReader(reader, format); Assert.That( subjectUnderTest.ReadInitialHandshakeMessage(), Is.Not.Null); format.Received().Handshake(command); format.DidNotReceive().Handshake(null); }