public static string TestSerializedRequest <T>(IReadOnlyCollection <JsonConverter> converters, T module, string method, params string[] parameters) where T : class, IModule { IJsonRpcService service = BuildRpcService(module); JsonRpcRequest request = GetJsonRequest(method, parameters); JsonRpcResponse response = service.SendRequestAsync(request).Result; EthereumJsonSerializer serializer = new EthereumJsonSerializer(); foreach (JsonConverter converter in converters) { serializer.RegisterConverter(converter); } Stream stream = new MemoryStream(); serializer.Serialize(stream, response); // for coverage (and to prove that it does not throw Stream indentedStream = new MemoryStream(); serializer.Serialize(indentedStream, response, true); stream.Seek(0, SeekOrigin.Begin); string serialized = new StreamReader(stream).ReadToEnd(); TestContext.Out?.WriteLine("Serialized:"); TestContext.Out?.WriteLine(serialized); return(serialized); }
private static EthereumJsonSerializer BuildSerializer() { EthereumJsonSerializer serializer = new EthereumJsonSerializer(); foreach (JsonConverter converter in EthModuleFactory.Converters) { serializer.RegisterConverter(converter); } foreach (JsonConverter converter in TraceModuleFactory.Converters) { serializer.RegisterConverter(converter); } serializer.RegisterConverter(new BlockParameterConverter()); return(serializer); }
private static IJsonSerializer BuildSerializer() { IJsonSerializer serializer = new EthereumJsonSerializer(); serializer.RegisterConverters(EthModuleFactory.Converters); serializer.RegisterConverters(TraceModuleFactory.Converters); serializer.RegisterConverter(new BlockParameterConverter()); return(serializer); }
private void TestToJson <T>(T item, JsonConverter <T> converter, string expectedResult) { EthereumJsonSerializer serializer = BuildSerializer(); if (converter != null) { serializer.RegisterConverter(converter); } string result = serializer.Serialize(item); Assert.AreEqual(expectedResult, result, result.Replace("\"", "\\\"")); }
protected void TestRoundtrip <T>(string json, JsonConverter converter = null) { EthereumJsonSerializer serializer = BuildSerializer(); if (converter != null) { serializer.RegisterConverter(converter); } T deserialized = serializer.Deserialize <T>(json); string result = serializer.Serialize(deserialized); Assert.AreEqual(json, result); }
public static string TestSerializedRequest <T>(IReadOnlyCollection <JsonConverter> converters, T module, string method, params string[] parameters) where T : class, IModule { IJsonRpcService service = BuildRpcService(module); JsonRpcRequest request = GetJsonRequest(method, parameters); JsonRpcResponse response = service.SendRequestAsync(request).Result; var serializer = new EthereumJsonSerializer(); foreach (var converter in converters) { serializer.RegisterConverter(converter); } var serialized = serializer.Serialize(response); TestContext.Out?.WriteLine("Serialized:"); TestContext.Out?.WriteLine(serialized); return(serialized); }
protected void TestRoundtrip <T>(T item, Func <T, T, bool> equalityComparer, JsonConverter <T> converter = null, string description = null) { EthereumJsonSerializer serializer = BuildSerializer(); if (converter != null) { serializer.RegisterConverter(converter); } string result = serializer.Serialize(item); T deserialized = serializer.Deserialize <T>(result); if (equalityComparer == null) { Assert.AreEqual(item, deserialized, description); } else { Assert.True(equalityComparer(item, deserialized), description); } }