public void LargeMsg() { var stringWriter = new StringWriter(); var streamWriter = new FudgeJSONStreamWriter(context, stringWriter); FudgeMsg inMsg = StandardFudgeMessages.CreateLargeMessage(context); streamWriter.WriteMsg(inMsg); var msg = new FudgeJSONStreamReader(context, stringWriter.GetStringBuilder().ToString()).ReadMsg(); FudgeUtils.AssertAllFieldsMatch(inMsg, msg); }
public void EscapingAndEncodingStrings() { var msg = context.NewMessage(new Field("s", "\\\b\f\t\n\r\"\u0001")); var stringWriter = new StringWriter(); var writer = new FudgeJSONStreamWriter(context, stringWriter); writer.WriteMsg(msg); string s = stringWriter.ToString(); AssertEqualsNoWhiteSpace(@"{""s"" : ""\\\b\f\t\n\r\""\u0001""}", s); }
public void IndicatorWrittenAsNull() { var msg = context.NewMessage(new Field("test", IndicatorType.Instance)); var stringWriter = new StringWriter(); var writer = new FudgeJSONStreamWriter(context, stringWriter); writer.WriteMsg(msg); string s = stringWriter.ToString(); AssertEqualsNoWhiteSpace("{\"test\" : null }", s); }
public void SimpleExample() { var msg = context.NewMessage(new Field("outer", new Field("a", 7), new Field("b", "fred"))); var stringWriter = new StringWriter(); var writer = new FudgeJSONStreamWriter(context, stringWriter); writer.WriteMsg(msg); string s = stringWriter.ToString(); AssertEqualsNoWhiteSpace("{\"outer\" : {\"a\" : 7, \"b\" : \"fred\"} }", s); }
public void SubMessageAsValueHandled() { var subMsg = context.NewMessage(new Field("a", 1)); var stringWriter = new StringWriter(); var writer = new FudgeJSONStreamWriter(context, stringWriter); writer.StartMessage(); writer.WriteField("test", null, null, subMsg); writer.EndMessage(); string s = stringWriter.ToString(); AssertEqualsNoWhiteSpace("{\"test\" : {\"a\" : 1} }", s); }
public void FieldsWithSameNameBecomeArrays() { var msg = context.NewMessage(new Field("outer", new Field("a", false), new Field("b", 17.3), new Field("a", "test"))); var stringWriter = new StringWriter(); var writer = new FudgeJSONStreamWriter(context, stringWriter); writer.WriteMsg(msg); string s = stringWriter.ToString(); AssertEqualsNoWhiteSpace("{\"outer\" : {\"a\" : [false, \"test\"], \"b\" : 17.3} }", s); }
public void DepthChecks() { var writer = new FudgeJSONStreamWriter(context, new StringWriter()); Assert.Throws <InvalidOperationException>(() => writer.StartSubMessage("test", null)); Assert.Throws <InvalidOperationException>(() => writer.WriteField("test", null, null, "test")); Assert.Throws <InvalidOperationException>(() => writer.EndSubMessage()); Assert.Throws <InvalidOperationException>(() => writer.EndMessage()); writer.StartMessage(); Assert.Throws <InvalidOperationException>(() => writer.StartMessage()); Assert.Throws <InvalidOperationException>(() => writer.EndSubMessage()); writer.StartSubMessage("test", null); Assert.Throws <InvalidOperationException>(() => writer.EndMessage()); }
public void RoundTrip() { var msg = context.NewMessage(new Field("outer", new Field("a", 7), new Field("b", "fred"))); var stringWriter = new StringWriter(); var writer = new FudgeJSONStreamWriter(context, stringWriter); writer.WriteMsg(msg); string s = stringWriter.ToString(); var reader = new FudgeJSONStreamReader(context, s); var msg2 = reader.ReadMsg(); FudgeUtils.AssertAllFieldsMatch(msg, msg2); }
public void ArraysOfObjects() { var msg = context.NewMessage(new Field("a", new Field("x", 1), new Field("y", 2)), new Field("a", new Field("z", 3))); var stringWriter = new StringWriter(); var writer = new FudgeJSONStreamWriter(context, stringWriter); writer.WriteMsg(msg); string s = stringWriter.ToString(); AssertEqualsNoWhiteSpace("{\"a\" : [ {\"x\" : 1, \"y\" : 2}, {\"z\" : 3} ] }", s); }
public void ArraysOfPrimitiveTypes() { var msg = context.NewMessage(new Field("bytes", new byte[] { 123, 76, 2, 3 }), new Field("shorts", new short[] { 10, 11, 12 }), new Field("ints", new int[] { 13, 14, 15 }), new Field("longs", new long[] { 16, 17, 18 }), new Field("floats", new float[] { 1.2f, 3.4f, 5.6f }), new Field("doubles", new double[] { -1.2, -3.4, -5.6 })); var stringWriter = new StringWriter(); var writer = new FudgeJSONStreamWriter(context, stringWriter); writer.WriteMsg(msg); string s = stringWriter.ToString(); var testString = "{\"bytes\" : [123, 76, 2, 3]," + "\"shorts\" : [10, 11, 12]," + "\"ints\" : [13, 14, 15]," + "\"longs\" : [16, 17, 18]," + "\"floats\" : [1.2, 3.4, 5.6]," + "\"doubles\" : [-1.2, -3.4, -5.6]}"; AssertEqualsNoWhiteSpace(testString, s); }