1
+ using System . Linq ;
2
+ using Microsoft . Vbe . Interop ;
3
+ using Microsoft . VisualStudio . TestTools . UnitTesting ;
4
+ using Moq ;
5
+ using Rubberduck . Inspections ;
6
+ using Rubberduck . Parsing . VBA ;
7
+ using Rubberduck . VBEditor . VBEHost ;
8
+ using RubberduckTests . Mocks ;
9
+
10
+ namespace RubberduckTests . Inspections
11
+ {
12
+ [ TestClass ]
13
+ public class MultipleFolderAnnotationsInspectionTests
14
+ {
15
+ [ TestMethod ]
16
+ [ TestCategory ( "Inspections" ) ]
17
+ public void NoFolderAnnotation_NoResult ( )
18
+ {
19
+ const string inputCode =
20
+ @"Public Sub Foo()
21
+ Const const1 As Integer = 9
22
+ End Sub" ;
23
+
24
+ //Arrange
25
+ var builder = new MockVbeBuilder ( ) ;
26
+ VBComponent component ;
27
+ var vbe = builder . BuildFromSingleStandardModule ( inputCode , out component ) ;
28
+ var mockHost = new Mock < IHostApplication > ( ) ;
29
+ mockHost . SetupAllProperties ( ) ;
30
+ var parser = MockParser . Create ( vbe . Object , new RubberduckParserState ( ) ) ;
31
+
32
+ parser . Parse ( ) ;
33
+ if ( parser . State . Status >= ParserState . Error ) { Assert . Inconclusive ( "Parser Error" ) ; }
34
+
35
+ var inspection = new MultipleFolderAnnotationsInspection ( parser . State ) ;
36
+ var inspectionResults = inspection . GetInspectionResults ( ) ;
37
+
38
+ Assert . IsFalse ( inspectionResults . Any ( ) ) ;
39
+ }
40
+
41
+ [ TestMethod ]
42
+ [ TestCategory ( "Inspections" ) ]
43
+ public void SingleFolderAnnotation_NoResult ( )
44
+ {
45
+ const string inputCode =
46
+ @"'@Folder ""Foo""
47
+ Public Sub Foo()
48
+ Const const1 As Integer = 9
49
+ End Sub" ;
50
+
51
+ //Arrange
52
+ var builder = new MockVbeBuilder ( ) ;
53
+ VBComponent component ;
54
+ var vbe = builder . BuildFromSingleStandardModule ( inputCode , out component ) ;
55
+ var mockHost = new Mock < IHostApplication > ( ) ;
56
+ mockHost . SetupAllProperties ( ) ;
57
+ var parser = MockParser . Create ( vbe . Object , new RubberduckParserState ( ) ) ;
58
+
59
+ parser . Parse ( ) ;
60
+ if ( parser . State . Status >= ParserState . Error ) { Assert . Inconclusive ( "Parser Error" ) ; }
61
+
62
+ var inspection = new MultipleFolderAnnotationsInspection ( parser . State ) ;
63
+ var inspectionResults = inspection . GetInspectionResults ( ) ;
64
+
65
+ Assert . IsFalse ( inspectionResults . Any ( ) ) ;
66
+ }
67
+
68
+ [ TestMethod ]
69
+ [ TestCategory ( "Inspections" ) ]
70
+ public void MultipleFolderAnnotations_ReturnsResult ( )
71
+ {
72
+ const string inputCode =
73
+ @"'@Folder ""Foo.Bar""
74
+ '@Folder ""Biz.Buz""
75
+ Public Sub Foo()
76
+ Const const1 As Integer = 9
77
+ End Sub" ;
78
+
79
+ //Arrange
80
+ var builder = new MockVbeBuilder ( ) ;
81
+ VBComponent component ;
82
+ var vbe = builder . BuildFromSingleStandardModule ( inputCode , out component ) ;
83
+ var mockHost = new Mock < IHostApplication > ( ) ;
84
+ mockHost . SetupAllProperties ( ) ;
85
+ var parser = MockParser . Create ( vbe . Object , new RubberduckParserState ( ) ) ;
86
+
87
+ parser . Parse ( ) ;
88
+ if ( parser . State . Status >= ParserState . Error ) { Assert . Inconclusive ( "Parser Error" ) ; }
89
+
90
+ var inspection = new ConstantNotUsedInspection ( parser . State ) ;
91
+ var inspectionResults = inspection . GetInspectionResults ( ) ;
92
+
93
+ Assert . AreEqual ( 1 , inspectionResults . Count ( ) ) ;
94
+ }
95
+ }
96
+ }
0 commit comments