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

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions