mirror of
https://github.com/wiremock/WireMock.Net.git
synced 2026-04-24 01:38:53 +02:00
Version 2.x (#1359)
* Version 2.x * Setup .NET 9 * 12 * cleanup some #if for NETSTANDARD1_3 * cleanup + fix tests for net8 * openapi * NO ConfigureAwait(false) + cleanup * . * #endif * HashSet * WireMock.Net.NUnit * HttpContext * Add WebSockets (#1423) * Add WebSockets * Add tests * fix * more tests * Add tests * ... * remove IOwin * - * tests * fluent * ok * match * . * byte[] * x * func * func * byte * trans * ... * frameworks......... * jmes * xxx * sc * using var httpClient = new HttpClient(); * usings * maxRetries * up * xunit v3 * ct * --- * ct * ct2 * T Unit * WireMock.Net.TUnitTests / 10 * t unit first * --project * no tunit * t2 * --project * --project * ci - --project * publish ./test/wiremock-coverage.xml * windows * . * log * ... * log * goed * BodyType * . * . * --scenario * ... * pact * ct * . * WireMock.Net.RestClient.AwesomeAssertions (#1427) * WireMock.Net.RestClient.AwesomeAssertions * ok * atpath * fix test * sonar fixes * ports * proxy test * FIX? * --- * await Task.Delay(100, _ct); * ? * --project * Aspire: use IDistributedApplicationEventingSubscriber (#1428) * broadcast * ok * more tsts * . * Collection * up * . * 2 * remove nfluent * <VersionPrefix>2.0.0-preview-02</VersionPrefix> * ... * . * nuget icon * . * <PackageReference Include="JmesPath.Net" Version="1.1.0" /> * x * 500 * . * fix some warnings * ws
This commit is contained in:
@@ -1,43 +1,36 @@
|
||||
// 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
|
||||
{
|
||||
private static readonly IProtoBufUtils ProtoBufUtils = new ProtoBufUtils();
|
||||
private static readonly ProtoBufUtils _sut = new();
|
||||
|
||||
[Fact]
|
||||
public async Task GetProtoBufMessageWithHeader_MultipleProtoFiles()
|
||||
{
|
||||
// Arrange
|
||||
var greet = await ReadProtoFileAsync("greet1.proto");
|
||||
var request = await ReadProtoFileAsync("request.proto");
|
||||
var greet = ReadProtoFile("greet1.proto");
|
||||
var request = ReadProtoFile("request.proto");
|
||||
|
||||
// Act
|
||||
var responseBytes = await ProtoBufUtils.GetProtoBufMessageWithHeaderAsync(
|
||||
var responseBytes = await _sut.GetProtoBufMessageWithHeaderAsync(
|
||||
[greet, request],
|
||||
"greet.HelloRequest",
|
||||
new
|
||||
"greet.HelloRequest", new
|
||||
{
|
||||
name = "hello"
|
||||
}
|
||||
},
|
||||
cancellationToken: TestContext.Current.CancellationToken
|
||||
);
|
||||
|
||||
// Assert
|
||||
Convert.ToBase64String(responseBytes).Should().Be("AAAAAAcKBWhlbGxv");
|
||||
}
|
||||
|
||||
private static Task<string> ReadProtoFileAsync(string filename)
|
||||
private static string ReadProtoFile(string filename)
|
||||
{
|
||||
return File.ReadAllTextAsync(Path.Combine(Directory.GetCurrentDirectory(), "Grpc", filename));
|
||||
return File.ReadAllText(Path.Combine(Directory.GetCurrentDirectory(), "Grpc", filename));
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
@@ -1,12 +1,6 @@
|
||||
// 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;
|
||||
|
||||
@@ -18,12 +12,13 @@ public class ProtoDefinitionHelperTests
|
||||
public async Task FromDirectory_Greet_ShouldReturnModifiedProtoFiles()
|
||||
{
|
||||
// Arrange
|
||||
var cancellationToken = TestContext.Current.CancellationToken;
|
||||
var directory = Path.Combine(Directory.GetCurrentDirectory(), "Grpc", "Test");
|
||||
var expectedFilename = "SubFolder/request.proto";
|
||||
var expectedComment = $"// {expectedFilename}";
|
||||
|
||||
// Act
|
||||
var protoDefinitionData = await ProtoDefinitionDataHelper.FromDirectory(directory);
|
||||
var protoDefinitionData = await ProtoDefinitionDataHelper.FromDirectory(directory, cancellationToken);
|
||||
var protoDefinitions = protoDefinitionData.ToList("greet");
|
||||
|
||||
// Assert
|
||||
@@ -39,7 +34,7 @@ public class ProtoDefinitionHelperTests
|
||||
resolver.Exists("x").Should().BeFalse();
|
||||
|
||||
// Act + Assert
|
||||
var text = await resolver.OpenText(expectedFilename).ReadToEndAsync();
|
||||
var text = resolver.OpenText(expectedFilename).ReadToEnd();
|
||||
text.Should().StartWith(expectedComment);
|
||||
System.Action action = () => resolver.OpenText("x");
|
||||
action.Should().Throw<FileNotFoundException>();
|
||||
@@ -52,7 +47,7 @@ public class ProtoDefinitionHelperTests
|
||||
var directory = Path.Combine(Directory.GetCurrentDirectory(), "Grpc", "ot");
|
||||
|
||||
// Act
|
||||
var protoDefinitionData = await ProtoDefinitionDataHelper.FromDirectory(directory);
|
||||
var protoDefinitionData = await ProtoDefinitionDataHelper.FromDirectory(directory, TestContext.Current.CancellationToken);
|
||||
var protoDefinitions = protoDefinitionData.ToList("trace_service");
|
||||
|
||||
// Assert
|
||||
@@ -65,11 +60,11 @@ public class ProtoDefinitionHelperTests
|
||||
{
|
||||
rejected_spans = 1,
|
||||
error_message = "abc"
|
||||
}
|
||||
},
|
||||
cancellationToken: TestContext.Current.CancellationToken
|
||||
);
|
||||
|
||||
// Assert
|
||||
Convert.ToBase64String(responseBytes).Should().Be("AAAAAAcIARIDYWJj");
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
@@ -1,26 +1,19 @@
|
||||
// Copyright © WireMock.Net
|
||||
|
||||
#if PROTOBUF
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Net;
|
||||
using System.Net.Http;
|
||||
using System.Net.Http.Headers;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using FluentAssertions;
|
||||
using ExampleIntegrationTest.Lookup;
|
||||
using Google.Protobuf.WellKnownTypes;
|
||||
using Greet;
|
||||
using Grpc.Net.Client;
|
||||
using ExampleIntegrationTest.Lookup;
|
||||
using WireMock.Constants;
|
||||
using WireMock.Matchers;
|
||||
using WireMock.RequestBuilders;
|
||||
using WireMock.ResponseBuilders;
|
||||
using WireMock.Server;
|
||||
using WireMock.Settings;
|
||||
using WireMock.Util;
|
||||
using Xunit;
|
||||
|
||||
// ReSharper disable once CheckNamespace
|
||||
namespace WireMock.Net.Tests;
|
||||
@@ -140,7 +133,7 @@ message Other {
|
||||
protoBuf.Headers.ContentType = new MediaTypeHeaderValue("application/grpc-web");
|
||||
|
||||
var client = server.CreateClient();
|
||||
var response = await client.PostAsync("/grpc/greet.Greeter/SayHello", protoBuf);
|
||||
var response = await client.PostAsync("/grpc/greet.Greeter/SayHello", protoBuf, TestContext.Current.CancellationToken);
|
||||
|
||||
// Assert
|
||||
response.StatusCode.Should().Be(HttpStatusCode.OK);
|
||||
@@ -152,6 +145,7 @@ message Other {
|
||||
public async Task WireMockServer_WithBodyAsProtoBuf(string data)
|
||||
{
|
||||
// Arrange
|
||||
var cancellationToken = TestContext.Current.CancellationToken;
|
||||
var bytes = Convert.FromBase64String(data);
|
||||
var jsonMatcher = new JsonMatcher(new { name = "stef" });
|
||||
|
||||
@@ -178,11 +172,11 @@ message Other {
|
||||
protoBuf.Headers.ContentType = new MediaTypeHeaderValue("application/grpc-web");
|
||||
|
||||
var client = server.CreateClient();
|
||||
var response = await client.PostAsync("/grpc/greet.Greeter/SayHello", protoBuf);
|
||||
var response = await client.PostAsync("/grpc/greet.Greeter/SayHello", protoBuf, cancellationToken);
|
||||
|
||||
// Assert
|
||||
response.StatusCode.Should().Be(HttpStatusCode.OK);
|
||||
var responseBytes = await response.Content.ReadAsByteArrayAsync();
|
||||
var responseBytes = await response.Content.ReadAsByteArrayAsync(cancellationToken);
|
||||
|
||||
Convert.ToBase64String(responseBytes).Should().Be("AAAAAAcKBWhlbGxv");
|
||||
}
|
||||
@@ -191,6 +185,7 @@ message Other {
|
||||
public async Task WireMockServer_WithBodyAsProtoBuf_WithWellKnownTypes_Empty()
|
||||
{
|
||||
// Arrange
|
||||
var cancellationToken = TestContext.Current.CancellationToken;
|
||||
using var server = WireMockServer.Start();
|
||||
|
||||
server
|
||||
@@ -212,11 +207,11 @@ message Other {
|
||||
protoBuf.Headers.ContentType = new MediaTypeHeaderValue("application/grpc-web");
|
||||
|
||||
var client = server.CreateClient();
|
||||
var response = await client.PostAsync("/grpc/Greeter/SayNothing", protoBuf);
|
||||
var response = await client.PostAsync("/grpc/Greeter/SayNothing", protoBuf, cancellationToken);
|
||||
|
||||
// Assert
|
||||
response.StatusCode.Should().Be(HttpStatusCode.OK);
|
||||
var responseBytes = await response.Content.ReadAsByteArrayAsync();
|
||||
var responseBytes = await response.Content.ReadAsByteArrayAsync(cancellationToken);
|
||||
|
||||
Convert.ToBase64String(responseBytes).Should().Be("AAAAAAA=");
|
||||
}
|
||||
@@ -225,6 +220,7 @@ message Other {
|
||||
public async Task WireMockServer_WithBodyAsProtoBuf_WithWellKnownTypes_Timestamp()
|
||||
{
|
||||
// Arrange
|
||||
var cancellationToken = TestContext.Current.CancellationToken;
|
||||
using var server = WireMockServer.Start();
|
||||
|
||||
server
|
||||
@@ -254,11 +250,11 @@ message Other {
|
||||
protoBuf.Headers.ContentType = new MediaTypeHeaderValue("application/grpc-web");
|
||||
|
||||
var client = server.CreateClient();
|
||||
var response = await client.PostAsync("/grpc/Greeter/SayTimestamp", protoBuf);
|
||||
var response = await client.PostAsync("/grpc/Greeter/SayTimestamp", protoBuf, cancellationToken);
|
||||
|
||||
// Assert
|
||||
response.StatusCode.Should().Be(HttpStatusCode.OK);
|
||||
var responseBytes = await response.Content.ReadAsByteArrayAsync();
|
||||
var responseBytes = await response.Content.ReadAsByteArrayAsync(cancellationToken);
|
||||
|
||||
Convert.ToBase64String(responseBytes).Should().Be("AAAAAAsKCQiL96C1BhCMYA==");
|
||||
}
|
||||
@@ -267,6 +263,7 @@ message Other {
|
||||
public async Task WireMockServer_WithBodyAsProtoBuf_WithWellKnownTypes_Duration()
|
||||
{
|
||||
// Arrange
|
||||
var cancellationToken = TestContext.Current.CancellationToken;
|
||||
using var server = WireMockServer.Start();
|
||||
|
||||
server
|
||||
@@ -296,11 +293,11 @@ message Other {
|
||||
protoBuf.Headers.ContentType = new MediaTypeHeaderValue("application/grpc-web");
|
||||
|
||||
var client = server.CreateClient();
|
||||
var response = await client.PostAsync("/grpc/Greeter/SayDuration", protoBuf);
|
||||
var response = await client.PostAsync("/grpc/Greeter/SayDuration", protoBuf, cancellationToken);
|
||||
|
||||
// Assert
|
||||
response.StatusCode.Should().Be(HttpStatusCode.OK);
|
||||
var responseBytes = await response.Content.ReadAsByteArrayAsync();
|
||||
var responseBytes = await response.Content.ReadAsByteArrayAsync(cancellationToken);
|
||||
|
||||
Convert.ToBase64String(responseBytes).Should().Be("AAAAAAsKCQiL96C1BhCMYA==");
|
||||
}
|
||||
@@ -309,6 +306,7 @@ message Other {
|
||||
public async Task WireMockServer_WithBodyAsProtoBuf_ServerProtoDefinition_WithWellKnownTypes()
|
||||
{
|
||||
// Arrange
|
||||
var cancellationToken = TestContext.Current.CancellationToken;
|
||||
var bytes = Convert.FromBase64String("CgRzdGVm");
|
||||
|
||||
using var server = WireMockServer.Start();
|
||||
@@ -335,11 +333,11 @@ message Other {
|
||||
protoBuf.Headers.ContentType = new MediaTypeHeaderValue("application/grpc-web");
|
||||
|
||||
var client = server.CreateClient();
|
||||
var response = await client.PostAsync("/grpc/Greeter/SayNothing", protoBuf);
|
||||
var response = await client.PostAsync("/grpc/Greeter/SayNothing", protoBuf, cancellationToken);
|
||||
|
||||
// Assert
|
||||
response.StatusCode.Should().Be(HttpStatusCode.OK);
|
||||
var responseBytes = await response.Content.ReadAsByteArrayAsync();
|
||||
var responseBytes = await response.Content.ReadAsByteArrayAsync(cancellationToken);
|
||||
|
||||
Convert.ToBase64String(responseBytes).Should().Be("AAAAAAA=");
|
||||
}
|
||||
@@ -348,6 +346,7 @@ message Other {
|
||||
public async Task WireMockServer_WithBodyAsProtoBuf_MultipleFiles()
|
||||
{
|
||||
// Arrange
|
||||
var cancellationToken = TestContext.Current.CancellationToken;
|
||||
var bytes = Convert.FromBase64String("CgRzdGVm");
|
||||
var jsonMatcher = new JsonMatcher(new { name = "stef" });
|
||||
|
||||
@@ -376,11 +375,11 @@ message Other {
|
||||
protoBuf.Headers.ContentType = new MediaTypeHeaderValue("application/grpc-web");
|
||||
|
||||
var client = server.CreateClient();
|
||||
var response = await client.PostAsync("/grpc/greet.Greeter/SayOther", protoBuf);
|
||||
var response = await client.PostAsync("/grpc/greet.Greeter/SayOther", protoBuf, cancellationToken);
|
||||
|
||||
// Assert
|
||||
response.StatusCode.Should().Be(HttpStatusCode.OK);
|
||||
var responseBytes = await response.Content.ReadAsByteArrayAsync();
|
||||
var responseBytes = await response.Content.ReadAsByteArrayAsync(cancellationToken);
|
||||
|
||||
Convert.ToBase64String(responseBytes).Should().Be("AAAAAAcKBWhlbGxv");
|
||||
}
|
||||
@@ -389,6 +388,7 @@ message Other {
|
||||
public async Task WireMockServer_WithBodyAsProtoBuf_InlineProtoDefinition_UsingGrpcGeneratedClient()
|
||||
{
|
||||
// Arrange
|
||||
var cancellationToken = TestContext.Current.CancellationToken;
|
||||
using var server = WireMockServer.Start(useHttp2: true);
|
||||
|
||||
var jsonMatcher = new JsonMatcher(new { name = "stef" });
|
||||
@@ -415,7 +415,7 @@ message Other {
|
||||
var channel = GrpcChannel.ForAddress(server.Url!);
|
||||
var client = new Greeter.GreeterClient(channel);
|
||||
|
||||
var reply = await client.SayHelloAsync(new HelloRequest { Name = "stef" });
|
||||
var reply = await client.SayHelloAsync(new HelloRequest { Name = "stef" }, cancellationToken: cancellationToken);
|
||||
|
||||
// Assert
|
||||
reply.Message.Should().Be("hello stef POST");
|
||||
@@ -425,6 +425,7 @@ message Other {
|
||||
public async Task WireMockServer_WithBodyAsProtoBuf_MappingProtoDefinition_UsingGrpcGeneratedClient()
|
||||
{
|
||||
// Arrange
|
||||
var cancellationToken = TestContext.Current.CancellationToken;
|
||||
using var server = WireMockServer.Start(useHttp2: true);
|
||||
|
||||
var jsonMatcher = new JsonMatcher(new { name = "stef" });
|
||||
@@ -453,7 +454,7 @@ message Other {
|
||||
var channel = GrpcChannel.ForAddress(server.Url!);
|
||||
var client = new Greeter.GreeterClient(channel);
|
||||
|
||||
var reply = await client.SayHelloAsync(new HelloRequest { Name = "stef" });
|
||||
var reply = await client.SayHelloAsync(new HelloRequest { Name = "stef" }, cancellationToken: cancellationToken);
|
||||
|
||||
// Assert
|
||||
reply.Message.Should().Be("hello stef POST");
|
||||
@@ -465,6 +466,7 @@ message Other {
|
||||
// Arrange
|
||||
var id = $"test-{Guid.NewGuid()}";
|
||||
|
||||
var cancellationToken = TestContext.Current.CancellationToken;
|
||||
using var server = WireMockServer.Start(useHttp2: true);
|
||||
|
||||
var jsonMatcher = new JsonMatcher(new { name = "stef" });
|
||||
@@ -491,7 +493,7 @@ message Other {
|
||||
);
|
||||
|
||||
// Act
|
||||
var reply = await When_GrpcClient_Calls_SayHelloAsync(server.Url!);
|
||||
var reply = await When_GrpcClient_Calls_SayHelloAsync(server.Url!, cancellationToken);
|
||||
|
||||
// Assert
|
||||
Then_ReplyMessage_Should_BeCorrect(reply);
|
||||
@@ -501,7 +503,8 @@ message Other {
|
||||
public async Task WireMockServer_WithBodyAsProtoBuf_WithWellKnownTypes_Empty_UsingGrpcGeneratedClient()
|
||||
{
|
||||
// Arrange
|
||||
var definition = await File.ReadAllTextAsync("./Grpc/greet.proto");
|
||||
var cancellationToken = TestContext.Current.CancellationToken;
|
||||
var definition = File.ReadAllText("./Grpc/greet.proto");
|
||||
|
||||
using var server = WireMockServer.Start(useHttp2: true);
|
||||
|
||||
@@ -522,7 +525,7 @@ message Other {
|
||||
var channel = GrpcChannel.ForAddress(server.Url!);
|
||||
var client = new Greeter.GreeterClient(channel);
|
||||
|
||||
var reply = await client.SayNothingAsync(new Empty());
|
||||
var reply = await client.SayNothingAsync(new Empty(), cancellationToken: cancellationToken);
|
||||
|
||||
// Assert
|
||||
reply.Should().Be(new Empty());
|
||||
@@ -534,7 +537,8 @@ message Other {
|
||||
// Arrange
|
||||
const int seconds = 1722301323;
|
||||
const int nanos = 12300;
|
||||
var definition = await File.ReadAllTextAsync("./Grpc/greet.proto");
|
||||
var cancellationToken = TestContext.Current.CancellationToken;
|
||||
var definition = File.ReadAllText("./Grpc/greet.proto");
|
||||
|
||||
using var server = WireMockServer.Start(useHttp2: true);
|
||||
|
||||
@@ -563,7 +567,7 @@ message Other {
|
||||
var channel = GrpcChannel.ForAddress(server.Url!);
|
||||
var client = new Greeter.GreeterClient(channel);
|
||||
|
||||
var reply = await client.SayTimestampAsync(new MyMessageTimestamp { Ts = Timestamp.FromDateTime(DateTime.UtcNow) });
|
||||
var reply = await client.SayTimestampAsync(new MyMessageTimestamp { Ts = Timestamp.FromDateTime(DateTime.UtcNow) }, cancellationToken: cancellationToken);
|
||||
|
||||
// Assert
|
||||
reply.Ts.Should().Be(new Timestamp { Seconds = seconds, Nanos = nanos });
|
||||
@@ -575,7 +579,8 @@ message Other {
|
||||
// Arrange
|
||||
const int seconds = 1722301323;
|
||||
const int nanos = 12300;
|
||||
var definition = await File.ReadAllTextAsync("./Grpc/greet.proto");
|
||||
var cancellationToken = TestContext.Current.CancellationToken;
|
||||
var definition = File.ReadAllText("./Grpc/greet.proto");
|
||||
|
||||
using var server = WireMockServer.Start(useHttp2: true);
|
||||
|
||||
@@ -604,7 +609,7 @@ message Other {
|
||||
var channel = GrpcChannel.ForAddress(server.Url!);
|
||||
var client = new Greeter.GreeterClient(channel);
|
||||
|
||||
var reply = await client.SayDurationAsync(new MyMessageDuration { Du = Duration.FromTimeSpan(TimeSpan.MinValue) });
|
||||
var reply = await client.SayDurationAsync(new MyMessageDuration { Du = Duration.FromTimeSpan(TimeSpan.MinValue) }, cancellationToken: cancellationToken);
|
||||
|
||||
// Assert
|
||||
reply.Du.Should().Be(new Duration { Seconds = seconds, Nanos = nanos });
|
||||
@@ -614,7 +619,8 @@ message Other {
|
||||
public async Task WireMockServer_WithBodyAsProtoBuf_Enum_UsingGrpcGeneratedClient()
|
||||
{
|
||||
// Arrange
|
||||
var definition = await File.ReadAllTextAsync("./Grpc/greet.proto");
|
||||
var cancellationToken = TestContext.Current.CancellationToken;
|
||||
var definition = File.ReadAllText("./Grpc/greet.proto");
|
||||
|
||||
using var server = WireMockServer.Start(useHttp2: true);
|
||||
|
||||
@@ -640,7 +646,7 @@ message Other {
|
||||
var channel = GrpcChannel.ForAddress(server.Url!);
|
||||
var client = new Greeter.GreeterClient(channel);
|
||||
|
||||
var reply = await client.SayHelloAsync(new HelloRequest());
|
||||
var reply = await client.SayHelloAsync(new HelloRequest(), cancellationToken: cancellationToken);
|
||||
|
||||
// Assert
|
||||
reply.Message.Should().Be("hello");
|
||||
@@ -651,11 +657,12 @@ message Other {
|
||||
public async Task WireMockServer_WithBodyAsProtoBuf_Enum_UsingPolicyGrpcGeneratedClient()
|
||||
{
|
||||
// Arrange
|
||||
var cancellationToken = TestContext.Current.CancellationToken;
|
||||
const int seconds = 1722301323;
|
||||
const int nanos = 12300;
|
||||
const string version = "test";
|
||||
const string correlationId = "correlation";
|
||||
var definition = await File.ReadAllTextAsync("./Grpc/policy.proto");
|
||||
var definition = File.ReadAllText("./Grpc/policy.proto");
|
||||
|
||||
using var server = WireMockServer.Start(useHttp2: true);
|
||||
|
||||
@@ -690,7 +697,7 @@ message Other {
|
||||
var channel = GrpcChannel.ForAddress(server.Url!);
|
||||
var client = new PolicyService.PolicyServiceClient(channel);
|
||||
|
||||
var reply = await client.GetVersionAsync(new GetVersionRequest());
|
||||
var reply = await client.GetVersionAsync(new GetVersionRequest(), cancellationToken: cancellationToken);
|
||||
|
||||
// Assert
|
||||
reply.Version.Should().Be(version);
|
||||
@@ -702,10 +709,11 @@ message Other {
|
||||
[Fact]
|
||||
public async Task WireMockServer_WithBodyAsProtoBuf_FromJson_UsingGrpcGeneratedClient()
|
||||
{
|
||||
var cancellationToken = TestContext.Current.CancellationToken;
|
||||
var server = Given_When_ServerStarted_And_RunningOnHttpAndGrpc();
|
||||
await Given_When_ProtoBufMappingIsAddedViaAdminInterfaceAsync(server, "protobuf-mapping-1.json");
|
||||
await Given_When_ProtoBufMappingIsAddedViaAdminInterfaceAsync(server, "protobuf-mapping-1.json", cancellationToken);
|
||||
|
||||
var reply = await When_GrpcClient_Calls_SayHelloAsync(server.Urls[1]);
|
||||
var reply = await When_GrpcClient_Calls_SayHelloAsync(server.Urls[1], cancellationToken);
|
||||
|
||||
Then_ReplyMessage_Should_BeCorrect(reply);
|
||||
}
|
||||
@@ -713,22 +721,21 @@ message Other {
|
||||
[Fact]
|
||||
public async Task WireMockServer_WithBodyAsProtoBuf_ServerProtoDefinitionFromJson_UsingGrpcGeneratedClient()
|
||||
{
|
||||
var cancellationToken = TestContext.Current.CancellationToken;
|
||||
var server = Given_When_ServerStarted_And_RunningOnHttpAndGrpc();
|
||||
Given_ProtoDefinition_IsAddedOnServerLevel(server);
|
||||
await Given_When_ProtoBufMappingIsAddedViaAdminInterfaceAsync(server, "protobuf-mapping-3.json");
|
||||
await Given_When_ProtoBufMappingIsAddedViaAdminInterfaceAsync(server, "protobuf-mapping-3.json", cancellationToken);
|
||||
|
||||
var reply = await When_GrpcClient_Calls_SayHelloAsync(server.Urls[1]);
|
||||
var reply = await When_GrpcClient_Calls_SayHelloAsync(server.Urls[1], cancellationToken);
|
||||
|
||||
Then_ReplyMessage_Should_BeCorrect(reply);
|
||||
}
|
||||
|
||||
private static WireMockServer Given_When_ServerStarted_And_RunningOnHttpAndGrpc()
|
||||
{
|
||||
var ports = PortUtils.FindFreeTcpPorts(2);
|
||||
|
||||
var settings = new WireMockServerSettings
|
||||
{
|
||||
Urls = [$"http://*:{ports[0]}/", $"grpc://*:{ports[1]}/"],
|
||||
Urls = [$"http://*:0", $"grpc://*:0/"],
|
||||
StartAdminInterface = true
|
||||
};
|
||||
return WireMockServer.Start(settings);
|
||||
@@ -739,23 +746,23 @@ message Other {
|
||||
server.AddProtoDefinition("my-greeter", ReadProtoFile("greet.proto"));
|
||||
}
|
||||
|
||||
private static async Task Given_When_ProtoBufMappingIsAddedViaAdminInterfaceAsync(WireMockServer server, string filename)
|
||||
private static async Task Given_When_ProtoBufMappingIsAddedViaAdminInterfaceAsync(WireMockServer server, string filename, CancellationToken cancellationToken)
|
||||
{
|
||||
var mappingsJson = ReadMappingFile(filename);
|
||||
|
||||
using var httpClient = server.CreateClient();
|
||||
|
||||
var result = await httpClient.PostAsync("/__admin/mappings", new StringContent(mappingsJson, Encoding.UTF8, WireMockConstants.ContentTypeJson));
|
||||
var result = await httpClient.PostAsync("/__admin/mappings", new StringContent(mappingsJson, Encoding.UTF8, WireMockConstants.ContentTypeJson), cancellationToken);
|
||||
result.EnsureSuccessStatusCode();
|
||||
}
|
||||
|
||||
private static async Task<HelloReply> When_GrpcClient_Calls_SayHelloAsync(string address)
|
||||
private static async Task<HelloReply> When_GrpcClient_Calls_SayHelloAsync(string address, CancellationToken cancellationToken)
|
||||
{
|
||||
var channel = GrpcChannel.ForAddress(address);
|
||||
|
||||
var client = new Greeter.GreeterClient(channel);
|
||||
|
||||
return await client.SayHelloAsync(new HelloRequest { Name = "stef" });
|
||||
return await client.SayHelloAsync(new HelloRequest { Name = "stef" }, cancellationToken: cancellationToken);
|
||||
}
|
||||
|
||||
private static void Then_ReplyMessage_Should_BeCorrect(HelloReply reply)
|
||||
@@ -772,5 +779,4 @@ message Other {
|
||||
{
|
||||
return File.ReadAllText(Path.Combine(Directory.GetCurrentDirectory(), "Grpc", filename));
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
Reference in New Issue
Block a user