public void TestFieldValueEscapedArray(string fieldname, string foo, string expected) { TestContext.Out.WriteLine("Expected:"); _ = PrettifyAndValidateJson(expected); using (var encodeable = new FooBarEncodeable(fieldname, foo)) { var list = new List <IEncodeable>() { encodeable, encodeable }; using (var encoder = new JsonEncoder(Context, true)) { encoder.WriteEncodeableArray(encodeable.FieldName, list, typeof(FooBarEncodeable)); var encoded = encoder.CloseAndReturnText(); TestContext.Out.WriteLine("Encoded:"); TestContext.Out.WriteLine(encoded); TestContext.Out.WriteLine("Formatted Encoded:"); _ = PrettifyAndValidateJson(encoded); Assert.That(encoded, Is.EqualTo(expected)); } } }
public void Test_WriteSingleEncodeableWithName() { var expected = "{\"bar_1\":{\"Foo\":\"bar_1\"}}"; TestContext.Out.WriteLine("Expected:"); _ = PrettifyAndValidateJson(expected); using (var encodeable = new FooBarEncodeable()) { using (var encoder = new JsonEncoder(Context, true, false)) { encoder.WriteEncodeable(encodeable.Foo, encodeable, typeof(FooBarEncodeable)); var encoded = encoder.CloseAndReturnText(); TestContext.Out.WriteLine("Encoded:"); TestContext.Out.WriteLine(encoded); TestContext.Out.WriteLine("Formatted Encoded:"); _ = PrettifyAndValidateJson(encoded); Assert.That(encoded, Is.EqualTo(expected)); } } }
public void Test_WriteSingleEncodeableWithNameAndArrayAsTopLevel_Expect_Exception() { using (var encodeable = new FooBarEncodeable()) { var encoder = new JsonEncoder(Context, true, null, true); Assert.Throws <ServiceResultException>(() => encoder.WriteEncodeable(encodeable.Foo, encodeable, typeof(FooBarEncodeable))); } }
public void Test_WriteMultipleEncodeableWithoutName_Expect_Exception() { // invalid JSON // "{\"Foo\":\"bar_1\"},{\"Foo\":\"bar_2\"},{\"Foo\":\"bar_3\"}" // "{{\"Foo\":\"bar_1\"},{\"Foo\":\"bar_2\"},{\"Foo\":\"bar_3\"}}" using (var encodeable = new FooBarEncodeable()) { var encoder = new JsonEncoder(Context, true, null, false); Assert.Throws <ServiceResultException>(() => { encoder.WriteEncodeable(null, encodeable, typeof(FooBarEncodeable)); encoder.WriteEncodeable(null, encodeable, typeof(FooBarEncodeable)); encoder.WriteEncodeable(null, encodeable, typeof(FooBarEncodeable)); } ); } }
public void Test_WriteSingleEncodeableWithoutName(bool topLevelIsArray, string expected) { TestContext.Out.WriteLine("Expected:"); _ = PrettifyAndValidateJson(expected); using (var encodeable = new FooBarEncodeable()) { var encoder = new JsonEncoder(Context, true, null, topLevelIsArray); encoder.WriteEncodeable(null, encodeable, typeof(FooBarEncodeable)); var encoded = encoder.CloseAndReturnText(); TestContext.Out.WriteLine("Encoded:"); TestContext.Out.WriteLine(encoded); TestContext.Out.WriteLine("Formatted Encoded:"); _ = PrettifyAndValidateJson(encoded); Assert.That(encoded, Is.EqualTo(expected)); } }
public void TestFieldValueEscapedVariant(string fieldname, string foo, string expected) { TestContext.Out.WriteLine("Expected:"); _ = PrettifyAndValidateJson(expected); using (var encodeable = new FooBarEncodeable(fieldname, foo)) { var variant = new Variant(new ExtensionObject(encodeable)); // non reversible to save some space var encoder = new JsonEncoder(Context, false); encoder.WriteVariant(encodeable.FieldName, variant); var encoded = encoder.CloseAndReturnText(); TestContext.Out.WriteLine("Encoded:"); TestContext.Out.WriteLine(encoded); TestContext.Out.WriteLine("Formatted Encoded:"); _ = PrettifyAndValidateJson(encoded); Assert.That(encoded, Is.EqualTo(expected)); } }