Ejemplo n.º 1
0
        public void GivenPrivateSub_DefaultQuickFixRemovesParameter()
        {
            const string inputCode = @"
Private Sub Foo(ByVal arg1 as Integer)
End Sub";

            const string expectedCode = @"
Private Sub Foo()
End Sub";

            var vbe = MockVbeBuilder.BuildFromSingleStandardModule(inputCode, out var component);

            var(state, rewritingManager) = MockParser.CreateAndParseWithRewritingManager(vbe.Object);
            using (state)
            {
                var inspection        = new ParameterNotUsedInspection(state);
                var inspectionResults = inspection.GetInspectionResults(CancellationToken.None);
                var rewriteSession    = rewritingManager.CheckOutCodePaneSession();
                var selectionService  = MockedSelectionService();

                var factory = new Mock <IRefactoringPresenterFactory>().Object;
                var selectedDeclarationProvider = new SelectedDeclarationProvider(selectionService, state);
                var uiDispatcherMock            = new Mock <IUiDispatcher>();
                uiDispatcherMock
                .Setup(m => m.Invoke(It.IsAny <Action>()))
                .Callback((Action action) => action.Invoke());
                var baseRefactoring = new RemoveParameterRefactoringAction(state, rewritingManager);
                var userInteraction = new RefactoringUserInteraction <IRemoveParametersPresenter, RemoveParametersModel>(factory, uiDispatcherMock.Object);
                var refactoring     = new RemoveParametersRefactoring(baseRefactoring, state, userInteraction, selectionService, selectedDeclarationProvider);
                new RemoveUnusedParameterQuickFix(refactoring)
                .Fix(inspectionResults.First(), rewriteSession);
                Assert.AreEqual(expectedCode, component.CodeModule.Content());
            }
        }
        protected override CommandBase TestCommand(IVBE vbe, RubberduckParserState state, IRewritingManager rewritingManager, ISelectionService selectionService)
        {
            var msgBox  = new Mock <IMessageBox>().Object;
            var factory = new Mock <IRefactoringPresenterFactory>().Object;
            var selectedDeclarationProvider = new SelectedDeclarationProvider(selectionService, state);
            var uiDispatcherMock            = new Mock <IUiDispatcher>();

            uiDispatcherMock
            .Setup(m => m.Invoke(It.IsAny <Action>()))
            .Callback((Action action) => action.Invoke());
            var baseRefactoring = new RemoveParameterRefactoringAction(state, rewritingManager);
            var userInteraction = new RefactoringUserInteraction <IRemoveParametersPresenter, RemoveParametersModel>(factory, uiDispatcherMock.Object);
            var refactoring     = new RemoveParametersRefactoring(baseRefactoring, state, userInteraction, selectionService, selectedDeclarationProvider);
            var notifier        = new RemoveParameterFailedNotifier(msgBox);

            return(new RefactorRemoveParametersCommand(refactoring, notifier, state, selectionService, selectedDeclarationProvider));
        }