Skip to content

How to use WiremockContainerBuilder for grpc using http2 #1239

@GomesNayagam

Description

@GomesNayagam
  1. hellorequest.json in path /mocks/mappings/hellorequest.json
{
  "Request": {
    "Path": {
      "Matchers": [
        {
          "Name": "WildcardMatcher",
          "Pattern": "/grpc/greet.Greeter/SayHello",
          "IgnoreCase": false
        }
      ]
    },
    "Methods": [
      "POST"
    ],
    "Body": {
      "Matcher": {
        "Name": "ProtoBufMatcher",
        "Pattern": "\r\nsyntax = \"proto3\";\r\n\r\npackage greet;\r\n\r\nservice Greeter {\r\n  rpc SayHello (HelloRequest) returns (HelloReply);\r\n}\r\n\r\nmessage HelloRequest {\r\n  string name = 1;\r\n}\r\n\r\nmessage HelloReply {\r\n  string message = 1;\r\n}\r\n",
        "ContentMatcher": {
          "Name": "JsonPartialWildcardMatcher",
          "Pattern": {
            "name": "*"
          },
          "IgnoreCase": false,
          "Regex": false
        },
        "ProtoBufMessageType": "greet.HelloRequest"
      }
    }
  },
  "Response": {
    "BodyAsJson": {
      "message": "hello {{request.BodyAsJson.name}}"
    },
    "UseTransformer": true,
    "TransformerType": "Handlebars",
    "TransformerReplaceNodeOptions": "EvaluateAndTryToConvert",
    "Headers": {
      "Content-Type": "application/grpc"
    },
    "TrailingHeaders": {
      "grpc-status": "0"
    },
    "ProtoDefinition": "\r\nsyntax = \"proto3\";\r\n\r\npackage greet;\r\n\r\nservice Greeter {\r\n  rpc SayHello (HelloRequest) returns (HelloReply);\r\n}\r\n\r\nmessage HelloRequest {\r\n  string name = 1;\r\n}\r\n\r\nmessage HelloReply {\r\n  string message = 1;\r\n}\r\n",
    "ProtoBufMessageType": "greet.HelloReply"
  }
}
  1. code
            var greetContainer = new ContainerBuilder()
                .WithImage("wiremock/wiremock")
                //.WithPortBinding(8080, true)
                .WithBindMount(TestHelper.GetAbsolutePath(@"mocks\greet"), "/home/wiremock")
                .Build();

            await greetContainer.StartAsync();
  1. expected result

container should spin up and ready for testing.

  1. actual result

timeout exception

Metadata

Metadata

Assignees

Labels

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions