public void Protobuf_Transcoding_Type_Resolver() { if (IsRunningOnAzurePipelines) { return; } IResonanceTransporter t1 = ResonanceTransporter.Builder .Create() .WithInMemoryAdapter() .WithAddress("TST") .WithProtobufTranscoding() .WithMessageTypeHeaderMethod(MessageTypeHeaderMethod.Name) .WithTypeResolver <ProtobufTypeResolver>() .Build(); IResonanceTransporter t2 = ResonanceTransporter.Builder .Create() .WithInMemoryAdapter() .WithAddress("TST") .WithProtobufTranscoding() .WithMessageTypeHeaderMethod(MessageTypeHeaderMethod.Name) .WithTypeResolver <ProtobufTypeResolver>() .Build(); t1.Connect(); t2.Connect(); t2.RequestReceived += (s, e) => { Messages.Proto.CalculateRequest receivedRequest = e.Message.Object as Messages.Proto.CalculateRequest; t2.SendResponse(new Messages.Proto.CalculateResponse() { Sum = receivedRequest.A + receivedRequest.B }, e.Message.Token); }; var request = new Messages.Proto.CalculateRequest() { A = 10, B = 15 }; var response = t1.SendRequest <Messages.Proto.CalculateRequest, Messages.Proto.CalculateResponse>(request); t1.Dispose(true); t2.Dispose(true); Assert.AreEqual(response.Sum, request.A + request.B); }
public void Protobuf_Encoding() { IResonanceTransporter t1 = ResonanceTransporter.Builder .Create() .WithInMemoryAdapter() .WithAddress("TST") .WithProtobufTranscoding() .Build(); IResonanceTransporter t2 = ResonanceTransporter.Builder .Create() .WithInMemoryAdapter() .WithAddress("TST") .WithProtobufTranscoding() .Build(); t1.ConnectAsync().Wait(); t2.ConnectAsync().Wait(); t2.RequestReceived += (s, e) => { Messages.Proto.CalculateRequest receivedRequest = e.Message.Object as Messages.Proto.CalculateRequest; t2.SendResponseAsync(new Messages.Proto.CalculateResponse() { Sum = receivedRequest.A + receivedRequest.B }, e.Message.Token); }; for (int i = 0; i < 1000; i++) { var request = new Messages.Proto.CalculateRequest() { A = 10, B = i }; var response = t1.SendRequestAsync <Messages.Proto.CalculateRequest, Messages.Proto.CalculateResponse>(request).GetAwaiter().GetResult(); } t1.Dispose(true); t2.Dispose(true); }