public void LinkDecoderVisibility(BindingFlags bindings, string json, string expected) { var encoded = Encoding.UTF8.GetBytes(json); var decoded = LinkerTester.Decode(Linker.CreateDecoder(new JSONSchema <Visibility>(), bindings), encoded); Assert.AreEqual(expected, decoded.ToString()); }
public void LinkDecoderProperty <T>(string json, T expected) { var encoded = Encoding.UTF8.GetBytes(json); var decoded = LinkerTester.Decode(Linker.CreateDecoder(new JSONSchema <PropertyContainer <T> >()), encoded); Assert.AreEqual(expected, decoded.Property); }
public void LinkDecoderArrayFromList(string json, double[] expected) { var encoded = Encoding.UTF8.GetBytes(json); var decoded = LinkerTester.Decode(Linker.CreateDecoder(new JSONSchema <List <double> >()), encoded); CollectionAssert.AreEqual(expected, decoded); }
public void RoundTripValueNative <T>(T instance) { var schema = this.CreateSchema <T>(); var decoder = Linker.CreateDecoder(schema); var encoder = Linker.CreateEncoder(schema); SchemaTester.AssertRoundTrip(decoder, encoder, instance); }
public void RoundTripValueNullable() { var schema = this.CreateSchema <double?>(); var decoder = Linker.CreateDecoder(schema); var encoder = Linker.CreateEncoder(schema); SchemaTester.AssertRoundTrip(decoder, encoder, null); SchemaTester.AssertRoundTrip(decoder, encoder, 42); }
public void LinkDecoderRecursive() { var encoded = Encoding.UTF8.GetBytes("{\"r\": {\"r\": {\"v\": 42}, \"v\": 17}, \"v\": 3}"); var decoded = LinkerTester.Decode(Linker.CreateDecoder(new JSONSchema <Recursive>()), encoded); Assert.AreEqual(42, decoded.r.r.v); Assert.AreEqual(17, decoded.r.v); Assert.AreEqual(3, decoded.v); }
public void RoundTripMixedTypes() { var schema = this.CreateSchema <MixedContainer>(); var decoder = Linker.CreateDecoder(schema); var encoder = Linker.CreateEncoder(schema); SchemaTester.AssertRoundTrip(decoder, encoder, new MixedContainer { floats = new[] { 1.1f, 2.2f, 3.3f }, integer = 17, option = SomeEnum.B, pairs = new Dictionary <string, string> { { "a", "aaa" }, { "b", "bbb" } }, text = "Hello, World!" }); }
public void DecodeNestedArray() { const string source = "{" + "\"children\":[{" + "\"children\":[],\"value\":\"a\"" + "},{" + "\"children\":[{\"children\":[],\"value\":\"b\"},{\"children\":[],\"value\":\"c\"}]," + "\"value\":\"d\"" + "},{" + "\"children\":[],\"value\":\"e\"" + "}]," + "\"value\":\"f\"" + "}"; var decoder = Linker.CreateDecoder(new JSONSchema <MyNestedArray>()); CompareNewtonsoft.BenchDecode(decoder, source, 10000); }
public void DecodeFlatStructure() { const string source = "{" + "\"lorem\":0," + "\"ipsum\":65464658634633," + "\"sit\":1.1," + "\"amet\":\"Hello, World!\"," + "\"consectetur\":255," + "\"adipiscing\":64," + "\"elit\":\"z\"," + "\"sed\":53.25," + "\"pulvinar\":\"I sense a soul in search of answers\"," + "\"fermentum\":6553," + "\"hendrerit\":-32768" + "}"; var decoder = Linker.CreateDecoder(new JSONSchema <MyFlatStructure>()); CompareNewtonsoft.BenchDecode(decoder, source, 10000); }
public void RoundTripNestedValue() { var schema = this.CreateSchema <NestedValue>(); var decoder = Linker.CreateDecoder(schema); var encoder = Linker.CreateEncoder(schema); SchemaTester.AssertRoundTrip(decoder, encoder, new NestedValue { child = new NestedValue { child = new NestedValue { child = null, value = 64 }, value = 42 }, value = 17 }); }
public void RoundTripNestedArray() { var schema = this.CreateSchema <NestedArray>(); var decoder = Linker.CreateDecoder(schema); var encoder = Linker.CreateEncoder(schema); SchemaTester.AssertRoundTrip(decoder, encoder, new NestedArray { children = new[] { new NestedArray { children = Array.Empty <NestedArray>(), value = "a" }, new NestedArray { children = new [] { new NestedArray { children = Array.Empty <NestedArray>(), value = "b" }, new NestedArray { children = Array.Empty <NestedArray>(), value = "c" } }, value = "d" }, new NestedArray { children = Array.Empty <NestedArray>(), value = "e" } }, value = "f" }); }