mirror of
https://github.com/wiremock/WireMock.Net.git
synced 2026-03-24 10:22:13 +01:00
Grpc: Fix parsing null value for google.protobuf.Timestamp (#1293)
* Add another example for Grpc client + mapping * <PackageReference Include="ProtoBufJsonConverter" Version="0.9.0" />
This commit is contained in:
@@ -2,22 +2,42 @@
|
||||
|
||||
using Greet;
|
||||
using Grpc.Net.Client;
|
||||
using Policy2;
|
||||
|
||||
namespace WireMock.Net.Console.GrpcClient;
|
||||
await TestPolicyAsync();
|
||||
// await TestGreeterAsync();
|
||||
return;
|
||||
|
||||
internal class Program
|
||||
async Task TestGreeterAsync()
|
||||
{
|
||||
static async Task Main(string[] args)
|
||||
var channel = GrpcChannel.ForAddress("http://localhost:9093/grpc3", new GrpcChannelOptions
|
||||
{
|
||||
var channel = GrpcChannel.ForAddress("http://localhost:9093/grpc3", new GrpcChannelOptions
|
||||
Credentials = Grpc.Core.ChannelCredentials.Insecure
|
||||
});
|
||||
|
||||
var client = new Greeter.GreeterClient(channel);
|
||||
|
||||
var reply = await client.SayHelloAsync(new HelloRequest { Name = "stef" });
|
||||
|
||||
Console.WriteLine("Greeting: " + reply.Message);
|
||||
}
|
||||
|
||||
async Task TestPolicyAsync()
|
||||
{
|
||||
var channel = GrpcChannel.ForAddress("http://localhost:9093/grpc-policy", new GrpcChannelOptions
|
||||
{
|
||||
Credentials = Grpc.Core.ChannelCredentials.Insecure
|
||||
});
|
||||
|
||||
var client = new PolicyService2.PolicyService2Client(channel);
|
||||
|
||||
var reply = await client.GetCancellationDetailAsync(new GetCancellationDetailRequest
|
||||
{
|
||||
Client = new Client
|
||||
{
|
||||
Credentials = Grpc.Core.ChannelCredentials.Insecure
|
||||
});
|
||||
CorrelationId = "abc"
|
||||
}
|
||||
});
|
||||
|
||||
var client = new Greeter.GreeterClient(channel);
|
||||
|
||||
var reply = await client.SayHelloAsync(new HelloRequest { Name = "stef" });
|
||||
|
||||
System.Console.WriteLine("Greeting: " + reply.Message);
|
||||
}
|
||||
Console.WriteLine("PolicyService2:reply.CancellationName " + reply.CancellationName);
|
||||
}
|
||||
@@ -5,6 +5,7 @@
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
<LangVersion>latest</LangVersion>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
@@ -18,6 +19,7 @@
|
||||
|
||||
<ItemGroup>
|
||||
<Protobuf Include="greet.proto" GrpcServices="Client" />
|
||||
<Protobuf Include="policy.proto" GrpcServices="Client" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
</Project>
|
||||
64
examples/WireMock.Net.Console.GrpcClient/policy.proto
Normal file
64
examples/WireMock.Net.Console.GrpcClient/policy.proto
Normal file
@@ -0,0 +1,64 @@
|
||||
|
||||
syntax = "proto3";
|
||||
|
||||
import "google/protobuf/timestamp.proto";
|
||||
|
||||
// option csharp_namespace = "NarrowIntegrationTest.Lookup";
|
||||
|
||||
package Policy2;
|
||||
|
||||
service PolicyService2 {
|
||||
rpc GetCancellationDetail (GetCancellationDetailRequest) returns (GetCancellationDetailResponse);
|
||||
}
|
||||
|
||||
message GetCancellationDetailRequest {
|
||||
Client Client = 1;
|
||||
LegacyPolicyKey LegacyPolicyKey = 2;
|
||||
}
|
||||
|
||||
message GetCancellationDetailResponse {
|
||||
ResponseStatus Status = 1;
|
||||
string CancellationCode = 2;
|
||||
string CancellationName = 3;
|
||||
string CancellationDescription = 4;
|
||||
google.protobuf.Timestamp CancellationEffDate = 5;
|
||||
string NonRenewalCode = 6;
|
||||
string NonRenewalName = 7;
|
||||
string NonRenewalDescription = 8;
|
||||
google.protobuf.Timestamp NonRenewalEffDate = 9;
|
||||
google.protobuf.Timestamp LastReinstatementDate = 10;
|
||||
}
|
||||
|
||||
message LegacyPolicyKey {
|
||||
string Group = 1;
|
||||
int32 UnitNumber = 2;
|
||||
int32 Year = 3;
|
||||
string Suffix = 4;
|
||||
}
|
||||
|
||||
message ResponseStatus {
|
||||
bool HasErrors = 1;
|
||||
bool HasWarnings = 2;
|
||||
repeated string Errors = 3;
|
||||
repeated string Warnings = 4;
|
||||
string CorrelationId = 5;
|
||||
}
|
||||
|
||||
message Client {
|
||||
string CorrelationId = 1;
|
||||
enum Clients {
|
||||
Unknown = 0;
|
||||
QMS = 1;
|
||||
BillingCenter = 2;
|
||||
PAS = 3;
|
||||
Payroll = 4;
|
||||
Portal = 5;
|
||||
SFO = 6;
|
||||
QuoteAndBind = 7;
|
||||
LegacyConversion = 8;
|
||||
BindNow = 9;
|
||||
PaymentPortal = 10 ;
|
||||
PricingEngine = 11;
|
||||
}
|
||||
Clients ClientName = 2;
|
||||
}
|
||||
Reference in New Issue
Block a user