Summary

Class:WireMock.Transformers.ResponseMessageTransformer
Assembly:WireMock.Net
File(s):C:\Users\azureuser\Documents\Github\WireMock.Net\src\WireMock.Net\Transformers\ResponseMessageTransformer.cs
Covered lines:33
Uncovered lines:0
Coverable lines:33
Total lines:57
Line coverage:100%
Branch coverage:87.5%

Metrics

MethodCyclomatic complexity  NPath complexity  Sequence coverage  Branch coverage  
Transform(...)81610088.89

File(s)

C:\Users\azureuser\Documents\Github\WireMock.Net\src\WireMock.Net\Transformers\ResponseMessageTransformer.cs

#LineLine coverage
 1using System.Collections.Generic;
 2using System.Linq;
 3using HandlebarsDotNet;
 4using Newtonsoft.Json;
 5using WireMock.Util;
 6
 7namespace WireMock.Transformers
 8{
 9    internal static class ResponseMessageTransformer
 10    {
 11        public static ResponseMessage Transform(RequestMessage requestMessage, ResponseMessage original)
 612        {
 613            bool bodyIsJson = original.BodyAsJson != null;
 614            var responseMessage = new ResponseMessage { StatusCode = original.StatusCode };
 15
 616             if (!bodyIsJson)
 517            {
 518                responseMessage.BodyOriginal = original.Body;
 519            }
 20
 621            var template = new { request = requestMessage };
 22
 23            // Body
 624             string body = bodyIsJson ? JsonConvert.SerializeObject(original.BodyAsJson) : original.Body;
 625             if (body != null)
 626            {
 627                var templateBody = Handlebars.Compile(body);
 28
 629                 if (!bodyIsJson)
 530                {
 531                    responseMessage.Body = templateBody(template);
 532                }
 33                else
 134                {
 135                    responseMessage.BodyAsJson = JsonConvert.DeserializeObject(templateBody(template));
 136                }
 637            }
 38
 39            // Headers
 640            var newHeaders = new Dictionary<string, WireMockList<string>>();
 2241            foreach (var header in original.Headers)
 242            {
 243                var templateHeaderKey = Handlebars.Compile(header.Key);
 244                var templateHeaderValues = header.Value
 245                    .Select(Handlebars.Compile)
 546                    .Select(func => func(template))
 247                    .ToArray();
 48
 249                newHeaders.Add(templateHeaderKey(template), new WireMockList<string>(templateHeaderValues));
 250            }
 51
 652            responseMessage.Headers = newHeaders;
 53
 654            return responseMessage;
 655        }
 56    }
 57}