Another issue I'm facing is pact doesn't seem to s...
# protobufs
j
Another issue I'm facing is pact doesn't seem to support message fields within message fields. Here's the proto snippet:
Copy code
message AdBreakRequest {
  repeated AdBreakContext ad_break_context = 1; 

  message AdBreakContext {
    google.protobuf.StringValue forced_line_id = 1;
    google.protobuf.StringValue forced_creative_id = 2;
    google.protobuf.StringValue ad_break_id = 3;
    google.protobuf.StringValue sessionId = 4;
    AdBreakAdType ad_break_type = 5;
    google.protobuf.StringValue cached_source_id = 6;
    google.protobuf.Int32Value number_of_ads = 7;
    google.protobuf.Int32Value pod_duration_seconds = 8;
  }
}
When I try to build the request with this code:
Copy code
"request", Map.of(
								"ad_break_context", List.of(Map.of(
										"ad_break_id", Map.of("value", "matching(type, 'VldOSV9W')"),
										"sessionId", Map.of("value", "matching(type, 'wJwZIZNX')"),
										"number_of_ads", Map.of("value", "matching(number, 2)")
								))),
I get the following exception:
Copy code
Failed to set the interaction: Failed to process protobuf: Did not find a message type 'AdBreakContext' in any of file descriptors
au.com.dius.pact.consumer.dsl.InteractionConfigurationError: Failed to set the interaction: Failed to process protobuf: Did not find a message type 'AdBreakContext' in any of file descriptors
	at app//au.com.dius.pact.consumer.dsl.PactBuilder.setupMessageContents(PactBuilder.kt:266)
	at app//au.com.dius.pact.consumer.dsl.PactBuilder.with(PactBuilder.kt:190