コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        private static IJsonSerializer BuildSerializer()
        {
            IJsonSerializer serializer = new EthereumJsonSerializer();

            serializer.RegisterConverters(EthModuleFactory.Converters);
            serializer.RegisterConverters(TraceModuleFactory.Converters);
            serializer.RegisterConverter(new BlockParameterConverter());
            return(serializer);
        }
コード例 #4
0
        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("\"", "\\\""));
        }
コード例 #5
0
        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);
        }
コード例 #6
0
ファイル: RpcTest.cs プロジェクト: sounak98/nethermind
        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);
        }
コード例 #7
0
        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);
            }
        }