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); }