Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        private static bool FillStatusCode(
            RequestDefinitionItem requestDefinition, Models.ResponseDetails response)
        {
            if (requestDefinition.Then.StatusCode <= 0)
            {
                return(false);
            }

            response.StatusCode = requestDefinition.Then.StatusCode;
            return(true);
        }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 5
0
        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);
        }