Update WireMockProtoFileResolver and add tests for ProtoBufUtils (#1252)

* Update WireMockProtoFileResolver and add tests for ProtoBufUtils

* .
This commit is contained in:
Stef Heyenrath
2025-02-01 22:27:32 +01:00
committed by GitHub
parent 29bf9b42f8
commit a02ff47db6
6 changed files with 100 additions and 9 deletions

View File

@@ -0,0 +1,41 @@
// Copyright © WireMock.Net
#if PROTOBUF
using System;
using System.IO;
using System.Threading.Tasks;
using FluentAssertions;
using WireMock.Util;
using Xunit;
namespace WireMock.Net.Tests.Grpc;
public class ProtoBufUtilsTests
{
[Fact]
public async Task GetProtoBufMessageWithHeader_MultipleProtoFiles()
{
// Arrange
var greet = await ReadProtoFileAsync("greet1.proto");
var request = await ReadProtoFileAsync("request.proto");
// Act
var responseBytes = await ProtoBufUtils.GetProtoBufMessageWithHeaderAsync(
[greet, request],
"greet.HelloRequest",
new
{
name = "hello"
}
);
// Assert
Convert.ToBase64String(responseBytes).Should().Be("AAAAAAcKBWhlbGxv");
}
private static Task<string> ReadProtoFileAsync(string filename)
{
return File.ReadAllTextAsync(Path.Combine(Directory.GetCurrentDirectory(), "Grpc", filename));
}
}
#endif

View File

@@ -0,0 +1,13 @@
syntax = "proto3";
import "request.proto";
package greet;
service Greeter {
rpc SayHello (HelloRequest) returns (HelloReply);
}
message HelloReply {
string message = 1;
}

View File

@@ -0,0 +1,8 @@
// request.proto
syntax = "proto3";
package greet;
message HelloRequest {
string name = 1;
}

View File

@@ -134,6 +134,14 @@
<None Update="cert.pem">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="Grpc\request.proto">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<!--<GrpcServices>Client</GrpcServices>-->
</None>
<None Update="Grpc\greet1.proto">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<!--<GrpcServices>Client</GrpcServices>-->
</None>
<None Update="Grpc\policy.proto">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<GrpcServices>Client</GrpcServices>