Skip to content

Commit e77e011

Browse files
committed
Merge pull request #701 from Hosch250/next
Add Remove Params tests
2 parents 5116cfc + 2858348 commit e77e011

File tree

9 files changed

+1290
-93
lines changed

9 files changed

+1290
-93
lines changed

RetailCoder.VBE/Refactorings/ReorderParameters/ReorderParametersModel.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,12 @@ private void LoadParameters()
5151

5252
var index = 0;
5353
Parameters = args.Select(arg => new Parameter(arg.GetText().RemoveExtraSpaces(), index++)).ToList();
54+
55+
if (TargetDeclaration.DeclarationType == DeclarationType.PropertyLet ||
56+
TargetDeclaration.DeclarationType == DeclarationType.PropertySet)
57+
{
58+
Parameters.Remove(Parameters.Last());
59+
}
5460
}
5561

5662
public static readonly DeclarationType[] ValidDeclarationTypes =

RetailCoder.VBE/Refactorings/ReorderParameters/ReorderParametersRefactoring.cs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,12 @@ public class ReorderParametersRefactoring : IRefactoring
1717
{
1818
private readonly IRefactoringPresenterFactory<IReorderParametersPresenter> _factory;
1919
private ReorderParametersModel _model;
20+
private readonly IMessageBox _messageBox;
2021

21-
public ReorderParametersRefactoring(IRefactoringPresenterFactory<IReorderParametersPresenter> factory)
22+
public ReorderParametersRefactoring(IRefactoringPresenterFactory<IReorderParametersPresenter> factory, IMessageBox messageBox)
2223
{
2324
_factory = factory;
25+
_messageBox = messageBox;
2426
}
2527

2628
public void Refactor()
@@ -67,7 +69,7 @@ private bool IsValidParamOrder()
6769
{
6870
if (!_model.Parameters.ElementAt(index).IsOptional)
6971
{
70-
MessageBox.Show(RubberduckUI.ReorderPresenter_OptionalParametersMustBeLastError, RubberduckUI.ReorderParamsDialog_TitleText, MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
72+
_messageBox.Show(RubberduckUI.ReorderPresenter_OptionalParametersMustBeLastError, RubberduckUI.ReorderParamsDialog_TitleText, MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
7173
return false;
7274
}
7375
}
@@ -76,7 +78,7 @@ private bool IsValidParamOrder()
7678
var indexOfParamArray = _model.Parameters.FindIndex(param => param.IsParamArray);
7779
if (indexOfParamArray >= 0 && indexOfParamArray != _model.Parameters.Count - 1)
7880
{
79-
MessageBox.Show(RubberduckUI.ReorderPresenter_ParamArrayError, RubberduckUI.ReorderParamsDialog_TitleText, MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
81+
_messageBox.Show(RubberduckUI.ReorderPresenter_ParamArrayError, RubberduckUI.ReorderParamsDialog_TitleText, MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
8082
return false;
8183
}
8284
return true;

RetailCoder.VBE/Rubberduck.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -288,6 +288,7 @@
288288
<Compile Include="Inspections\VariableNotAssignedInspection.cs" />
289289
<Compile Include="Inspections\IdentifierNotAssignedInspectionResult.cs" />
290290
<Compile Include="UI\FolderBrowser.cs" />
291+
<Compile Include="UI\IMessageBox.cs" />
291292
<Compile Include="UI\Settings\AddMarkerForm.cs">
292293
<SubType>Form</SubType>
293294
</Compile>

RetailCoder.VBE/UI/IMessageBox.cs

Lines changed: 152 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,152 @@
1+
using System.Windows.Forms;
2+
3+
namespace Rubberduck.UI
4+
{
5+
public interface IMessageBox
6+
{
7+
DialogResult Show(string text);
8+
DialogResult Show(IWin32Window owner, string text);
9+
DialogResult Show(string text, string caption);
10+
DialogResult Show(IWin32Window owner, string text, string caption);
11+
DialogResult Show(string text, string caption, MessageBoxButtons buttons);
12+
DialogResult Show(IWin32Window owner, string text, string caption, MessageBoxButtons buttons);
13+
DialogResult Show(string text, string caption, MessageBoxButtons buttons, MessageBoxIcon icon);
14+
DialogResult Show(IWin32Window owner, string text, string caption, MessageBoxButtons buttons, MessageBoxIcon icon);
15+
DialogResult Show(string text, string caption, MessageBoxButtons buttons, MessageBoxIcon icon, MessageBoxDefaultButton defaultButton);
16+
DialogResult Show(IWin32Window owner, string text, string caption, MessageBoxButtons buttons, MessageBoxIcon icon, MessageBoxDefaultButton defaultButton);
17+
DialogResult Show(string text, string caption, MessageBoxButtons buttons, MessageBoxIcon icon, MessageBoxDefaultButton defaultButton, MessageBoxOptions options);
18+
DialogResult Show(IWin32Window owner, string text, string caption, MessageBoxButtons buttons, MessageBoxIcon icon, MessageBoxDefaultButton defaultButton, MessageBoxOptions options);
19+
DialogResult Show(string text, string caption, MessageBoxButtons buttons, MessageBoxIcon icon, MessageBoxDefaultButton defaultButton, MessageBoxOptions options, bool displayHelpButton);
20+
DialogResult Show(string text, string caption, MessageBoxButtons buttons, MessageBoxIcon icon, MessageBoxDefaultButton defaultButton, MessageBoxOptions options, string helpFilePath);
21+
DialogResult Show(IWin32Window owner, string text, string caption, MessageBoxButtons buttons, MessageBoxIcon icon, MessageBoxDefaultButton defaultButton, MessageBoxOptions options, string helpFilePath);
22+
DialogResult Show(string text, string caption, MessageBoxButtons buttons, MessageBoxIcon icon, MessageBoxDefaultButton defaultButton, MessageBoxOptions options, string helpFilePath, HelpNavigator navigator);
23+
DialogResult Show(string text, string caption, MessageBoxButtons buttons, MessageBoxIcon icon, MessageBoxDefaultButton defaultButton, MessageBoxOptions options, string helpFilePath, string keyword);
24+
DialogResult Show(IWin32Window owner, string text, string caption, MessageBoxButtons buttons, MessageBoxIcon icon, MessageBoxDefaultButton defaultButton, MessageBoxOptions options, string helpFilePath, HelpNavigator navigator);
25+
DialogResult Show(IWin32Window owner, string text, string caption, MessageBoxButtons buttons, MessageBoxIcon icon, MessageBoxDefaultButton defaultButton, MessageBoxOptions options, string helpFilePath, string keyword);
26+
DialogResult Show(string text, string caption, MessageBoxButtons buttons, MessageBoxIcon icon, MessageBoxDefaultButton defaultButton, MessageBoxOptions options, string helpFilePath, HelpNavigator navigator, object param);
27+
DialogResult Show(IWin32Window owner, string text, string caption, MessageBoxButtons buttons, MessageBoxIcon icon, MessageBoxDefaultButton defaultButton, MessageBoxOptions options, string helpFilePath, HelpNavigator navigator, object param);
28+
}
29+
30+
public class RubberduckMessageBox : IMessageBox
31+
{
32+
public DialogResult Show(string text)
33+
{
34+
return MessageBox.Show(text);
35+
}
36+
37+
public DialogResult Show(IWin32Window owner, string text)
38+
{
39+
return MessageBox.Show(owner, text);
40+
}
41+
42+
public DialogResult Show(string text, string caption)
43+
{
44+
return MessageBox.Show(text, caption);
45+
}
46+
47+
public DialogResult Show(IWin32Window owner, string text, string caption)
48+
{
49+
return MessageBox.Show(owner, text, caption);
50+
}
51+
52+
public DialogResult Show(string text, string caption, MessageBoxButtons buttons)
53+
{
54+
return MessageBox.Show(text, caption, buttons);
55+
}
56+
57+
public DialogResult Show(IWin32Window owner, string text, string caption, MessageBoxButtons buttons)
58+
{
59+
return MessageBox.Show(owner, text, caption, buttons);
60+
}
61+
62+
public DialogResult Show(string text, string caption, MessageBoxButtons buttons, MessageBoxIcon icon)
63+
{
64+
return MessageBox.Show(text, caption, buttons, icon);
65+
}
66+
67+
public DialogResult Show(IWin32Window owner, string text, string caption, MessageBoxButtons buttons, MessageBoxIcon icon)
68+
{
69+
return MessageBox.Show(owner, text, caption, buttons, icon);
70+
}
71+
72+
public DialogResult Show(string text, string caption, MessageBoxButtons buttons, MessageBoxIcon icon,
73+
MessageBoxDefaultButton defaultButton)
74+
{
75+
return MessageBox.Show(text, caption, buttons, icon, defaultButton);
76+
}
77+
78+
public DialogResult Show(IWin32Window owner, string text, string caption, MessageBoxButtons buttons, MessageBoxIcon icon,
79+
MessageBoxDefaultButton defaultButton)
80+
{
81+
return MessageBox.Show(owner, text, caption, buttons, icon, defaultButton);
82+
}
83+
84+
public DialogResult Show(string text, string caption, MessageBoxButtons buttons, MessageBoxIcon icon,
85+
MessageBoxDefaultButton defaultButton, MessageBoxOptions options)
86+
{
87+
return MessageBox.Show(text, caption, buttons, icon, defaultButton, options);
88+
}
89+
90+
public DialogResult Show(IWin32Window owner, string text, string caption, MessageBoxButtons buttons, MessageBoxIcon icon,
91+
MessageBoxDefaultButton defaultButton, MessageBoxOptions options)
92+
{
93+
return MessageBox.Show(owner, text, caption, buttons, icon, defaultButton, options);
94+
}
95+
96+
public DialogResult Show(string text, string caption, MessageBoxButtons buttons, MessageBoxIcon icon,
97+
MessageBoxDefaultButton defaultButton, MessageBoxOptions options, bool displayHelpButton)
98+
{
99+
return MessageBox.Show(text, caption, buttons, icon, defaultButton, options, displayHelpButton);
100+
}
101+
102+
public DialogResult Show(string text, string caption, MessageBoxButtons buttons, MessageBoxIcon icon,
103+
MessageBoxDefaultButton defaultButton, MessageBoxOptions options, string helpFilePath)
104+
{
105+
return MessageBox.Show(text, caption, buttons, icon, defaultButton, options, helpFilePath);
106+
}
107+
108+
public DialogResult Show(IWin32Window owner, string text, string caption, MessageBoxButtons buttons, MessageBoxIcon icon,
109+
MessageBoxDefaultButton defaultButton, MessageBoxOptions options, string helpFilePath)
110+
{
111+
return MessageBox.Show(owner, text, caption, buttons, icon, defaultButton, options, helpFilePath);
112+
}
113+
114+
public DialogResult Show(string text, string caption, MessageBoxButtons buttons, MessageBoxIcon icon,
115+
MessageBoxDefaultButton defaultButton, MessageBoxOptions options, string helpFilePath, HelpNavigator navigator)
116+
{
117+
return MessageBox.Show(text, caption, buttons, icon, defaultButton, options, helpFilePath, navigator);
118+
}
119+
120+
public DialogResult Show(string text, string caption, MessageBoxButtons buttons, MessageBoxIcon icon,
121+
MessageBoxDefaultButton defaultButton, MessageBoxOptions options, string helpFilePath, string keyword)
122+
{
123+
return MessageBox.Show(text, caption, buttons, icon, defaultButton, options, helpFilePath, keyword);
124+
}
125+
126+
public DialogResult Show(IWin32Window owner, string text, string caption, MessageBoxButtons buttons, MessageBoxIcon icon,
127+
MessageBoxDefaultButton defaultButton, MessageBoxOptions options, string helpFilePath, HelpNavigator navigator)
128+
{
129+
return MessageBox.Show(owner, text, caption, buttons, icon, defaultButton, options, helpFilePath, navigator);
130+
}
131+
132+
public DialogResult Show(IWin32Window owner, string text, string caption, MessageBoxButtons buttons, MessageBoxIcon icon,
133+
MessageBoxDefaultButton defaultButton, MessageBoxOptions options, string helpFilePath, string keyword)
134+
{
135+
return MessageBox.Show(owner, text, caption, buttons, icon, defaultButton, options, helpFilePath, keyword);
136+
}
137+
138+
public DialogResult Show(string text, string caption, MessageBoxButtons buttons, MessageBoxIcon icon,
139+
MessageBoxDefaultButton defaultButton, MessageBoxOptions options, string helpFilePath, HelpNavigator navigator,
140+
object param)
141+
{
142+
return MessageBox.Show(text, caption, buttons, icon, defaultButton, options, helpFilePath, navigator, param);
143+
}
144+
145+
public DialogResult Show(IWin32Window owner, string text, string caption, MessageBoxButtons buttons, MessageBoxIcon icon,
146+
MessageBoxDefaultButton defaultButton, MessageBoxOptions options, string helpFilePath, HelpNavigator navigator,
147+
object param)
148+
{
149+
return MessageBox.Show(owner, text, caption, buttons, icon, defaultButton, options, helpFilePath, navigator, param);
150+
}
151+
}
152+
}

RetailCoder.VBE/UI/RefactorMenu.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -461,7 +461,7 @@ private void ReorderParameters(QualifiedSelection selection)
461461
using (var view = new ReorderParametersDialog())
462462
{
463463
var factory = new ReorderParametersPresenterFactory(_editor, view, result);
464-
var refactoring = new ReorderParametersRefactoring(factory);
464+
var refactoring = new ReorderParametersRefactoring(factory, new RubberduckMessageBox());
465465
refactoring.Refactor(selection);
466466
}
467467
}

0 commit comments

Comments
 (0)