Skip to content

Commit eca228d

Browse files
authored
AV1710: Add exception for User.UserName (#149)
1 parent 4772eff commit eca228d

File tree

2 files changed

+24
-2
lines changed

2 files changed

+24
-2
lines changed

src/CSharpGuidelinesAnalyzer/CSharpGuidelinesAnalyzer.Test/Specs/Naming/DoNotIncludeContainingTypeNameInMemberNameSpecs.cs

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -214,6 +214,23 @@ class Order
214214
await VerifyGuidelineDiagnosticAsync(source);
215215
}
216216

217+
[Fact]
218+
internal async Task When_User_class_contains_UserName_property_it_must_be_skipped()
219+
{
220+
// Arrange
221+
ParsedSourceCode source = new TypeSourceCodeBuilder()
222+
.InGlobalScope(@"
223+
class User
224+
{
225+
string UserName { get; set; }
226+
}
227+
")
228+
.Build();
229+
230+
// Act and assert
231+
await VerifyGuidelineDiagnosticAsync(source);
232+
}
233+
217234
[Fact]
218235
internal async Task When_event_name_contains_class_name_it_must_be_reported()
219236
{
@@ -344,7 +361,7 @@ static Employee()
344361
}
345362

346363
[Fact]
347-
internal async Task When_class_contains_static_destructor_it_must_be_skipped()
364+
internal async Task When_class_contains_destructor_it_must_be_skipped()
348365
{
349366
// Arrange
350367
ParsedSourceCode source = new TypeSourceCodeBuilder()

src/CSharpGuidelinesAnalyzer/CSharpGuidelinesAnalyzer/Rules/Naming/DoNotIncludeContainingTypeNameInMemberNameAnalyzer.cs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,11 +61,16 @@ private static void AnalyzeMemberName([NotNull] string containingTypeName, Symbo
6161
{
6262
string memberName = context.Symbol.MemberNameWithoutExplicitInterfacePrefix();
6363

64-
if (memberName.Contains(containingTypeName))
64+
if (memberName.Contains(containingTypeName) && !IsUserNameInUserType(containingTypeName, memberName))
6565
{
6666
var diagnostic = Diagnostic.Create(Rule, context.Symbol.Locations[0], context.Symbol.Kind, context.Symbol.Name, containingTypeName);
6767
context.ReportDiagnostic(diagnostic);
6868
}
6969
}
70+
71+
private static bool IsUserNameInUserType([NotNull] string containingTypeName, [NotNull] string memberName)
72+
{
73+
return containingTypeName == "User" && memberName.ToLowerInvariant() == "username";
74+
}
7075
}
7176
}

0 commit comments

Comments
 (0)