public void WhenDataConnectionHandshakeHasErrorExceptionThrown() { // arrange var messageProtocol = new MessageProtocol(); var dataConnectionHandshake = new DataConnectionHandshake(messageProtocol); var binaryReader = new Mock <BinaryReader>(new MemoryStream()); var binaryWriter = new Mock <BinaryWriter>(new MemoryStream()); binaryReader.Setup(x => x.ReadByte()) .Returns(MessageTypes.Error); const string errorString = "Error"; binaryReader.Setup(x => x.ReadBytes(sizeof(short))) .Returns(new byte[] { 0x0, Convert.ToByte(errorString.Length) }); binaryReader.Setup(x => x.ReadBytes(errorString.Length)) .Returns(System.Text.Encoding.UTF8.GetBytes(errorString)); var connection = new Connection(binaryReader.Object, binaryWriter.Object); try { // act dataConnectionHandshake.PerformHandshake(1, connection); } catch (HandshakeException e) { Assert.AreEqual("Error", e.Message); } // assert binaryWriter.Verify(x => x.Write(MessageTypes.DataHello), Times.Once); }
public void WhenDataConnectionHandshakeHasUnknownErrorExceptionThrown() { // arrange var messageProtocol = new MessageProtocol(); var dataConnectionHandshake = new DataConnectionHandshake(messageProtocol); var binaryReader = new Mock <BinaryReader>(new MemoryStream()); var binaryWriter = new Mock <BinaryWriter>(new MemoryStream()); binaryReader.Setup(x => x.ReadByte()) .Returns(0xFE); var connection = new Connection(binaryReader.Object, binaryWriter.Object); try { // act dataConnectionHandshake.PerformHandshake(1, connection); } catch (HandshakeException e) { Assert.AreEqual("Handshake operation failed with unexpected reply: 254", e.Message); } // assert binaryWriter.Verify(x => x.Write(MessageTypes.DataHello), Times.Once); }
public void WhenDataConnectionHandshakeSuccessConfigurationReturned() { // arrange var messageProtocol = new MessageProtocol(); var dataConnectionHandshake = new DataConnectionHandshake(messageProtocol); var binaryReader = new Mock <BinaryReader>(new MemoryStream()); var binaryWriter = new Mock <BinaryWriter>(new MemoryStream()); // set up configuration message read binaryReader.Setup(x => x.ReadByte()) .Returns(MessageTypes.DataHelloReply); var connection = new Connection(binaryReader.Object, binaryWriter.Object); // act var success = dataConnectionHandshake.PerformHandshake(1, connection); // assert binaryWriter.Verify(x => x.Write(MessageTypes.DataHello), Times.Once); Assert.IsTrue(success); }