Skip to content

Commit bcce039

Browse files
authored
Merge pull request #5212 from bclothier/FixAsserts
Fix the NotSequenceEquals and EncapuslatePublicInspection logic
2 parents 5fcc213 + 01867d6 commit bcce039

File tree

3 files changed

+24
-20
lines changed

3 files changed

+24
-20
lines changed

Rubberduck.CodeAnalysis/Inspections/Concrete/EncapsulatePublicFieldInspection.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,9 @@ protected override IEnumerable<IInspectionResult> DoGetInspectionResults()
4040
{
4141
// we're creating a public field for every control on a form, needs to be ignored.
4242
var fields = State.DeclarationFinder.UserDeclarations(DeclarationType.Variable)
43-
.Where(item => item.Accessibility == Accessibility.Public
44-
&& (item.DeclarationType != DeclarationType.Control))
43+
.Where(item => item.DeclarationType != DeclarationType.Control
44+
&& (item.Accessibility == Accessibility.Public ||
45+
item.Accessibility == Accessibility.Global))
4546
.ToList();
4647

4748
return fields

Rubberduck.Main/ComClientLibrary/UnitTesting/AssertClass.cs

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -305,19 +305,12 @@ protected void TestArraySequenceEquity(Array expected, Array actual, string mess
305305

306306
var flattenedExpected = expected.Cast<object>().ToList();
307307
var flattenedActual = actual.Cast<object>().ToList();
308-
if (!flattenedActual.SequenceEqual(flattenedExpected, comparer))
309-
{
310-
if (equals)
311-
{
312-
AssertHandler.OnAssertFailed(message, methodName);
313-
}
314-
AssertHandler.OnAssertSucceeded();
315-
}
316-
317-
if (!equals)
308+
if (equals ^ flattenedActual.SequenceEqual(flattenedExpected, comparer))
318309
{
319310
AssertHandler.OnAssertFailed(message, methodName);
311+
return;
320312
}
313+
321314
AssertHandler.OnAssertSucceeded();
322315
}
323316

RubberduckTests/Inspections/EncapsulatePublicFieldInspectionTests.cs

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,20 +7,28 @@
77
namespace RubberduckTests.Inspections
88
{
99
[TestFixture]
10+
[Category("EncapsulatePublicFieldInspection")]
1011
public class EncapsulatePublicFieldInspectionTests : InspectionTestsBase
1112
{
1213
[Test]
13-
[Category("Inspections")]
1414
public void PublicField_ReturnsResult()
1515
{
1616
const string inputCode =
1717
@"Public fizz As Boolean";
18+
19+
Assert.AreEqual(1, InspectionResultsForStandardModule(inputCode).Count());
20+
}
1821

22+
[Test]
23+
public void GlobalField_ReturnsResult()
24+
{
25+
const string inputCode =
26+
@"Global fizz As Boolean";
27+
1928
Assert.AreEqual(1, InspectionResultsForStandardModule(inputCode).Count());
2029
}
2130

2231
[Test]
23-
[Category("Inspections")]
2432
public void MultiplePublicFields_ReturnMultipleResult()
2533
{
2634
const string inputCode =
@@ -32,39 +40,41 @@ public void MultiplePublicFields_ReturnMultipleResult()
3240
}
3341

3442
[Test]
35-
[Category("Inspections")]
3643
public void PrivateField_DoesNotReturnResult()
3744
{
3845
const string inputCode =
3946
@"Private fizz As Boolean";
40-
4147
Assert.AreEqual(0, InspectionResultsForStandardModule(inputCode).Count());
4248
}
4349

4450
[Test]
45-
[Category("Inspections")]
4651
public void PublicNonField_DoesNotReturnResult()
4752
{
4853
const string inputCode =
4954
@"Public Sub Foo(ByRef arg1 As String)
5055
End Sub";
51-
5256
Assert.AreEqual(0, InspectionResultsForStandardModule(inputCode).Count());
5357
}
5458

5559
[Test]
56-
[Category("Inspections")]
5760
public void PublicField_Ignored_DoesNotReturnResult()
5861
{
5962
const string inputCode =
6063
@"'@Ignore EncapsulatePublicField
6164
Public fizz As Boolean";
65+
Assert.AreEqual(0, InspectionResultsForStandardModule(inputCode).Count());
66+
}
6267

68+
[Test]
69+
public void GlobalField_Ignored_DoesNotReturnResult()
70+
{
71+
const string inputCode =
72+
@"'@Ignore EncapsulatePublicField
73+
Global fizz As Boolean";
6374
Assert.AreEqual(0, InspectionResultsForStandardModule(inputCode).Count());
6475
}
6576

6677
[Test]
67-
[Category("Inspections")]
6878
public void InspectionName()
6979
{
7080
var inspection = new EncapsulatePublicFieldInspection(null);

0 commit comments

Comments
 (0)