13
13
using System . Collections . Generic ;
14
14
using System . Linq ;
15
15
using System . Threading ;
16
- using Antlr4 . Runtime . Tree ;
17
16
using Moq ;
18
- using Rubberduck . Parsing . VBA . Parsing ;
19
17
using Rubberduck . VBEditor ;
20
18
using Rubberduck . VBEditor . Extensions ;
21
19
@@ -2462,8 +2460,9 @@ End Sub
2462
2460
IEnumerable < IInspectionResult > actualResults ;
2463
2461
using ( var state = MockParser . CreateAndParse ( vbe . Object ) )
2464
2462
{
2465
- var factoryProvider = SpecialValueDeclarationEvaluatorFactoryProvider ( TestGetValuedDeclaration ) ;
2466
- var inspection = new UnreachableCaseInspection ( state , factoryProvider ) ;
2463
+ var factoryProvider = FactoryProvider ;
2464
+ var parseTreeVisitor = TestParseTreeValueVisitor ( TestGetValuedDeclaration ) ;
2465
+ var inspection = new UnreachableCaseInspection ( state , factoryProvider , parseTreeVisitor ) ;
2467
2466
2468
2467
WalkTrees ( inspection , state ) ;
2469
2468
actualResults = inspection . GetInspectionResults ( CancellationToken . None ) ;
@@ -2514,8 +2513,9 @@ End Sub
2514
2513
IEnumerable < IInspectionResult > actualResults ;
2515
2514
using ( var state = MockParser . CreateAndParse ( vbe . Object ) )
2516
2515
{
2517
- var factoryProvider = SpecialValueDeclarationEvaluatorFactoryProvider ( TestGetValuedDeclaration ) ;
2518
- var inspection = new UnreachableCaseInspection ( state , factoryProvider ) ;
2516
+ var factoryProvider = FactoryProvider ;
2517
+ var parseTreeVisitor = TestParseTreeValueVisitor ( TestGetValuedDeclaration ) ;
2518
+ var inspection = new UnreachableCaseInspection ( state , factoryProvider , parseTreeVisitor ) ;
2519
2519
2520
2520
WalkTrees ( inspection , state ) ;
2521
2521
actualResults = inspection . GetInspectionResults ( CancellationToken . None ) ;
@@ -2530,27 +2530,6 @@ End Sub
2530
2530
private IUnreachableCaseInspectionFactoryProvider FactoryProvider => _factoryProvider ?? ( _factoryProvider = new UnreachableCaseInspectionFactoryProvider ( ) ) ;
2531
2531
2532
2532
private IUnreachableCaseInspectorFactory UnreachableCaseInspectorFactory => FactoryProvider . CreateIUnreachableInspectorFactory ( ) ;
2533
- private IParseTreeValueVisitorFactory ParseTreeValueVisitorFactory => FactoryProvider . CreateParseTreeValueVisitorFactory ( ) ;
2534
-
2535
- private IUnreachableCaseInspectionFactoryProvider SpecialValueDeclarationEvaluatorFactoryProvider ( Func < Declaration , ( bool , string , string ) > valueDeclarationEvaluator )
2536
- {
2537
- var baseFactoryProvider = FactoryProvider ;
2538
- var factoryProviderMock = new Mock < IUnreachableCaseInspectionFactoryProvider > ( ) ;
2539
- factoryProviderMock . Setup ( m => m . CreateIParseTreeValueFactory ( ) ) . Returns ( ( ) => baseFactoryProvider . CreateIParseTreeValueFactory ( ) ) ;
2540
- factoryProviderMock . Setup ( m => m . CreateIUnreachableInspectorFactory ( ) ) . Returns ( ( ) => baseFactoryProvider . CreateIUnreachableInspectorFactory ( ) ) ;
2541
- factoryProviderMock . Setup ( m => m . CreateParseTreeValueVisitorFactory ( ) ) . Returns ( ( ) =>
2542
- SpecialValueDeclarationEvaluatorParseTreeValueVisitorFactory ( baseFactoryProvider . CreateIParseTreeValueFactory ( ) , valueDeclarationEvaluator ) ) ;
2543
- return factoryProviderMock . Object ;
2544
- }
2545
-
2546
- private IParseTreeValueVisitorFactory SpecialValueDeclarationEvaluatorParseTreeValueVisitorFactory ( IParseTreeValueFactory valueFactory , Func < Declaration , ( bool , string , string ) > valueDeclarationEvaluator )
2547
- {
2548
- var factoryMock = new Mock < IParseTreeValueVisitorFactory > ( ) ;
2549
- factoryMock . Setup ( m => m . Create ( It . IsAny < Func < QualifiedModuleName , ParserRuleContext , ( bool success , IdentifierReference idRef ) > > ( ) ) )
2550
- . Returns < Func < QualifiedModuleName , ParserRuleContext , ( bool success , IdentifierReference idRef ) > > ( ( identifierReferenceRetriever ) =>
2551
- new ParseTreeValueVisitor ( valueFactory , identifierReferenceRetriever , valueDeclarationEvaluator ) ) ;
2552
- return factoryMock . Object ;
2553
- }
2554
2533
2555
2534
private static Dictionary < string , ( string , string ) > _vbConstConversions = new Dictionary < string , ( string , string ) > ( )
2556
2535
{
@@ -2637,17 +2616,24 @@ private IParseTreeVisitorResults GetParseTreeValueResults(string inputCode, out
2637
2616
var ( parseTreeModule , moduleParseTree ) = state . ParseTrees
2638
2617
. First ( pt => pt . Value is ParserRuleContext ) ;
2639
2618
selectStmt = ( ( ParserRuleContext ) moduleParseTree ) . GetDescendent < VBAParser . SelectCaseStmtContext > ( ) ;
2640
- var visitor = ParseTreeValueVisitorFactory . Create ( ( module , context ) => UnreachableCaseInspection . GetIdentifierReferenceForContext ( module , context , finder ) ) ;
2641
- valueResults = visitor . VisitChildren ( parseTreeModule , selectStmt ) ;
2619
+ var visitor = TestParseTreeValueVisitor ( ) ;
2620
+ valueResults = visitor . VisitChildren ( parseTreeModule , selectStmt , finder ) ;
2642
2621
contextModule = parseTreeModule ;
2643
2622
}
2644
2623
return valueResults ;
2645
2624
}
2646
2625
2626
+ private ParseTreeValueVisitor TestParseTreeValueVisitor ( Func < Declaration , ( bool , string , string ) > valueDeclarationEvaluator = null )
2627
+ {
2628
+ var valueFactory = new ParseTreeValueFactory ( ) ;
2629
+ return new ParseTreeValueVisitor ( valueFactory , valueDeclarationEvaluator ) ;
2630
+ }
2631
+
2647
2632
protected override IInspection InspectionUnderTest ( RubberduckParserState state )
2648
2633
{
2649
2634
var factoryProvider = new UnreachableCaseInspectionFactoryProvider ( ) ;
2650
- return new UnreachableCaseInspection ( state , factoryProvider ) ;
2635
+ var parseTeeValueVisitor = new ParseTreeValueVisitor ( factoryProvider . CreateIParseTreeValueFactory ( ) ) ;
2636
+ return new UnreachableCaseInspection ( state , factoryProvider , parseTeeValueVisitor ) ;
2651
2637
}
2652
2638
}
2653
2639
}
0 commit comments