This is an automated email from the ASF dual-hosted git repository.

nightowl888 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/lucenenet.git

commit 837142507fa10a4096e3c431866727419a3ff096
Author: Shad Storhaug <[email protected]>
AuthorDate: Sun Jun 28 15:22:47 2020 +0700

    Lucene.Net.TestFramework: refactored collection asserts so aggressive mode 
can be passed as an optional parameter (true by default)
---
 .../Support/TestFramework/Assert.cs                | 89 +++++++++++++++++++---
 .../Support/JavaCompatibility/LuceneTestCase.cs    | 25 +++---
 2 files changed, 95 insertions(+), 19 deletions(-)

diff --git a/src/Lucene.Net.TestFramework.NUnit/Support/TestFramework/Assert.cs 
b/src/Lucene.Net.TestFramework.NUnit/Support/TestFramework/Assert.cs
index b03a80b..303ce85 100644
--- a/src/Lucene.Net.TestFramework.NUnit/Support/TestFramework/Assert.cs
+++ b/src/Lucene.Net.TestFramework.NUnit/Support/TestFramework/Assert.cs
@@ -4,7 +4,9 @@ using System;
 using System.Collections;
 using System.Collections.Generic;
 using System.Linq;
+using J2N.Text;
 using NUnit.Framework.Constraints;
+using JCG = J2N.Collections.Generic;
 using _NUnit = NUnit.Framework;
 
 namespace Lucene.Net.TestFramework
@@ -330,6 +332,84 @@ namespace Lucene.Net.TestFramework
             _NUnit.Assert.True(expected.Equals(actual), message);
         }
 
+
+        private static JCG.SetEqualityComparer<T> GetSetComparer<T>(bool 
aggressive)
+        {
+            return aggressive
+                ? JCG.SetEqualityComparer<T>.Aggressive
+                : JCG.SetEqualityComparer<T>.Default;
+        }
+
+        private static JCG.ListEqualityComparer<T> GetListComparer<T>(bool 
aggressive)
+        {
+            return aggressive
+                ? JCG.ListEqualityComparer<T>.Aggressive
+                : JCG.ListEqualityComparer<T>.Default;
+        }
+
+        private static JCG.DictionaryEqualityComparer<TKey, TValue> 
GetDictionaryComparer<TKey, TValue>(bool aggressive)
+        {
+            return aggressive
+                ? JCG.DictionaryEqualityComparer<TKey, TValue>.Aggressive
+                : JCG.DictionaryEqualityComparer<TKey, TValue>.Default;
+        }
+
+        public static string FormatCollection(object collection)
+        {
+            return string.Format(StringFormatter.CurrentCulture, "{0}", 
collection);
+        }
+
+        public static void AreEqual<T>(ISet<T> expected, ISet<T> actual, bool 
aggressive = true)
+        {
+            if (!GetSetComparer<T>(aggressive).Equals(expected, actual))
+            {
+                _NUnit.Assert.Fail("Expected: '{0}', Actual: '{1}'", 
FormatCollection(expected), FormatCollection(actual));
+            }
+        }
+
+        public static void AreEqual<T>(ISet<T> expected, ISet<T> actual, bool 
aggressive, string message, params object[] args)
+        {
+            if (!GetSetComparer<T>(aggressive).Equals(expected, actual))
+            {
+                _NUnit.Assert.Fail(message, args);
+            }
+        }
+
+        public static void AreEqual<T>(IList<T> expected, IList<T> actual, 
bool aggressive = true)
+        {
+            if (!GetListComparer<T>(aggressive).Equals(expected, actual))
+            {
+                _NUnit.Assert.Fail("Expected: '{0}', Actual: '{1}'", 
FormatCollection(expected), FormatCollection(actual));
+            }
+
+        }
+
+        public static void AreEqual<T>(IList<T> expected, IList<T> actual, 
bool aggressive, string message, params object[] args)
+        {
+            if (!GetListComparer<T>(aggressive).Equals(expected, actual))
+            {
+                _NUnit.Assert.Fail(message, args);
+            }
+        }
+
+        public static void AreEqual<TKey, TValue>(IDictionary<TKey, TValue> 
expected, IDictionary<TKey, TValue> actual, bool aggressive = true)
+        {
+            if (!GetDictionaryComparer<TKey, 
TValue>(aggressive).Equals(expected, actual))
+            {
+                _NUnit.Assert.Fail("Expected: '{0}', Actual: '{1}'", 
FormatCollection(expected), FormatCollection(actual));
+            }
+
+        } 
+
+        public static void AreEqual<TKey, TValue>(IDictionary<TKey, TValue> 
expected, IDictionary<TKey, TValue> actual, bool aggressive, string message, 
params object[] args)
+        {
+            if (!GetDictionaryComparer<TKey, 
TValue>(aggressive).Equals(expected, actual))
+            {
+                _NUnit.Assert.Fail(message, args);
+            }
+        }
+
+
         // From CollectionAssert
         public static void AreEqual<T>(T[] expected, T[] actual)
         {
@@ -352,15 +432,6 @@ namespace Lucene.Net.TestFramework
             }
         }
 
-        public static void AreEqual<T, S>(IDictionary<T, S> expected, 
IDictionary<T, S> actual)
-        {
-            AreEqual(expected.Count, actual.Count);
-            foreach (var key in expected.Keys)
-            {
-                AreEqual(expected[key], actual[key]);
-            }
-        }
-
         // From CollectionAssert
         public static void AreEqual(ICollection expected, ICollection actual)
         {
diff --git 
a/src/Lucene.Net.TestFramework/Support/JavaCompatibility/LuceneTestCase.cs 
b/src/Lucene.Net.TestFramework/Support/JavaCompatibility/LuceneTestCase.cs
index d02752f..e267119 100644
--- a/src/Lucene.Net.TestFramework/Support/JavaCompatibility/LuceneTestCase.cs
+++ b/src/Lucene.Net.TestFramework/Support/JavaCompatibility/LuceneTestCase.cs
@@ -138,24 +138,24 @@ namespace Lucene.Net.Util
             Assert.AreEqual(d1, d2, delta, msg);
         }
 
-        internal static void assertEquals<T>(ISet<T> expected, ISet<T> actual)
+        internal static void assertEquals<T>(ISet<T> expected, ISet<T> actual, 
bool aggressive = true)
         {
-            Assert.True(JCG.SetEqualityComparer<T>.Aggressive.Equals(expected, 
actual));
+            Assert.AreEqual(expected, actual, aggressive);
         }
 
-        internal static void assertEquals<T>(string message, ISet<T> expected, 
ISet<T> actual)
+        internal static void assertEquals<T>(string message, ISet<T> expected, 
ISet<T> actual, bool aggressive = true)
         {
-            Assert.True(JCG.SetEqualityComparer<T>.Aggressive.Equals(expected, 
actual), message);
+            Assert.AreEqual(expected, actual, aggressive, message);
         }
 
-        internal static void assertEquals<T>(IList<T> expected, IList<T> 
actual)
+        internal static void assertEquals<T>(IList<T> expected, IList<T> 
actual, bool aggressive = true)
         {
-            
Assert.True(JCG.ListEqualityComparer<T>.Aggressive.Equals(expected, actual));
+            Assert.AreEqual(expected, actual, aggressive);
         }
 
-        internal static void assertEquals<T>(string message, IList<T> 
expected, IList<T> actual)
+        internal static void assertEquals<T>(string message, IList<T> 
expected, IList<T> actual, bool aggressive = true)
         {
-            Assert.True(JCG.SetEqualityComparer<T>.Aggressive.Equals(expected, 
actual), message);
+            Assert.AreEqual(expected, actual, aggressive, message);
         }
 
         internal static void assertEquals<T>(T[] expected, T[] actual)
@@ -168,9 +168,14 @@ namespace Lucene.Net.Util
             Assert.AreEqual(expected, actual, message);
         }
 
-        internal static void assertEquals<T, S>(IDictionary<T, S> expected, 
IDictionary<T, S> actual)
+        internal static void assertEquals<TKey, TValue>(IDictionary<TKey, 
TValue> expected, IDictionary<TKey, TValue> actual, bool aggressive = true)
         {
-            Assert.AreEqual(expected, actual);
+            Assert.AreEqual(expected, actual, aggressive);
+        }
+
+        internal static void assertEquals<TKey, TValue>(string message, 
IDictionary<TKey, TValue> expected, IDictionary<TKey, TValue> actual, bool 
aggressive = true)
+        {
+            Assert.AreEqual(expected, actual, aggressive, message);
         }
 
         internal static void assertNotSame(object unexpected, object actual)

Reply via email to