private void RunWriteEncodeableArrayTest(string fieldName, List <FooBarEncodeable> encodeables, string expected, bool topLevelIsArray, bool noExpectedValidation = false) { try { if (!noExpectedValidation) { TestContext.Out.WriteLine("Expected:"); _ = PrettifyAndValidateJson(expected); } var encoder = new JsonEncoder(Context, true, null, topLevelIsArray); encoder.WriteEncodeableArray( fieldName, encodeables.Cast <IEncodeable>().ToList(), 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)); } finally { encodeables.ForEach(e => e.Dispose()); } }
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)); } } }