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)); }