private bool FillPayload(IRequestDetails requestDetails, RequestDefinitionItem requestDefinition, Models.ResponseDetails response) { var payload = requestDefinition.Then.Payload; if (string.IsNullOrWhiteSpace(payload)) { return(false); } payload = ReplaceGuids(payload); if (requestDefinition.When.UrlRegexExpression != null) { foreach (var urlVariable in requestDefinition.When.UrlVariables) { while (payload.Contains($"@{urlVariable}")) { var match = Regex.Match(requestDetails.Uri, requestDefinition.When.UrlRegexExpression, RegexOptions.IgnoreCase | RegexOptions.Singleline); payload = payload.Replace($"@{urlVariable}", match.Groups[urlVariable]?.Value); } } } response.ContentType = requestDefinition.Then.ContentType; response.Content = payload; return(true); }
private static bool FillContentType(RequestDefinitionItem requestDefinition, Models.ResponseDetails response) { if (!string.IsNullOrWhiteSpace(requestDefinition.Then.ContentType)) { response.ContentType = requestDefinition.Then.ContentType; return(true); } response.ContentType = MediaTypeNames.Application.Json; return(false); }
private static bool FillStatusCode( RequestDefinitionItem requestDefinition, Models.ResponseDetails response) { if (requestDefinition.Then.StatusCode <= 0) { return(false); } response.StatusCode = requestDefinition.Then.StatusCode; return(true); }
private static async ValueTask <bool> FillDelay( RequestDefinitionItem requestDefinition, CancellationToken cancellationToken) { if (!requestDefinition.Then.Delay.HasValue || requestDefinition.Then.Delay.Value <= 0) { return(false); } await Task.Delay(requestDefinition.Then.Delay.Value, cancellationToken).ConfigureAwait(false); return(true); }
private static bool FillHeaders(RequestDefinitionItem requestDefinition, Models.ResponseDetails response) { if (requestDefinition.Then.Headers == null || requestDefinition.Then.Headers.Count == 0) { return(false); } response.Headers ??= new Dictionary <string, string>(); foreach (var thenHeader in requestDefinition.Then.Headers) { response.Headers[thenHeader.Key] = thenHeader.Value; } return(true); }