PingRequest Encode(IKMessageContext <TNodeId> context, KPingRequest <TNodeId> request)
        {
            var r = new PingRequest();

            r.Endpoints.Add(request.Endpoints.Select(i => i.ToString()));
            return(r);
        }
        public void Can_encode_ping_request()
        {
            var node    = new KNodeId32(1);
            var buffer  = new ArrayBufferWriter <byte>();
            var encoder = new KJsonMessageEncoder <KNodeId32>();
            var message = new KPingRequest <KNodeId32>(new[] { new Uri("http://www.google.com") });
            var request = new KRequest <KNodeId32, KPingRequest <KNodeId32> >(new KMessageHeader <KNodeId32>(node, 1), message);

            encoder.Encode(new KMessageContext <KNodeId32>("application/json".Yield()), buffer, new KMessageSequence <KNodeId32>(1, new IKMessage <KNodeId32>[] { request }));
            var j = JObject.Parse(Encoding.UTF8.GetString(buffer.WrittenSpan.ToArray()));
            var z = JObject.ReadFrom(new JsonTextReader(new StreamReader(typeof(KJsonMessageEncoderTests).Assembly.GetManifestResourceStream("Alethic.Kademlia.Tests.Json.Samples.ping_request.json"))));

            j.Should().BeEquivalentTo(z);
        }