mirror of
https://github.com/wiremock/WireMock.Net.git
synced 2026-03-27 20:01:52 +01:00
Refactor some code (MappingConverter)
This commit is contained in:
@@ -187,50 +187,6 @@ internal class MappingConverter
|
|||||||
return sb.ToString();
|
return sb.ToString();
|
||||||
}
|
}
|
||||||
|
|
||||||
private string ConvertJsonToAnonymousObjectDefinition(JToken token, int ind = 0)
|
|
||||||
{
|
|
||||||
string FormatObject(JObject jObject)
|
|
||||||
{
|
|
||||||
var indStr = new string(' ', 4 * ind);
|
|
||||||
var indStrSub = new string(' ', 4 * (ind + 1));
|
|
||||||
var items = jObject.Properties().Select(x => ConvertJsonToAnonymousObjectDefinition(x, ind + 1));
|
|
||||||
return $"new\r\n{indStr}{{\r\n{indStrSub}{string.Join($",\r\n{indStrSub}", items)}\r\n{indStr}}}";
|
|
||||||
}
|
|
||||||
|
|
||||||
string FormatArray(JArray jArray, int ind)
|
|
||||||
{
|
|
||||||
var hasComplexItems = jArray.FirstOrDefault() is JObject or JArray;
|
|
||||||
var items = jArray.Select(x => ConvertJsonToAnonymousObjectDefinition(x, hasComplexItems ? ind + 1 : ind));
|
|
||||||
if (hasComplexItems)
|
|
||||||
{
|
|
||||||
var indStr = new string(' ', 4 * ind);
|
|
||||||
var indStrSub = new string(' ', 4 * (ind + 1));
|
|
||||||
return $"new []\r\n{indStr}{{\r\n{indStrSub}{string.Join($",\r\n{indStrSub}", items)}\r\n{indStr}}}";
|
|
||||||
}
|
|
||||||
|
|
||||||
return $"new [] {{ {string.Join(", ", items)} }}";
|
|
||||||
}
|
|
||||||
|
|
||||||
return token switch
|
|
||||||
{
|
|
||||||
JArray jArray => FormatArray(jArray, ind),
|
|
||||||
JObject jObject => FormatObject(jObject),
|
|
||||||
JProperty jProperty => $"{jProperty.Name} = {ConvertJsonToAnonymousObjectDefinition(jProperty.Value, ind)}",
|
|
||||||
JValue jValue => jValue.Type switch
|
|
||||||
{
|
|
||||||
JTokenType.None => "null",
|
|
||||||
JTokenType.Integer => jValue.Value?.ToString() ?? "null",
|
|
||||||
JTokenType.Float => jValue.Value?.ToString() ?? "null",
|
|
||||||
JTokenType.String => $"\"{EscapeCSharpString(jValue.Value?.ToString())}\"",
|
|
||||||
JTokenType.Boolean => jValue.Value?.ToString().ToLower() ?? "null",
|
|
||||||
JTokenType.Null => "null",
|
|
||||||
JTokenType.Undefined => "null",
|
|
||||||
_ => $"UNHANDLED_CASE: {jValue.Type}"
|
|
||||||
},
|
|
||||||
_ => $"UNHANDLED_CASE: {token}"
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
public MappingModel ToMappingModel(IMapping mapping)
|
public MappingModel ToMappingModel(IMapping mapping)
|
||||||
{
|
{
|
||||||
var request = (Request)mapping.RequestMatcher;
|
var request = (Request)mapping.RequestMatcher;
|
||||||
@@ -536,4 +492,49 @@ internal class MappingConverter
|
|||||||
|
|
||||||
return newDictionary;
|
return newDictionary;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static string ConvertJsonToAnonymousObjectDefinition(JToken token, int ind = 0)
|
||||||
|
{
|
||||||
|
return token switch
|
||||||
|
{
|
||||||
|
JArray jArray => FormatArray(jArray, ind),
|
||||||
|
JObject jObject => FormatObject(jObject, ind),
|
||||||
|
JProperty jProperty => $"{jProperty.Name} = {ConvertJsonToAnonymousObjectDefinition(jProperty.Value, ind)}",
|
||||||
|
JValue jValue => jValue.Type switch
|
||||||
|
{
|
||||||
|
JTokenType.None => "null",
|
||||||
|
JTokenType.Integer => jValue.Value?.ToString() ?? "null",
|
||||||
|
JTokenType.Float => jValue.Value?.ToString() ?? "null",
|
||||||
|
JTokenType.String => $"\"{EscapeCSharpString(jValue.Value?.ToString())}\"",
|
||||||
|
JTokenType.Boolean => jValue.Value?.ToString()?.ToLower() ?? "null",
|
||||||
|
JTokenType.Null => "null",
|
||||||
|
JTokenType.Undefined => "null",
|
||||||
|
_ => $"UNHANDLED_CASE: {jValue.Type}"
|
||||||
|
},
|
||||||
|
_ => $"UNHANDLED_CASE: {token}"
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
private static string FormatObject(JObject jObject, int ind)
|
||||||
|
{
|
||||||
|
var indStr = new string(' ', 4 * ind);
|
||||||
|
var indStrSub = new string(' ', 4 * (ind + 1));
|
||||||
|
var items = jObject.Properties().Select(x => ConvertJsonToAnonymousObjectDefinition(x, ind + 1));
|
||||||
|
|
||||||
|
return $"new\r\n{indStr}{{\r\n{indStrSub}{string.Join($",\r\n{indStrSub}", items)}\r\n{indStr}}}";
|
||||||
|
}
|
||||||
|
|
||||||
|
private static string FormatArray(JArray jArray, int ind)
|
||||||
|
{
|
||||||
|
var hasComplexItems = jArray.FirstOrDefault() is JObject or JArray;
|
||||||
|
var items = jArray.Select(x => ConvertJsonToAnonymousObjectDefinition(x, hasComplexItems ? ind + 1 : ind));
|
||||||
|
if (hasComplexItems)
|
||||||
|
{
|
||||||
|
var indStr = new string(' ', 4 * ind);
|
||||||
|
var indStrSub = new string(' ', 4 * (ind + 1));
|
||||||
|
return $"new []\r\n{indStr}{{\r\n{indStrSub}{string.Join($",\r\n{indStrSub}", items)}\r\n{indStr}}}";
|
||||||
|
}
|
||||||
|
|
||||||
|
return $"new [] {{ {string.Join(", ", items)} }}";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user