// RESPONSE (INNER CALL) private void ResponseInternal(IEnumerable <byte> data) { if (!_requestFromRemoteReceived) { _recorder.RecordError(this.GetType().Name, "Trying to send response without inner call"); return; } _requestFromRemoteReceived = false; var nextPrefix = _responseCalculator.GenerateIndexToSend(RESPONSE); var dataWithPrefix = data.WrapDataWithFirstByte(nextPrefix); _networkTunnel?.Send(dataWithPrefix.ToArray()); }
public void ResponseInnerCall_WhenCalledAfterRequest_ShouldReceiveData(int dataToTransfer) { var actualResponded = default(IEnumerable <byte>); var data1 = BitConverter.GetBytes(0); var data2 = BitConverter.GetBytes(dataToTransfer); var requestDataWithPrefix = GenerateDataWithPrefix(Session.REQUEST, data1); var responseDataWithPrefix = GenerateDataWithPrefix(Session.RESPONSE, data2, true); _sut = new Session(_networkTunnel, _recorder); Mock.Raise(() => _networkTunnel.Received += null, requestDataWithPrefix.ToArray()); Mock.Arrange(() => _networkTunnel.Send(Arg.IsAny <byte[]>())).DoInstead( (byte[] args) => actualResponded = args); _sut.Response(BitConverter.GetBytes(dataToTransfer)); Assert.Equal(responseDataWithPrefix, actualResponded); }
public void Send_WithParameters_ShouldSentWithSameParameters() { var paramToSent = new byte[] { 0b01010101 }; _sut = new NetworkTunnel(_socket, _recorder); _sut.Send(paramToSent); Mock.Assert(() => _socket.Send(paramToSent), Occurs.Once()); }
public void Send_Throws_ShouldBeCaught() { var paramToSent = new byte[] { 0b01010101 }; Mock.Arrange(() => _socket.Send(null)).IgnoreArguments().Throws(new SocketException()); _sut = new NetworkTunnel(_socket, _recorder); _sut.Send(paramToSent); Mock.Assert(() => _recorder.RecordError(Arg.AnyString, Arg.AnyString), Occurs.Once()); }
public void Send_ThrowsInterruptConnection_ShouldBeCaught() { var paramToSent = new byte[] { 0b01010101 }; Mock.Arrange(() => _socket.Send(null)).IgnoreArguments().Throws(new SocketException(10054)); _sut = new NetworkTunnel(_socket, _recorder); _sut.Send(paramToSent); Mock.Assert(() => _socket.Dispose(), Occurs.Exactly(1)); Mock.Assert(() => _recorder.RecordInfo(Arg.AnyString, Arg.AnyString), Occurs.Exactly(3)); Mock.Assert(() => _recorder.RecordError(Arg.AnyString, Arg.AnyString), Occurs.Never()); }