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

Commit c0ff13c

Browse files
committed
Created IEnumSerializerConfigurator to allow easier upstream mocking/testing/etc.
1 parent 43edff8 commit c0ff13c

File tree

3 files changed

+39
-4
lines changed

3 files changed

+39
-4
lines changed

src/ServiceStack.Text.EnumMemberSerializer/EnumSerializerConfigurator.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ namespace ServiceStack.Text.EnumMemberSerializer
77
/// <summary>
88
/// Fluent configuration for the enum member enumeration serializer
99
/// </summary>
10-
public sealed class EnumSerializerConfigurator
10+
public sealed class EnumSerializerConfigurator : IEnumSerializerConfigurator
1111
{
1212
private readonly HashSet<Assembly> _assembliesToScan = new HashSet<Assembly>();
1313
private readonly HashSet<Type> _enumTypes = new HashSet<Type>();
@@ -32,7 +32,7 @@ internal IEnumSerializerHelpersProxy JsConfigProxy
3232
/// This filter applies to the types found in the provided assembly list.
3333
/// </summary>
3434
/// <param name="enumNamespaceFilter">Returns true for an acceptable namespace.</param>
35-
public EnumSerializerConfigurator WithNamespaceFilter(Func<string, bool> enumNamespaceFilter)
35+
public IEnumSerializerConfigurator WithNamespaceFilter(Func<string, bool> enumNamespaceFilter)
3636
{
3737
if (enumNamespaceFilter != null)
3838
{
@@ -47,7 +47,7 @@ public EnumSerializerConfigurator WithNamespaceFilter(Func<string, bool> enumNam
4747
/// Multiple calls will add to the existing list.
4848
/// </summary>
4949
/// <param name="assembliesToScan"></param>
50-
public EnumSerializerConfigurator WithAssemblies(ICollection<Assembly> assembliesToScan)
50+
public IEnumSerializerConfigurator WithAssemblies(ICollection<Assembly> assembliesToScan)
5151
{
5252
if (!assembliesToScan.IsEmpty())
5353
{
@@ -67,7 +67,7 @@ public EnumSerializerConfigurator WithAssemblies(ICollection<Assembly> assemblie
6767
/// Allows individual enumeration types to be specified.
6868
/// Multiple calls will add to the existing list.
6969
/// </summary>
70-
public EnumSerializerConfigurator WithEnumTypes(ICollection<Type> enumTypes)
70+
public IEnumSerializerConfigurator WithEnumTypes(ICollection<Type> enumTypes)
7171
{
7272
if (!enumTypes.IsEmpty())
7373
{
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Reflection;
4+
5+
namespace ServiceStack.Text.EnumMemberSerializer
6+
{
7+
/// <summary>
8+
/// Fluent configuration for the custom enumeration serializer.
9+
/// </summary>
10+
public interface IEnumSerializerConfigurator
11+
{
12+
/// <summary>
13+
/// Filter to apply to namespaces.
14+
/// </summary>
15+
/// <param name="enumNamespaceFilter">Returns true for an acceptable namespace.</param>
16+
IEnumSerializerConfigurator WithNamespaceFilter(Func<string, bool> enumNamespaceFilter);
17+
18+
/// <summary>
19+
/// Specifies assemblies to search.
20+
/// </summary>
21+
/// <param name="assembliesToScan"></param>
22+
IEnumSerializerConfigurator WithAssemblies(ICollection<Assembly> assembliesToScan);
23+
24+
/// <summary>
25+
/// Specifies individual enumeration types.
26+
/// </summary>
27+
IEnumSerializerConfigurator WithEnumTypes(ICollection<Type> enumTypes);
28+
29+
/// <summary>
30+
/// Perform configuration action.
31+
/// </summary>
32+
void Configure();
33+
}
34+
}

src/ServiceStack.Text.EnumMemberSerializer/ServiceStack.Text.EnumMemberSerializer.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@
4949
<Compile Include="EnumSerializerHelpersProxy.cs" />
5050
<Compile Include="EnumTypeExtensions.cs" />
5151
<Compile Include="FieldInfoExtensions.cs" />
52+
<Compile Include="IEnumSerializerConfigurator.cs" />
5253
<Compile Include="IEnumSerializerHelpersProxy.cs" />
5354
<Compile Include="Properties\AssemblyInfo.cs" />
5455
</ItemGroup>

0 commit comments

Comments
 (0)