Skip to content
This repository was archived by the owner on Nov 28, 2023. It is now read-only.

Commit ca62ded

Browse files
committed
trim names before comparing.
1 parent 9ca189d commit ca62ded

File tree

5 files changed

+38
-12
lines changed

5 files changed

+38
-12
lines changed

src/ServiceStack.Text.EnumMemberSerializer.UnitTests/EnumMemberAttributeExtensionsTests.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,13 @@ public void MatchesDescription_NameCaseDiffers_True()
2121
Assert.True(attribute.MatchesDescription(MyEnumMemberValue.ToUpper()));
2222
}
2323

24+
[Fact]
25+
public void MatchesDescription_WhiteSpacePaddedConstantNameUsed_True()
26+
{
27+
var attribute = new EnumMemberAttribute { Value = MyEnumMemberValue };
28+
Assert.True(attribute.MatchesDescription(" " + MyEnumMemberValue + "\t\r\t "));
29+
}
30+
2431
[Fact]
2532
public void MatchesDescription_NullFieldNameNonNullDescript_False()
2633
{

src/ServiceStack.Text.EnumMemberSerializer.UnitTests/EnumSerializerHelpersTests.cs

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,14 @@ public void DeserializeEnum_FromEnumNameMixedCase_ResturnsCorrectEnum()
3232
var deserializedEnum = EnumSerializerHelpers<FakeTestingEnum>.DeserializeEnum("YoURvaLuE");
3333
Assert.Equal(FakeTestingEnum.YourValue, deserializedEnum);
3434
}
35-
35+
36+
[Fact]
37+
public void DeserializeEnum_WhitespacePaddedEnum_ResturnsCorrectEnum()
38+
{
39+
var deserializedEnum = EnumSerializerHelpers<FakeTestingEnum>.DeserializeEnum("\tYourValue ");
40+
Assert.Equal(FakeTestingEnum.YourValue, deserializedEnum);
41+
}
42+
3643
[Fact]
3744
public void DeserializeEnum_FromEnumMemberAttributeName_ReturnsCorrectEnum()
3845
{
@@ -41,12 +48,13 @@ public void DeserializeEnum_FromEnumMemberAttributeName_ReturnsCorrectEnum()
4148
}
4249

4350
[Fact]
44-
public void DeserializeEnum_WhitespacePaddedEnum_ResturnsCorrectEnum()
51+
public void DeserializeEnum_WhiteSpacePaddedEnumMemberAttrName_ReturnsCorrectEnum()
4552
{
46-
var deserializedEnum = EnumSerializerHelpers<FakeTestingEnum>.DeserializeEnum("\tYourValue ");
53+
var deserializedEnum = EnumSerializerHelpers<FakeTestingEnum>.DeserializeEnum("\tYour Value is worse ");
4754
Assert.Equal(FakeTestingEnum.YourValue, deserializedEnum);
4855
}
4956

57+
5058
[Fact]
5159
public void DeserializeEnum_NonEnumType_ThrowsException()
5260
{

src/ServiceStack.Text.EnumMemberSerializer.UnitTests/FieldInfoExtensionsTests.cs

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,24 +6,33 @@ namespace ServiceStack.Text.EnumMemberSerializer.UnitTests
66
{
77
public class FieldInfoExtensionsTests
88
{
9-
private const string MyAssemblyName = "MyAssemblyName";
9+
private const string MyFieldName = "MyFieldsName";
1010

1111
[Fact]
1212
public void MatchesDescription_ConstantNameUsed_True()
1313
{
1414
var fieldInfo = MockRepository.GenerateStub<FieldInfo>();
15-
fieldInfo.Stub(x => x.Name).Return(MyAssemblyName);
15+
fieldInfo.Stub(x => x.Name).Return(MyFieldName);
1616

17-
Assert.True(fieldInfo.MatchesDescription(MyAssemblyName));
17+
Assert.True(fieldInfo.MatchesDescription(MyFieldName));
1818
}
1919

2020
[Fact]
2121
public void MatchesDescription_NameCaseDiffers_True()
2222
{
2323
var fieldInfo = MockRepository.GenerateStub<FieldInfo>();
24-
fieldInfo.Stub(x => x.Name).Return(MyAssemblyName);
24+
fieldInfo.Stub(x => x.Name).Return(MyFieldName);
2525

26-
Assert.True(fieldInfo.MatchesDescription(MyAssemblyName.ToUpper()));
26+
Assert.True(fieldInfo.MatchesDescription(MyFieldName.ToUpper()));
27+
}
28+
29+
[Fact]
30+
public void MatchesDescription_WhiteSpacePadded_True()
31+
{
32+
var fieldInfo = MockRepository.GenerateStub<FieldInfo>();
33+
fieldInfo.Stub(x => x.Name).Return(MyFieldName);
34+
35+
Assert.True(fieldInfo.MatchesDescription("\t" + MyFieldName + " \r"));
2736
}
2837

2938
[Fact]
@@ -32,7 +41,7 @@ public void MatchesDescription_NullFieldNameNonNullDescript_False()
3241
var fieldInfo = MockRepository.GenerateStub<FieldInfo>();
3342
fieldInfo.Stub(x => x.Name).Return(null);
3443

35-
Assert.False(fieldInfo.MatchesDescription(MyAssemblyName));
44+
Assert.False(fieldInfo.MatchesDescription(MyFieldName));
3645
}
3746

3847
[Fact]
@@ -41,7 +50,7 @@ public void MatchesDescription_EmptyFieldNameNonNullDescript_False()
4150
var fieldInfo = MockRepository.GenerateStub<FieldInfo>();
4251
fieldInfo.Stub(x => x.Name).Return(string.Empty);
4352

44-
Assert.False(fieldInfo.MatchesDescription(MyAssemblyName));
53+
Assert.False(fieldInfo.MatchesDescription(MyFieldName));
4554
}
4655

4756
[Fact]

src/ServiceStack.Text.EnumMemberSerializer/EnumMemberAttributeExtensions.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,9 @@ internal static class EnumMemberAttributeExtensions
88
public static bool MatchesDescription(this EnumMemberAttribute attribute, string description)
99
{
1010
return
11-
attribute != null && string.Equals(attribute.Value, description, StringComparison.OrdinalIgnoreCase);
11+
attribute != null
12+
&& string.Equals(
13+
attribute.Value, (description ?? string.Empty).Trim(), StringComparison.OrdinalIgnoreCase);
1214
}
1315
}
1416
}

src/ServiceStack.Text.EnumMemberSerializer/FieldInfoExtensions.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ internal static class FieldInfoExtensions
77
{
88
public static bool MatchesDescription(this FieldInfo field, string description)
99
{
10-
return string.Equals(field.Name, description, StringComparison.OrdinalIgnoreCase);
10+
return string.Equals(field.Name, (description ?? string.Empty).Trim(), StringComparison.OrdinalIgnoreCase);
1111
}
1212
}
1313
}

0 commit comments

Comments
 (0)