in src/Testing/Emulator/Policies/CheckHeaderHandler.cs [24:56]
protected override void Handle(GatewayContext context, CheckHeaderConfig config)
{
bool pass = false;
if (context.Request.Headers.TryGetValue(config.Name, out var values) && values.Length == 1)
{
pass = config.Values.Length == 0 || config.Values.Contains(values[0], ValueComparer(config));
}
if (pass)
{
OnCheckPassed.Find(tuple => tuple.Item1(context, config))?.Item2(context, config);
return;
}
context.Response = new MockResponse()
{
StatusCode = config.FailCheckHttpCode,
// StatusReason = GetStatusReason(config.FailCheckHttpCode), TODO: Create status reason mapper
Headers = { { "Content-Type", ["application/json"] } },
Body =
{
Content = $$"""
{
"statusCode": {{config.FailCheckHttpCode}},
"message": "{{config.FailCheckErrorMessage}}"
}
"""
}
};
OnCheckFailed.Find(tuple => tuple.Item1(context, config))?.Item2(context, config);
throw new FinishSectionProcessingException();
}