Skip to content

Commit a228a77

Browse files
committed
Change default RHS property parameter to 'RHS'
1 parent 734ca5b commit a228a77

13 files changed

+89
-134
lines changed

Rubberduck.Refactorings/Common/CodeBuilder.cs

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -69,16 +69,14 @@ bool TryBuildPropertySetCodeBlock(Declaration prototype,
6969
string content = null,
7070
string parameterIdentifier = null);
7171
/// <summary>
72-
/// Generates a default RHS property parameter IdentifierName
72+
/// Default RHS property parameter IdentifierName
7373
/// </summary>
74-
/// <param name="propertyIdentifier">Let/Set Property IdentifierName</param>
75-
string BuildPropertyRhsParameterName(string propertyIdentifier);
74+
string DefaultLetSetRhsParameterIdentifierName { get; }
7675
}
7776

7877
public class CodeBuilder : ICodeBuilder
7978
{
80-
public string BuildPropertyRhsParameterName(string propertyIdentifier)
81-
=> string.Format(Resources.Refactorings.Refactorings.CodeBuilder_DefaultPropertyRHSParamFormat, propertyIdentifier.ToLowerCaseFirstLetter());
79+
public string DefaultLetSetRhsParameterIdentifierName => "RHS";
8280

8381
public string BuildMemberBlockFromPrototype(ModuleBodyElementDeclaration declaration,
8482
string content = null,
@@ -119,7 +117,7 @@ private bool TryBuildPropertyBlockFromTarget<T>(T prototype, DeclarationType let
119117
return false;
120118
}
121119

122-
var propertyValueParam = parameterIdentifier ?? BuildPropertyRhsParameterName(propertyIdentifier);
120+
var propertyValueParam = parameterIdentifier ?? DefaultLetSetRhsParameterIdentifierName;
123121

124122
var asType = prototype.IsArray
125123
? $"{Tokens.Variant}"

Rubberduck.Refactorings/EncapsulateField/EncapsulateFieldElementsBuilder.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ private IEncapsulateFieldCandidate CreateCandidate(Declaration target, IValidate
111111
if (target.IsUserDefinedType())
112112
{
113113
var udtValidator = EncapsulateFieldValidationsProvider.NameOnlyValidator(NameValidators.UserDefinedType);
114-
var udtField = new UserDefinedTypeCandidate(target, udtValidator, _codeBuilder.BuildPropertyRhsParameterName) as IUserDefinedTypeCandidate;
114+
var udtField = new UserDefinedTypeCandidate(target, udtValidator, _codeBuilder.DefaultLetSetRhsParameterIdentifierName) as IUserDefinedTypeCandidate;
115115

116116
(Declaration udtDeclaration, IEnumerable<Declaration> udtMembers) = GetUDTAndMembersForField(udtField);
117117

@@ -126,7 +126,7 @@ private IEncapsulateFieldCandidate CreateCandidate(Declaration target, IValidate
126126
{
127127
udtMemberValidator = EncapsulateFieldValidationsProvider.NameOnlyValidator(NameValidators.UserDefinedTypeMemberArray);
128128
}
129-
var candidateUDTMember = new UserDefinedTypeMemberCandidate(CreateCandidate(udtMemberDeclaration, udtMemberValidator), udtField, _codeBuilder.BuildPropertyRhsParameterName) as IUserDefinedTypeMemberCandidate;
129+
var candidateUDTMember = new UserDefinedTypeMemberCandidate(CreateCandidate(udtMemberDeclaration, udtMemberValidator), udtField, _codeBuilder.DefaultLetSetRhsParameterIdentifierName) as IUserDefinedTypeMemberCandidate;
130130

131131
udtField.AddMember(candidateUDTMember);
132132
}
@@ -142,10 +142,10 @@ private IEncapsulateFieldCandidate CreateCandidate(Declaration target, IValidate
142142
}
143143
else if (target.IsArray)
144144
{
145-
return new ArrayCandidate(target, validator, _codeBuilder.BuildPropertyRhsParameterName);
145+
return new ArrayCandidate(target, validator, _codeBuilder.DefaultLetSetRhsParameterIdentifierName);
146146
}
147147

148-
var candidate = new EncapsulateFieldCandidate(target, validator, _codeBuilder.BuildPropertyRhsParameterName);
148+
var candidate = new EncapsulateFieldCandidate(target, validator, _codeBuilder.DefaultLetSetRhsParameterIdentifierName);
149149
return candidate;
150150
}
151151

Rubberduck.Refactorings/EncapsulateField/FieldCandidates/ArrayCandidate.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@ public interface IArrayCandidate : IEncapsulateFieldCandidate
1616
public class ArrayCandidate : EncapsulateFieldCandidate, IArrayCandidate
1717
{
1818
private string _subscripts;
19-
public ArrayCandidate(Declaration declaration, IValidateVBAIdentifiers validator, Func<string,string> parameterNameBuilder)
20-
:base(declaration, validator, parameterNameBuilder)
19+
public ArrayCandidate(Declaration declaration, IValidateVBAIdentifiers validator, string rhsParameterIdentifierName)
20+
:base(declaration, validator, rhsParameterIdentifierName)
2121
{
2222
ImplementLet = false;
2323
ImplementSet = false;

Rubberduck.Refactorings/EncapsulateField/FieldCandidates/EncapsulateFieldCandidate.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -45,13 +45,13 @@ public class EncapsulateFieldCandidate : IEncapsulateFieldCandidate
4545
protected int _hashCode;
4646
private string _identifierName;
4747
protected EncapsulationIdentifiers _fieldAndProperty;
48-
private Func<string, string> _parameterNameBuilder;
48+
private string _rhsParameterIdentifierName;
4949

50-
public EncapsulateFieldCandidate(Declaration declaration, IValidateVBAIdentifiers identifierValidator, Func<string, string> parameterNameBuilder)
50+
public EncapsulateFieldCandidate(Declaration declaration, IValidateVBAIdentifiers identifierValidator, string rhsParameterIdentifierName)
5151
{
5252
_target = declaration;
5353
NameValidator = identifierValidator;
54-
_parameterNameBuilder = parameterNameBuilder;
54+
_rhsParameterIdentifierName = rhsParameterIdentifierName;
5555

5656
_fieldAndProperty = new EncapsulationIdentifiers(declaration.IdentifierName, identifierValidator);
5757
IdentifierName = declaration.IdentifierName;
@@ -202,7 +202,7 @@ public string IdentifierName
202202

203203
public virtual string ReferenceQualifier { set; get; }
204204

205-
public string ParameterName => _parameterNameBuilder(PropertyIdentifier);
205+
public string ParameterName => _rhsParameterIdentifierName;
206206

207207
private bool _implLet;
208208
public bool ImplementLet { get => !IsReadOnly && _implLet; set => _implLet = value; }

Rubberduck.Refactorings/EncapsulateField/FieldCandidates/UserDefinedTypeCandidate.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@ public interface IUserDefinedTypeCandidate : IEncapsulateFieldCandidate
1717

1818
public class UserDefinedTypeCandidate : EncapsulateFieldCandidate, IUserDefinedTypeCandidate
1919
{
20-
public UserDefinedTypeCandidate(Declaration declaration, IValidateVBAIdentifiers identifierValidator, Func<string,string> parameterNameBuilder)
21-
: base(declaration, identifierValidator, parameterNameBuilder)
20+
public UserDefinedTypeCandidate(Declaration declaration, IValidateVBAIdentifiers identifierValidator, string rhsParameterIdentifierName)
21+
: base(declaration, identifierValidator, rhsParameterIdentifierName)
2222
{
2323
}
2424

Rubberduck.Refactorings/EncapsulateField/FieldCandidates/UserDefinedTypeMemberCandidate.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,11 @@ public class UserDefinedTypeMemberCandidate : IUserDefinedTypeMemberCandidate
2020
{
2121
private int _hashCode;
2222
private readonly string _uniqueID;
23-
private Func<string, string> _parameterNameBuilder;
24-
public UserDefinedTypeMemberCandidate(IEncapsulateFieldCandidate candidate, IUserDefinedTypeCandidate udtField, Func<string,string> parameterNameBuilder)
23+
private string _rhsParameterIdentifierName;
24+
public UserDefinedTypeMemberCandidate(IEncapsulateFieldCandidate candidate, IUserDefinedTypeCandidate udtField, string rhsParameterIdentifierName)
2525
{
2626
_wrappedCandidate = candidate;
27-
_parameterNameBuilder = parameterNameBuilder;
27+
_rhsParameterIdentifierName = rhsParameterIdentifierName;
2828
UDTField = udtField;
2929
PropertyIdentifier = IdentifierName;
3030
BackingIdentifier = IdentifierName;
@@ -203,7 +203,7 @@ public QualifiedModuleName QualifiedModuleName
203203

204204
public string PropertyAsTypeName => _wrappedCandidate.PropertyAsTypeName;
205205

206-
public string ParameterName => _parameterNameBuilder(PropertyIdentifier);
206+
public string ParameterName => _rhsParameterIdentifierName;
207207

208208
public bool ImplementLet => _wrappedCandidate.ImplementLet;
209209

Rubberduck.Refactorings/EncapsulateField/ObjectStateUDT.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ public interface IObjectStateUDT : IEncapsulateFieldRefactoringElement
3030
//newly inserted declaration
3131
public class ObjectStateUDT : IObjectStateUDT
3232
{
33-
private static string _defaultNewFieldName = RubberduckUI.EncapsulateField_DefaultObjectStateUDTFieldName; // EncapsulateFieldResources.DefaultStateUDTFieldName;
33+
private static string _defaultNewFieldName = "this";
3434
private List<IConvertToUDTMember> _convertedMembers;
3535

3636
private readonly IUserDefinedTypeCandidate _wrappedUDT;

RubberduckTests/CodeBuilderTests.cs

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
using NUnit.Framework;
2-
using Rubberduck.Common;
32
using Rubberduck.Parsing.Symbols;
43
using Rubberduck.Refactorings;
54
using RubberduckTests.Mocks;
@@ -11,7 +10,7 @@ namespace RubberduckTests
1110
[TestFixture]
1211
public class CodeBuilderTests
1312
{
14-
private static string Param(string property) => $"{property.ToLowerCaseFirstLetter()}Value";
13+
private const string RHSIdentifier = "RHS";
1514

1615
[TestCase("fizz", DeclarationType.Variable, "Integer")]
1716
[TestCase("FirstValue", DeclarationType.UserDefinedTypeMember, "Long")]
@@ -194,7 +193,7 @@ Private fuzz As ETestType2
194193
declarationType,
195194
testParams,
196195
PropertyLetBlockFromPrototypeTest);
197-
StringAssert.Contains($"Property Let {testParams.Identifier}(ByVal {Param(testParams.Identifier)} As {typeName})", result);
196+
StringAssert.Contains($"Property Let {testParams.Identifier}(ByVal {RHSIdentifier} As {typeName})", result);
198197
}
199198

200199
[TestCase("fizz", DeclarationType.Variable, "Variant")]
@@ -220,7 +219,7 @@ Private fizz As Variant
220219
testParams,
221220
PropertySetBlockFromPrototypeTest);
222221

223-
StringAssert.Contains($"Property Set {testParams.Identifier}(ByVal {Param(testParams.Identifier)} As {typeName})", result);
222+
StringAssert.Contains($"Property Set {testParams.Identifier}(ByVal {RHSIdentifier} As {typeName})", result);
224223
}
225224

226225
[TestCase(DeclarationType.PropertyLet)]

RubberduckTests/Refactoring/EncapsulateField/EncapsulateFIeldTestSupport.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ namespace RubberduckTests.Refactoring.EncapsulateField
1919
{
2020
public class EncapsulateFieldTestSupport : InteractiveRefactoringTestBase<IEncapsulateFieldPresenter, EncapsulateFieldModel>
2121
{
22-
public string RhsParameterNameBuilder(string property) => $"{property.ToLowerCaseFirstLetter()}Value";
22+
public string RHSIdentifier => "RHS";
2323

2424
public string StateUDTDefaultType => $"T{MockVbeBuilder.TestModuleName}";
2525

RubberduckTests/Refactoring/EncapsulateField/EncapsulateFieldTests.cs

Lines changed: 16 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -67,12 +67,10 @@ public void EncapsulateMultipleFields(
6767

6868
foreach (var variable in encapsulated)
6969
{
70-
var rhsParameterName = Support.RhsParameterNameBuilder($"{variable}Prop");
71-
7270
StringAssert.Contains($"Private {variable} As", actualCode);
7371
StringAssert.Contains($"{variable}Prop = {variable}", actualCode);
74-
StringAssert.Contains($"{variable} = {rhsParameterName}", actualCode);
75-
StringAssert.Contains($"Let {variable}Prop(ByVal {rhsParameterName} As", actualCode);
72+
StringAssert.Contains($"{variable} = {Support.RHSIdentifier}", actualCode);
73+
StringAssert.Contains($"Let {variable}Prop(ByVal {Support.RHSIdentifier} As", actualCode);
7674
StringAssert.Contains($"Property Get {variable}Prop()", actualCode);
7775
}
7876
}
@@ -133,12 +131,10 @@ public void EncapsulateMultipleFieldsInList(
133131
{
134132
if (flags[key])
135133
{
136-
var rhsParameterName = Support.RhsParameterNameBuilder($"{key}Prop");
137-
138134
StringAssert.Contains($"Private {key} As", actualCode);
139135
StringAssert.Contains($"{key}Prop = {key}", actualCode);
140-
StringAssert.Contains($"{key} = {rhsParameterName}", actualCode);
141-
StringAssert.Contains($"Let {key}Prop(ByVal {rhsParameterName} As", actualCode);
136+
StringAssert.Contains($"{key} = {Support.RHSIdentifier}", actualCode);
137+
StringAssert.Contains($"Let {key}Prop(ByVal {Support.RHSIdentifier} As", actualCode);
142138
StringAssert.Contains($"Property Get {key}Prop()", actualCode);
143139
}
144140
}
@@ -234,11 +230,10 @@ Property Set Foo(ByVal vall As Variant)
234230
End Property";
235231

236232
var presenterAction = Support.SetParametersForSingleTarget("fizz", "Name");
237-
var rhsParameterName = Support.RhsParameterNameBuilder("Name");
238233

239234
var actualCode = Support.RefactoredCode(inputCode.ToCodeString(), presenterAction);
240-
Assert.Greater(actualCode.IndexOf($"fizz = {rhsParameterName}"), actualCode.IndexOf("fizz As Integer"));
241-
Assert.Less(actualCode.IndexOf($"fizz = {rhsParameterName}"), actualCode.IndexOf("Get Foo"));
235+
Assert.Greater(actualCode.IndexOf($"fizz = {Support.RHSIdentifier}"), actualCode.IndexOf("fizz As Integer"));
236+
Assert.Less(actualCode.IndexOf($"fizz = {Support.RHSIdentifier}"), actualCode.IndexOf("Get Foo"));
242237
}
243238

244239
[TestCase("|Public fizz As Integer\r\nPublic buzz As Boolean", "Private fizz As Integer\r\nPublic buzz As Boolean")]
@@ -256,8 +251,8 @@ Public Property Get Name() As Integer
256251
Name = fizz
257252
End Property
258253
259-
Public Property Let Name(ByVal nameValue As Integer)
260-
fizz = nameValue
254+
Public Property Let Name(ByVal {Support.RHSIdentifier} As Integer)
255+
fizz = {Support.RHSIdentifier}
261256
End Property
262257
";
263258
var presenterAction = Support.SetParametersForSingleTarget("fizz", "Name");
@@ -297,14 +292,13 @@ public void EncapsulatePrivateField()
297292
@"|Private fizz As Integer";
298293

299294
var presenterAction = Support.SetParametersForSingleTarget("fizz", "Name");
300-
var rhsParameterName = Support.RhsParameterNameBuilder("Name");
301295

302296
var actualCode = Support.RefactoredCode(inputCode.ToCodeString(), presenterAction);
303297
StringAssert.Contains("Public Property Get Name() As Integer", actualCode);
304298
StringAssert.Contains("Public Property Let Name(", actualCode);
305-
StringAssert.Contains($"(ByVal {rhsParameterName} As Integer)", actualCode);
299+
StringAssert.Contains($"(ByVal {Support.RHSIdentifier} As Integer)", actualCode);
306300
StringAssert.Contains("Name = fizz", actualCode);
307-
StringAssert.Contains($"fizz = {rhsParameterName}", actualCode);
301+
StringAssert.Contains($"fizz = {Support.RHSIdentifier}", actualCode);
308302
StringAssert.Contains("End Property", actualCode);
309303
}
310304

@@ -371,15 +365,14 @@ public void EncapsulatePrivateFieldInList()
371365
@"Private fi|zz As Integer, fuzz As Integer, fazz As Integer";
372366

373367
var presenterAction = Support.SetParametersForSingleTarget("fizz");
374-
var rhsParameterName = Support.RhsParameterNameBuilder("Fizz");
375368

376369
var actualCode = Support.RefactoredCode(inputCode.ToCodeString(), presenterAction);
377370
StringAssert.Contains("Private fizz_1 As Integer, fuzz As Integer,", actualCode);
378371
StringAssert.Contains("Public Property Get Fizz() As Integer", actualCode);
379372
StringAssert.Contains("Public Property Let Fizz(", actualCode);
380-
StringAssert.Contains($"(ByVal {rhsParameterName} As Integer)", actualCode);
373+
StringAssert.Contains($"(ByVal {Support.RHSIdentifier} As Integer)", actualCode);
381374
StringAssert.Contains("Fizz = fizz_1", actualCode);
382-
StringAssert.Contains($"fizz_1 = {rhsParameterName}", actualCode);
375+
StringAssert.Contains($"fizz_1 = {Support.RHSIdentifier}", actualCode);
383376
StringAssert.Contains("End Property", actualCode);
384377
}
385378

@@ -392,14 +385,13 @@ public void EncapsulatePrivateField_Defaults()
392385
@"|Private fizz As Integer";
393386

394387
var presenterAction = Support.UserAcceptsDefaults();
395-
var rhsParameterName = Support.RhsParameterNameBuilder("Fizz");
396388

397389
var actualCode = Support.RefactoredCode(inputCode.ToCodeString(), presenterAction);
398390
StringAssert.Contains("Public Property Get Fizz() As Integer", actualCode);
399391
StringAssert.Contains("Public Property Let Fizz(", actualCode);
400-
StringAssert.Contains($"(ByVal {rhsParameterName} As Integer)", actualCode);
392+
StringAssert.Contains($"(ByVal {Support.RHSIdentifier} As Integer)", actualCode);
401393
StringAssert.Contains("Fizz = fizz_1", actualCode);
402-
StringAssert.Contains($"fizz_1 = {rhsParameterName}", actualCode);
394+
StringAssert.Contains($"fizz_1 = {Support.RHSIdentifier}", actualCode);
403395
StringAssert.Contains("End Property", actualCode);
404396
}
405397

@@ -412,12 +404,11 @@ public void EncapsulatePrivateField_DefaultsAsUDT()
412404
@"|Private fizz As Integer";
413405

414406
var presenterAction = Support.UserAcceptsDefaults(convertFieldToUDTMember: true);
415-
var rhsParameterName = Support.RhsParameterNameBuilder("Fizz");
416407

417408
var actualCode = Support.RefactoredCode(inputCode.ToCodeString(), presenterAction);
418409
StringAssert.Contains("Fizz As Integer", actualCode);
419410
StringAssert.Contains($"this As {Support.StateUDTDefaultType}", actualCode);
420-
StringAssert.Contains($"this.Fizz = {rhsParameterName}", actualCode);
411+
StringAssert.Contains($"this.Fizz = {Support.RHSIdentifier}", actualCode);
421412
}
422413

423414
[Test]
@@ -440,15 +431,14 @@ Sub Bar(ByVal name As Integer)
440431

441432
var validator = EncapsulateFieldValidationsProvider.NameOnlyValidator(NameValidators.Default);
442433
var enapsulationIdentifiers = new EncapsulationIdentifiers("fizz", validator) { Property = "Name" };
443-
var rhsParameterName = Support.RhsParameterNameBuilder("Name");
444434

445435
var actualCode = Support.RefactoredCode(inputCode.ToCodeString(), presenterAction);
446436
StringAssert.AreEqualIgnoringCase(enapsulationIdentifiers.TargetFieldName, "fizz");
447437
StringAssert.Contains($"Private {enapsulationIdentifiers.TargetFieldName} As Integer", actualCode);
448438
StringAssert.Contains("Property Get Name", actualCode);
449439
StringAssert.Contains("Property Let Name", actualCode);
450440
StringAssert.Contains($"Name = {enapsulationIdentifiers.TargetFieldName}", actualCode);
451-
StringAssert.Contains($"{enapsulationIdentifiers.TargetFieldName} = {rhsParameterName}", actualCode);
441+
StringAssert.Contains($"{enapsulationIdentifiers.TargetFieldName} = {Support.RHSIdentifier}", actualCode);
452442
}
453443

454444
[Test]

0 commit comments

Comments
 (0)