@@ -918,6 +918,59 @@ Private Sub Foo()
918
918
}
919
919
}
920
920
921
+ [ Test ]
922
+ [ Category ( "Move Closer" ) ]
923
+ [ Category ( "Refactorings" ) ]
924
+ public void MoveCloser_RespectsWithBlockContexts ( )
925
+ {
926
+ const string inputCode =
927
+ @"
928
+ Public Sub foo()
929
+ Dim count As Long
930
+ Dim report As Worksheet
931
+ Set report = ThisWorkbook.ActiveSheet
932
+ With report
933
+ For count = 1 To 10
934
+ If .Cells(1, count) > count Then
935
+ .Cells(2, count).Value2 = count
936
+ End If
937
+ Next
938
+ End With
939
+ End Sub" ;
940
+
941
+ const string expectedCode =
942
+ @"
943
+ Public Sub foo()
944
+ Dim report As Worksheet
945
+ Set report = ThisWorkbook.ActiveSheet
946
+ With report
947
+ Dim count As Long
948
+ For count = 1 To 10
949
+ If .Cells(1, count) > count Then
950
+ .Cells(2, count).Value2 = count
951
+ End If
952
+ Next
953
+ End With
954
+ End Sub" ;
955
+
956
+ var vbe = MockVbeBuilder . BuildFromSingleStandardModule ( inputCode , out var component ) ;
957
+ using ( var state = MockParser . CreateAndParse ( vbe . Object ) )
958
+ {
959
+ var qualifiedSelection = state . DeclarationFinder
960
+ . UserDeclarations ( DeclarationType . Variable )
961
+ . Where ( d => d . IdentifierName == "count" )
962
+ . Single ( ) . QualifiedSelection ;
963
+
964
+ var refactoring = new MoveCloserToUsageRefactoring ( vbe . Object , state , null ) ;
965
+ refactoring . Refactor ( qualifiedSelection ) ;
966
+
967
+ var rewriter = state . GetRewriter ( component ) ;
968
+ Assert . NotNull ( rewriter ) ;
969
+ Assert . AreEqual ( expectedCode , rewriter . GetText ( ) ) ;
970
+ }
971
+ }
972
+
973
+
921
974
[ Test ]
922
975
[ Category ( "Move Closer" ) ]
923
976
[ Category ( "Refactorings" ) ]
0 commit comments