You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucenenet.apache.org by ni...@apache.org on 2017/02/08 14:32:25 UTC

[46/53] [abbrv] lucenenet git commit: Lucene.Net.TestFramework.Util.ApiScanTestBase.TestForMembersAcceptingOrReturningListOrDictionary: Added functionality to exclude members based on a regex match

Lucene.Net.TestFramework.Util.ApiScanTestBase.TestForMembersAcceptingOrReturningListOrDictionary: Added functionality to exclude members based on a regex match


Project: http://git-wip-us.apache.org/repos/asf/lucenenet/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucenenet/commit/96dd76c0
Tree: http://git-wip-us.apache.org/repos/asf/lucenenet/tree/96dd76c0
Diff: http://git-wip-us.apache.org/repos/asf/lucenenet/diff/96dd76c0

Branch: refs/heads/api-work
Commit: 96dd76c02f660bb475ae7e08a649f2518d11c618
Parents: 1200b29
Author: Shad Storhaug <sh...@shadstorhaug.com>
Authored: Wed Feb 8 17:40:26 2017 +0700
Committer: Shad Storhaug <sh...@shadstorhaug.com>
Committed: Wed Feb 8 21:08:25 2017 +0700

----------------------------------------------------------------------
 .../Util/ApiScanTestBase.cs                     | 62 ++++++++++++++++----
 src/Lucene.Net.Tests/core/TestApiConsistency.cs |  2 +-
 2 files changed, 53 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucenenet/blob/96dd76c0/src/Lucene.Net.TestFramework/Util/ApiScanTestBase.cs
----------------------------------------------------------------------
diff --git a/src/Lucene.Net.TestFramework/Util/ApiScanTestBase.cs b/src/Lucene.Net.TestFramework/Util/ApiScanTestBase.cs
index 3bbdf7a..fc8b96b 100644
--- a/src/Lucene.Net.TestFramework/Util/ApiScanTestBase.cs
+++ b/src/Lucene.Net.TestFramework/Util/ApiScanTestBase.cs
@@ -332,7 +332,13 @@ namespace Lucene.Net.Util
         //[Test, LuceneNetSpecific]
         public virtual void TestForMembersAcceptingOrReturningIEnumerable(Type typeFromTargetAssembly)
         {
-            var names = GetMembersAcceptingOrReturningType(typeof(IEnumerable<>), typeFromTargetAssembly.Assembly, false);
+            TestForMembersAcceptingOrReturningIEnumerable(typeFromTargetAssembly, null);
+        }
+
+        //[Test, LuceneNetSpecific]
+        public virtual void TestForMembersAcceptingOrReturningIEnumerable(Type typeFromTargetAssembly, string exceptionRegex)
+        {
+            var names = GetMembersAcceptingOrReturningType(typeof(IEnumerable<>), typeFromTargetAssembly.Assembly, false, exceptionRegex);
 
             //if (VERBOSE)
             //{
@@ -348,9 +354,15 @@ namespace Lucene.Net.Util
         //[Test, LuceneNetSpecific]
         public virtual void TestForMembersAcceptingOrReturningListOrDictionary(Type typeFromTargetAssembly)
         {
+            TestForMembersAcceptingOrReturningListOrDictionary(typeFromTargetAssembly, null);
+        }
+
+        //[Test, LuceneNetSpecific]
+        public virtual void TestForMembersAcceptingOrReturningListOrDictionary(Type typeFromTargetAssembly, string exceptionRegex)
+        {
             var names = new List<string>();
-            names.AddRange(GetMembersAcceptingOrReturningType(typeof(List<>), typeFromTargetAssembly.Assembly, true));
-            names.AddRange(GetMembersAcceptingOrReturningType(typeof(Dictionary<,>), typeFromTargetAssembly.Assembly, true));
+            names.AddRange(GetMembersAcceptingOrReturningType(typeof(List<>), typeFromTargetAssembly.Assembly, true, exceptionRegex));
+            names.AddRange(GetMembersAcceptingOrReturningType(typeof(Dictionary<,>), typeFromTargetAssembly.Assembly, true, exceptionRegex));
 
             //if (VERBOSE)
             //{
@@ -389,8 +401,12 @@ namespace Lucene.Net.Util
                     if ((field.IsPrivate || field.IsAssembly) && !PrivateFieldName.IsMatch(field.Name) && field.DeclaringType.Equals(c.UnderlyingSystemType))
                     {
                         var name = string.Concat(c.FullName, ".", field.Name);
-                        bool hasExceptions = !string.IsNullOrWhiteSpace(exceptionRegex);
-                        if (!hasExceptions || (hasExceptions && !Regex.IsMatch(name, exceptionRegex)))
+                        //bool hasExceptions = !string.IsNullOrWhiteSpace(exceptionRegex);
+                        //if (!hasExceptions || (hasExceptions && !Regex.IsMatch(name, exceptionRegex)))
+                        //{
+                        //    result.Add(name);
+                        //}
+                        if (!IsException(name, exceptionRegex))
                         {
                             result.Add(name);
                         }
@@ -929,6 +945,12 @@ namespace Lucene.Net.Util
                 (setMethod != null && !setMethod.IsPrivate));
         }
 
+        private static bool IsException(string name, string exceptionRegex)
+        {
+            bool hasExceptions = !string.IsNullOrWhiteSpace(exceptionRegex);
+            return (hasExceptions && Regex.IsMatch(name, exceptionRegex));
+        }
+
         /// <summary>
         /// Some parameters were incorrectly changed from List to IEnumerable during the port. This is
         /// to track down constructor and method parameters and property and method return types
@@ -936,7 +958,7 @@ namespace Lucene.Net.Util
         /// </summary>
         /// <param name="assembly"></param>
         /// <returns></returns>
-        private static IEnumerable<string> GetMembersAcceptingOrReturningType(Type lookFor, Assembly assembly, bool publiclyVisibleOnly)
+        private static IEnumerable<string> GetMembersAcceptingOrReturningType(Type lookFor, Assembly assembly, bool publiclyVisibleOnly, string exceptionRegex)
         {
             var result = new List<string>();
 
@@ -966,7 +988,12 @@ namespace Lucene.Net.Util
                                     && method.ReturnParameter.ParameterType.IsGenericType
                                     && method.ReturnParameter.ParameterType.GetGenericTypeDefinition().IsAssignableFrom(lookFor))
                                 {
-                                    result.Add(string.Concat(t.FullName, ".", member.Name, "()"));
+                                    var name = string.Concat(t.FullName, ".", member.Name, "()");
+
+                                    if (!IsException(name, exceptionRegex))
+                                    {
+                                        result.Add(name);
+                                    }
                                 }
 
                                 var parameters = method.GetParameters();
@@ -977,7 +1004,12 @@ namespace Lucene.Net.Util
                                         && parameter.ParameterType.GetGenericTypeDefinition().IsAssignableFrom(lookFor)
                                         && member.DeclaringType.Equals(t.UnderlyingSystemType))
                                     {
-                                        result.Add(string.Concat(t.FullName, ".", member.Name, "()", " -parameter- ", parameter.Name));
+                                        var name = string.Concat(t.FullName, ".", member.Name, "()", " -parameter- ", parameter.Name);
+
+                                        if (!IsException(name, exceptionRegex))
+                                        {
+                                            result.Add(name);
+                                        }
                                     }
                                 }
                             }
@@ -996,7 +1028,12 @@ namespace Lucene.Net.Util
                                         && parameter.ParameterType.GetGenericTypeDefinition().IsAssignableFrom(lookFor)
                                         && member.DeclaringType.Equals(t.UnderlyingSystemType))
                                     {
-                                        result.Add(string.Concat(t.FullName, ".", member.Name, "()", " -parameter- ", parameter.Name));
+                                        var name = string.Concat(t.FullName, ".", member.Name, "()", " -parameter- ", parameter.Name);
+
+                                        if (!IsException(name, exceptionRegex))
+                                        {
+                                            result.Add(name);
+                                        }
                                     }
                                 }
                             }
@@ -1006,7 +1043,12 @@ namespace Lucene.Net.Util
                             && ((PropertyInfo)member).PropertyType.GetGenericTypeDefinition().IsAssignableFrom(lookFor)
                             && (!publiclyVisibleOnly || IsNonPrivateProperty((PropertyInfo)member)))
                         {
-                            result.Add(string.Concat(t.FullName, ".", member.Name));
+                            var name = string.Concat(string.Concat(t.FullName, ".", member.Name));
+
+                            if (!IsException(name, exceptionRegex))
+                            {
+                                result.Add(name);
+                            }
                         }
                         //else if (member.MemberType == MemberTypes.Field
                         //    && ((FieldInfo)member).FieldType.IsGenericType

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/96dd76c0/src/Lucene.Net.Tests/core/TestApiConsistency.cs
----------------------------------------------------------------------
diff --git a/src/Lucene.Net.Tests/core/TestApiConsistency.cs b/src/Lucene.Net.Tests/core/TestApiConsistency.cs
index ed6c3e1..f0dde4a 100644
--- a/src/Lucene.Net.Tests/core/TestApiConsistency.cs
+++ b/src/Lucene.Net.Tests/core/TestApiConsistency.cs
@@ -121,7 +121,7 @@ namespace Lucene.Net
         [TestCase(typeof(Lucene.Net.Analysis.Analyzer))]
         public override void TestForMembersAcceptingOrReturningListOrDictionary(Type typeFromTargetAssembly)
         {
-            base.TestForMembersAcceptingOrReturningListOrDictionary(typeFromTargetAssembly);
+            base.TestForMembersAcceptingOrReturningListOrDictionary(typeFromTargetAssembly, @"Support\.Arrays\.AsList");
         }
     }
 }