Lucene.Net.Tests.Support.TestApiConsistency: Added support for filtering public fields via regex
diff --git a/src/Lucene.Net.TestFramework/Support/ApiScanTestBase.cs b/src/Lucene.Net.TestFramework/Support/ApiScanTestBase.cs
index 1a48b30..2946de2 100644
--- a/src/Lucene.Net.TestFramework/Support/ApiScanTestBase.cs
+++ b/src/Lucene.Net.TestFramework/Support/ApiScanTestBase.cs
@@ -138,10 +138,15 @@
"Private field names should be camelCase.");
}
- //[Test, LuceneNetSpecific]
public virtual void TestPublicFields(Type typeFromTargetAssembly)
{
- var names = GetInvalidPublicFields(typeFromTargetAssembly.Assembly);
+ TestPublicFields(typeFromTargetAssembly, null);
+ }
+
+ //[Test, LuceneNetSpecific]
+ public virtual void TestPublicFields(Type typeFromTargetAssembly, string exceptionRegex)
+ {
+ var names = GetInvalidPublicFields(typeFromTargetAssembly.Assembly, exceptionRegex);
//if (VERBOSE)
//{
@@ -433,11 +438,6 @@
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)))
- //{
- // result.Add(name);
- //}
if (!IsException(name, exceptionRegex))
{
result.Add(name);
@@ -495,7 +495,7 @@
/// </summary>
/// <param name="assembly"></param>
/// <returns></returns>
- private static IEnumerable<string> GetInvalidPublicFields(Assembly assembly)
+ private static IEnumerable<string> GetInvalidPublicFields(Assembly assembly, string exceptionRegex)
{
var result = new List<string>();
@@ -529,7 +529,11 @@
if (field.IsPublic && field.DeclaringType.Equals(c.UnderlyingSystemType))
{
- result.Add(string.Concat(c.FullName, ".", field.Name));
+ var name = string.Concat(c.FullName, ".", field.Name);
+ if (!IsException(name, exceptionRegex))
+ {
+ result.Add(name);
+ }
}
}
}
diff --git a/src/Lucene.Net.Tests/Support/TestApiConsistency.cs b/src/Lucene.Net.Tests/Support/TestApiConsistency.cs
index 2a96e22..00728a9 100644
--- a/src/Lucene.Net.Tests/Support/TestApiConsistency.cs
+++ b/src/Lucene.Net.Tests/Support/TestApiConsistency.cs
@@ -38,14 +38,14 @@
[TestCase(typeof(Lucene.Net.Analysis.Analyzer))]
public override void TestPrivateFieldNames(Type typeFromTargetAssembly)
{
- base.TestPrivateFieldNames(typeFromTargetAssembly, @"^Lucene\.Net\.Support\.(?:LurchTable|HashUtilities|ConcurrentHashSet|PlatformHelper)");
+ base.TestPrivateFieldNames(typeFromTargetAssembly, @"^Lucene\.Net\.Support\.(?:ConcurrentHashSet|PlatformHelper)");
}
[Test, LuceneNetSpecific]
[TestCase(typeof(Lucene.Net.Analysis.Analyzer))]
public override void TestPublicFields(Type typeFromTargetAssembly)
{
- base.TestPublicFields(typeFromTargetAssembly);
+ base.TestPublicFields(typeFromTargetAssembly, @"^Lucene\.Net\.Util\.(?:LightWeight|Disposable)ThreadLocal`1\+(?:LocalState|CurrentThreadState)");
}
[Test, LuceneNetSpecific]