Skip to content

Commit 84f3096

Browse files
committed
Handle the globals for encapuslate field inspection
1 parent 121f3d4 commit 84f3096

File tree

2 files changed

+18
-11
lines changed

2 files changed

+18
-11
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

RubberduckTests/Inspections/EncapsulatePublicFieldInspectionTests.cs

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,18 +7,32 @@
77
namespace RubberduckTests.Inspections
88
{
99
[TestFixture]
10+
[Category("EncapsulatePublicFieldInspection")]
1011
public class EncapsulatePublicFieldInspectionTests
1112
{
1213
[Test]
13-
[Category("Inspections")]
1414
public void PublicField_ReturnsResult()
1515
{
1616
const string inputCode =
1717
@"Public fizz As Boolean";
1818
var vbe = MockVbeBuilder.BuildFromSingleStandardModule(inputCode, out _);
1919
using (var state = MockParser.CreateAndParse(vbe.Object))
2020
{
21+
var inspection = new EncapsulatePublicFieldInspection(state);
22+
var inspectionResults = inspection.GetInspectionResults(CancellationToken.None);
23+
24+
Assert.AreEqual(1, inspectionResults.Count());
25+
}
26+
}
2127

28+
[Test]
29+
public void GlobalField_ReturnsResult()
30+
{
31+
const string inputCode =
32+
@"Global fizz As Boolean";
33+
var vbe = MockVbeBuilder.BuildFromSingleStandardModule(inputCode, out _);
34+
using (var state = MockParser.CreateAndParse(vbe.Object))
35+
{
2236
var inspection = new EncapsulatePublicFieldInspection(state);
2337
var inspectionResults = inspection.GetInspectionResults(CancellationToken.None);
2438

@@ -27,7 +41,6 @@ public void PublicField_ReturnsResult()
2741
}
2842

2943
[Test]
30-
[Category("Inspections")]
3144
public void MultiplePublicFields_ReturnMultipleResult()
3245
{
3346
const string inputCode =
@@ -46,15 +59,13 @@ public void MultiplePublicFields_ReturnMultipleResult()
4659
}
4760

4861
[Test]
49-
[Category("Inspections")]
5062
public void PrivateField_DoesNotReturnResult()
5163
{
5264
const string inputCode =
5365
@"Private fizz As Boolean";
5466
var vbe = MockVbeBuilder.BuildFromSingleStandardModule(inputCode, out _);
5567
using (var state = MockParser.CreateAndParse(vbe.Object))
5668
{
57-
5869
var inspection = new EncapsulatePublicFieldInspection(state);
5970
var inspectionResults = inspection.GetInspectionResults(CancellationToken.None);
6071

@@ -63,7 +74,6 @@ public void PrivateField_DoesNotReturnResult()
6374
}
6475

6576
[Test]
66-
[Category("Inspections")]
6777
public void PublicNonField_DoesNotReturnResult()
6878
{
6979
const string inputCode =
@@ -72,7 +82,6 @@ public void PublicNonField_DoesNotReturnResult()
7282
var vbe = MockVbeBuilder.BuildFromSingleStandardModule(inputCode, out _);
7383
using (var state = MockParser.CreateAndParse(vbe.Object))
7484
{
75-
7685
var inspection = new EncapsulatePublicFieldInspection(state);
7786
var inspectionResults = inspection.GetInspectionResults(CancellationToken.None);
7887

@@ -81,7 +90,6 @@ public void PublicNonField_DoesNotReturnResult()
8190
}
8291

8392
[Test]
84-
[Category("Inspections")]
8593
public void PublicField_Ignored_DoesNotReturnResult()
8694
{
8795
const string inputCode =
@@ -90,7 +98,6 @@ public void PublicField_Ignored_DoesNotReturnResult()
9098
var vbe = MockVbeBuilder.BuildFromSingleStandardModule(inputCode, out _);
9199
using (var state = MockParser.CreateAndParse(vbe.Object))
92100
{
93-
94101
var inspection = new EncapsulatePublicFieldInspection(state);
95102
var inspectionResults = inspection.GetInspectionResults(CancellationToken.None);
96103

@@ -99,7 +106,6 @@ public void PublicField_Ignored_DoesNotReturnResult()
99106
}
100107

101108
[Test]
102-
[Category("Inspections")]
103109
public void InspectionName()
104110
{
105111
const string inspectionName = "EncapsulatePublicFieldInspection";

0 commit comments

Comments
 (0)