Skip to content

Commit 40fc723

Browse files
Update StrEnum to v2.0.0. Switch to parsing members by value only. (#2)
1 parent 4c392b0 commit 40fc723

4 files changed

Lines changed: 17 additions & 6 deletions

File tree

src/StrEnum.EntityFrameworkCore/StrEnum.EntityFrameworkCore.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,6 @@
5353
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
5454
</PackageReference>
5555

56-
<PackageReference Include="StrEnum" Version="[1.5.0,2.0.0)" />
56+
<PackageReference Include="StrEnum" Version="[2.0.0,3.0.0)" />
5757
</ItemGroup>
5858
</Project>

src/StrEnum.EntityFrameworkCore/StringEnumValueConverter.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ public class StringEnumValueConverter<TEnum> : ValueConverter<StringEnum<TEnum>,
1010
where TEnum : StringEnum<TEnum>, new()
1111
{
1212
public StringEnumValueConverter(ConverterMappingHints? mappingHints = null)
13-
: base(@enum => (string)@enum, value => StringEnum<TEnum>.Parse(value, false), mappingHints)
13+
: base(@enum => (string)@enum, value => StringEnum<TEnum>.Parse(value, false, MatchBy.ValueOnly), mappingHints)
1414
{
1515
}
1616
}

test/StrEnum.EntityFrameworkCore.UnitTests/StrEnum.EntityFrameworkCore.UnitTests.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
<ItemGroup>
1111
<PackageReference Include="FluentAssertions" Version="6.6.0" />
1212
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.11.0" />
13-
<PackageReference Include="StrEnum" Version="1.5.0" />
13+
<PackageReference Include="StrEnum" Version="2.0.1" />
1414
<PackageReference Include="xunit" Version="2.4.1" />
1515
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.3">
1616
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>

test/StrEnum.EntityFrameworkCore.UnitTests/StringEnumValueConverterTests.cs

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
using System.Collections.Generic;
1+
using System;
2+
using System.Collections.Generic;
23
using FluentAssertions;
34
using Xunit;
45

@@ -16,12 +17,12 @@ public class Country : StringEnum<Country>
1617
new[]
1718
{
1819
new object?[] { "UKR", Country.Ukraine},
19-
new object?[] { "SouthAfrica", Country.SouthAfrica}
20+
new object?[] { "ZAF", Country.SouthAfrica}
2021
};
2122

2223
[Theory]
2324
[MemberData(nameof(FromStringTestCases))]
24-
public void ConvertFromString_ShouldConvertToStringEnumByNameOrValue(string value, Country expectedMember)
25+
public void ConvertFromString_ShouldConvertToStringEnumByValue(string value, Country expectedMember)
2526
{
2627
var converter = new StringEnumValueConverter<Country>();
2728

@@ -30,6 +31,16 @@ public void ConvertFromString_ShouldConvertToStringEnumByNameOrValue(string valu
3031
actualCountry.Should().Be(expectedMember);
3132
}
3233

34+
[Fact]
35+
public void ConvertFromString_GivenMemberName_ShouldThrowAnException()
36+
{
37+
var converter = new StringEnumValueConverter<Country>();
38+
39+
var convert = () => converter.ConvertFromProvider("SouthAfrica");
40+
41+
convert.Should().Throw<ArgumentException>();
42+
}
43+
3344
[Fact]
3445
public void ConvertToString_ShouldConvertMemberValueToString()
3546
{

0 commit comments

Comments
 (0)