/** * @param msg */ protected void CheckResultsMatch(FudgeMsg msg, FudgeContext fudgeContext) { FudgeMsgEnvelope result = CycleMessage(fudgeContext, msg); Assert.NotNull(result); Assert.NotNull(result.Message); FudgeMsg resultMsg = result.Message; FudgeUtils.AssertAllFieldsMatch(msg, resultMsg); }
protected static FudgeMsg CycleMessage(FudgeMsg msg) //throws IOException { byte[] content = fudgeContext.ToByteArray(msg); // Double-check the size calc was right Assert.Equal(content.Length, new FudgeMsgEnvelope(msg).ComputeSize(null)); MemoryStream stream2 = new MemoryStream(content); FudgeMsgEnvelope outputMsgEnvelope = fudgeContext.Deserialize(stream2); Assert.NotNull(outputMsgEnvelope); Assert.NotNull(outputMsgEnvelope.Message); return(outputMsgEnvelope.Message); }
private FudgeMsg CycleMessage(FudgeMsg msg, FudgeContext context, short?taxonomy) { MemoryStream outputStream = new MemoryStream(); context.Serialize(msg, taxonomy, outputStream); byte[] content = outputStream.ToArray(); MemoryStream inputStream = new MemoryStream(content); FudgeMsgEnvelope outputMsgEnvelope = context.Deserialize(inputStream); Assert.NotNull(outputMsgEnvelope); Assert.NotNull(outputMsgEnvelope.Message); return(outputMsgEnvelope.Message); }
public object DecodeObject(FudgeMsgEnvelope fudgeMsgEnvelope) { if (_checkSeqNumber) { long?seqNumber = fudgeMsgEnvelope.Message.GetLong("#"); if (!seqNumber.HasValue) { throw new ArgumentException("Couldn't find sequence number"); } long expectedSeqNumber = Interlocked.Increment(ref _lastSequenceNumber); if (expectedSeqNumber != seqNumber.Value) { throw new ArgumentException(string.Format("Unexpected SEQ number {0} expected {1}", seqNumber, expectedSeqNumber)); } } return(_fudgeContext.DeFudgeSerialize(fudgeMsgEnvelope.Message)); }