Skip to content

Commit b9c263c

Browse files
authored
Upgrades and Fixes (ardalis#248)
* Got MessagePack upgrade compiling; tests failing * Fix EF Core Sqlite test failure due to old nuget package * Use project references Update usings * Update messagepack Failed to get tests passing Updated proto tests to 3 * Fix merge issues and broken tests
1 parent 66151ec commit b9c263c

29 files changed

+194
-186
lines changed

benchmarks/SmartEnum.Benchmarks/SerializationBenchmarks.cs

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -73,12 +73,15 @@ public void GlobalSetup()
7373
global::Utf8Json.Resolvers.CompositeResolver.Register(
7474
new Utf8Json.SmartEnumNameFormatter<TestSmartEnum, int>(),
7575
new Utf8Json.SmartEnumValueFormatter<TestSmartEnum, int>());
76-
global::MessagePack.Resolvers.CompositeResolver.Create(
76+
77+
var resolver = global::MessagePack.Resolvers.CompositeResolver.Create(
7778
new MessagePack.SmartEnumNameFormatter<TestSmartEnum, int>(),
7879
new MessagePack.SmartEnumValueFormatter<TestSmartEnum, int>());
80+
var options = global::MessagePack.Resolvers.StandardResolverAllowPrivate.Options
81+
.WithResolver(resolver);
7982

80-
nameMessagePack = global::MessagePack.MessagePackSerializer.Serialize(nameEnumInstance);
81-
valueMessagePack = global::MessagePack.MessagePackSerializer.Serialize(valueEnumInstance);
83+
nameMessagePack = global::MessagePack.MessagePackSerializer.Serialize(nameEnumInstance, options);
84+
valueMessagePack = global::MessagePack.MessagePackSerializer.Serialize(valueEnumInstance, options);
8285

8386
serializeStream = new MemoryStream();
8487

benchmarks/SmartEnum.Benchmarks/SmartEnum.Benchmarks.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<Project Sdk="Microsoft.NET.Sdk">
1+
<Project Sdk="Microsoft.NET.Sdk">
22
<PropertyGroup>
33
<OutputType>Exe</OutputType>
44
<TargetFramework>netcoreapp2.1</TargetFramework>
@@ -11,10 +11,10 @@
1111
<PackageReference Include="BenchmarkDotNet" Version="0.13.1" />
1212
<PackageReference Include="Constant" Version="2.0.4" />
1313
<PackageReference Include="Enums.NET" Version="4.0.0" />
14+
<ProjectReference Include="..\..\src\SmartEnum.MessagePack\SmartEnum.MessagePack.csproj" />
1415
<ProjectReference Include="..\..\src\SmartEnum\SmartEnum.csproj" />
1516
<ProjectReference Include="..\..\src\SmartEnum.JsonNet\SmartEnum.JsonNet.csproj" />
1617
<ProjectReference Include="..\..\src\SmartEnum.Utf8Json\SmartEnum.Utf8Json.csproj" />
17-
<ProjectReference Include="..\..\src\SmartEnum.MessagePack\SmartEnum.MessagePack.csproj" />
1818
<ProjectReference Include="..\..\src\SmartEnum.ProtoBufNet\SmartEnum.ProtoBufNet.csproj" />
1919
</ItemGroup>
2020
</Project>

src/SmartEnum.AutoFixture/SmartEnum.AutoFixture.csproj

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,14 @@
1818
<DocumentationFile>bin\$(Configuration)\$(TargetFramework)\$(AssemblyName).xml</DocumentationFile>
1919
</PropertyGroup>
2020
<ItemGroup>
21-
<PackageReference Include="Ardalis.SmartEnum" Version="2.0.1" />
2221
<PackageReference Include="AutoFixture" Version="4.17.0" />
2322
<PackageReference Include="Microsoft.SourceLink.GitHub" Version="1.1.1" PrivateAssets="All" />
2423
<PackageReference Include="SonarAnalyzer.CSharp" Version="8.35.0.42613" PrivateAssets="All" />
2524
</ItemGroup>
2625
<ItemGroup>
2726
<None Include="icon.png" Pack="true" Visible="false" PackagePath="" />
2827
</ItemGroup>
28+
<ItemGroup>
29+
<ProjectReference Include="..\SmartEnum\SmartEnum.csproj" />
30+
</ItemGroup>
2931
</Project>

src/SmartEnum.EFCore.UnitTests/SmartEnum.EFCore.IntegrationTests.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.0.0" />
1313
<PackageReference Include="xunit" Version="2.4.1" />
1414
<PackageReference Include="xunit.analyzers" Version="0.10.0" />
15-
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.1">
15+
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.3">
1616
<PrivateAssets>all</PrivateAssets>
1717
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
1818
</PackageReference>

src/SmartEnum.JsonNet/SmartEnum.JsonNet.csproj

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,14 @@
1818
<DocumentationFile>bin\$(Configuration)\$(TargetFramework)\$(AssemblyName).xml</DocumentationFile>
1919
</PropertyGroup>
2020
<ItemGroup>
21-
<PackageReference Include="Ardalis.SmartEnum" Version="2.0.1" />
2221
<PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
2322
<PackageReference Include="Microsoft.SourceLink.GitHub" Version="1.1.1" PrivateAssets="All" />
2423
<PackageReference Include="SonarAnalyzer.CSharp" Version="8.35.0.42613" PrivateAssets="All" />
2524
</ItemGroup>
2625
<ItemGroup>
2726
<None Include="icon.png" Pack="true" Visible="false" PackagePath="" />
2827
</ItemGroup>
28+
<ItemGroup>
29+
<ProjectReference Include="..\SmartEnum\SmartEnum.csproj" />
30+
</ItemGroup>
2931
</Project>

src/SmartEnum.JsonNet/SmartFlagEnumNameConverter.cs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,5 @@
1-
using System;
2-
using System.Collections.Generic;
3-
using System.Data.SqlTypes;
1+
using System;
42
using System.Linq;
5-
using System.Text;
63
using Newtonsoft.Json;
74

85
namespace Ardalis.SmartEnum.JsonNet

src/SmartEnum.MessagePack/SmartEnum.MessagePack.csproj

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,13 @@
1919
</PropertyGroup>
2020
<ItemGroup>
2121
<PackageReference Include="MessagePack" Version="2.3.85" />
22-
<PackageReference Include="Ardalis.SmartEnum" Version="2.0.1" />
2322
<PackageReference Include="Microsoft.SourceLink.GitHub" Version="1.1.1" PrivateAssets="All" />
24-
<PackageReference Include="SonarAnalyzer.CSharp" Version="8.35.0.42613" PrivateAssets="All" />
23+
<PackageReference Include="SonarAnalyzer.CSharp" Version="8.37.0.45539" PrivateAssets="All" />
2524
</ItemGroup>
2625
<ItemGroup>
2726
<None Include="icon.png" Pack="true" Visible="false" PackagePath="" />
2827
</ItemGroup>
28+
<ItemGroup>
29+
<ProjectReference Include="..\SmartEnum\SmartEnum.csproj" />
30+
</ItemGroup>
2931
</Project>

src/SmartEnum.MessagePack/SmartEnumNameFormatter.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ public TEnum Deserialize(ref MessagePackReader reader, MessagePackSerializerOpti
1919
{
2020
var name = reader.ReadString();
2121
return SmartEnum<TEnum, TValue>.FromName(name);
22-
2322
}
2423
}
2524
}

src/SmartEnum.MessagePack/SmartEnumValueFormatter.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ private void Write(ref MessagePackWriter writer, TValue value)
8080

8181
public TEnum Deserialize(ref MessagePackReader reader, MessagePackSerializerOptions options)
8282
{
83-
if(reader.TryReadNil())
83+
if (reader.TryReadNil())
8484
{
8585
return default;
8686
}

src/SmartEnum.MessagePack/SmartFlagEnumNameFormatter.cs

Lines changed: 7 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,26 @@
1-
using System.Linq;
1+
using System.Linq;
22

33
namespace Ardalis.SmartEnum.MessagePack
44
{
55
using System;
66
using global::MessagePack;
77
using global::MessagePack.Formatters;
8-
8+
99

1010
public sealed class SmartFlagEnumNameFormatter<TEnum, TValue> : IMessagePackFormatter<TEnum>
1111
where TEnum : SmartFlagEnum<TEnum, TValue>
1212
where TValue : struct, IEquatable<TValue>, IComparable<TValue>
1313
{
14-
public int Serialize(ref byte[] bytes, int offset, TEnum value, IFormatterResolver formatterResolver)
14+
public void Serialize(ref MessagePackWriter writer, TEnum value, MessagePackSerializerOptions options)
1515
{
16-
if (value is null)
17-
{
18-
return MessagePackBinary.WriteNil(ref bytes, offset);
19-
}
16+
if (value is null) return;
2017

21-
return MessagePackBinary.WriteString(ref bytes, offset, value.Name);
18+
writer.Write(value.Name);
2219
}
2320

24-
public TEnum Deserialize(byte[] bytes, int offset, IFormatterResolver formatterResolver, out int readSize)
21+
public TEnum Deserialize(ref MessagePackReader reader, MessagePackSerializerOptions options)
2522
{
26-
if (MessagePackBinary.IsNil(bytes, offset))
27-
{
28-
readSize = 1;
29-
return null;
30-
}
31-
32-
var name = MessagePackBinary.ReadString(bytes, offset, out readSize);
23+
var name = reader.ReadString();
3324
return SmartFlagEnum<TEnum, TValue>.FromName(name).FirstOrDefault();
3425
}
3526
}

0 commit comments

Comments
 (0)