Fix Sonar issues

This commit is contained in:
Stef Heyenrath
2018-09-06 21:00:33 +02:00
parent 39b1eb8f43
commit 33b96c6af9
2 changed files with 104 additions and 88 deletions

View File

@@ -72,7 +72,7 @@ namespace WireMock.Matchers
switch (input) switch (input)
{ {
case JObject valueAsJObject: case JObject valueAsJObject:
value = valueAsJObject; // valueAsJObject.ToObject<object>(); value = valueAsJObject;
break; break;
default: default:

View File

@@ -32,16 +32,30 @@ namespace WireMock.Util
{ {
if (node.Type == JTokenType.Object) if (node.Type == JTokenType.Object)
{ {
var childLines = new List<string>(); ProcessObject(node, propertyName, lines);
}
else if (node.Type == JTokenType.Array)
{
ProcessArray(node, propertyName, lines);
}
else
{
ProcessItem(node, path, propertyName, lines);
}
}
private static void ProcessObject(JToken node, string propertyName, List<string> lines)
{
var items = new List<string>();
var text = new StringBuilder("new ("); var text = new StringBuilder("new (");
// In case of Object, loop all children. Do a ToArray() to avoid `Collection was modified` exceptions. // In case of Object, loop all children. Do a ToArray() to avoid `Collection was modified` exceptions.
foreach (JProperty child in node.Children<JProperty>().ToArray()) foreach (JProperty child in node.Children<JProperty>().ToArray())
{ {
WalkNode(child.Value, child.Path, child.Name, childLines); WalkNode(child.Value, child.Path, child.Name, items);
} }
text.Append(string.Join(", ", childLines)); text.Append(string.Join(", ", items));
text.Append(")"); text.Append(")");
if (!string.IsNullOrEmpty(propertyName)) if (!string.IsNullOrEmpty(propertyName))
@@ -51,7 +65,8 @@ namespace WireMock.Util
lines.Add(text.ToString()); lines.Add(text.ToString());
} }
else if (node.Type == JTokenType.Array)
private static void ProcessArray(JToken node, string propertyName, List<string> lines)
{ {
var items = new List<string>(); var items = new List<string>();
var text = new StringBuilder("(new [] { "); var text = new StringBuilder("(new [] { ");
@@ -74,7 +89,8 @@ namespace WireMock.Util
lines.Add(text.ToString()); lines.Add(text.ToString());
} }
else
private static void ProcessItem(JToken node, string path, string propertyName, List<string> lines)
{ {
string castText = string.Empty; string castText = string.Empty;
switch (node.Type) switch (node.Type)
@@ -116,7 +132,8 @@ namespace WireMock.Util
break; break;
default: default:
throw new NotSupportedException($"JTokenType '{node.Type}' cannot be converted to a Dynamic Linq cast operator."); throw new NotSupportedException(
$"JTokenType '{node.Type}' cannot be converted to a Dynamic Linq cast operator.");
} }
if (!string.IsNullOrEmpty(propertyName)) if (!string.IsNullOrEmpty(propertyName))
@@ -128,4 +145,3 @@ namespace WireMock.Util
} }
} }
} }
}