From 9bb3e6dbda5af78a2a395d11fb3bb7a04b5c4128 Mon Sep 17 00:00:00 2001 From: Neil Campbell Date: Fri, 5 Sep 2014 09:07:07 +1000 Subject: [PATCH] Removing _comparisonPasses from the HttpBodyComparer as JsonConvert.SerializeObject will throw if there is potential for an infinite loop --- .../MockHttpService/Comparers/HttpBodyComparer.cs | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/PactNet/Mocks/MockHttpService/Comparers/HttpBodyComparer.cs b/PactNet/Mocks/MockHttpService/Comparers/HttpBodyComparer.cs index aae2c335..cb84e279 100644 --- a/PactNet/Mocks/MockHttpService/Comparers/HttpBodyComparer.cs +++ b/PactNet/Mocks/MockHttpService/Comparers/HttpBodyComparer.cs @@ -9,7 +9,6 @@ public class HttpBodyComparer : IHttpBodyComparer { private readonly string _messagePrefix; private readonly IReporter _reporter; - private int _comparisonPasses; public HttpBodyComparer(string messagePrefix, IReporter reporter) { @@ -20,8 +19,6 @@ public HttpBodyComparer(string messagePrefix, IReporter reporter) //TODO: Remove boolean and add "matching" functionality public void Validate(dynamic expected, dynamic actual, bool useStrict = false) { - _comparisonPasses = 0; - if (expected == null) { return; @@ -33,6 +30,8 @@ public void Validate(dynamic expected, dynamic actual, bool useStrict = false) return; } + + //TODO: Maybe look at changing these to JToken.FromObject(...) string expectedJson = JsonConvert.SerializeObject(expected); string actualJson = JsonConvert.SerializeObject(actual); var expectedToken = JsonConvert.DeserializeObject(expectedJson); @@ -53,13 +52,6 @@ public void Validate(dynamic expected, dynamic actual, bool useStrict = false) private bool AssertPropertyValuesMatch(JToken httpBody1, JToken httpBody2) { - _comparisonPasses++; - if (_comparisonPasses > 200) - { - _reporter.ReportError("Too many passes required to compare objects."); - return false; - } - switch (httpBody1.Type) { case JTokenType.Array: