using System.Globalization;
using System.Text.Json.Serialization;
using System.Runtime.Serialization;
using AutoMapper.Extensions.EnumMapping;
static void Main(string[] args)
MapsOk(PmTokenType.Rfid, OcpiTokenType.Rfid);
MapsOk(PmTokenType.AdHocUser, OcpiTokenType.AdHocUser);
MapsOk(PmTokenType.AppUser, OcpiTokenType.AppUser);
MapsOk(PmTokenType.Other, OcpiTokenType.Other);
MapsOk(PmTokenType.NewAdHocUser, OcpiTokenType.NewAdHocUser);
MapsOk(PmTokenType.Extra1, OcpiTokenType.NewAdHocUser);
public static void MapsOk(PmTokenType pmTokenType, OcpiTokenType ocpiTokenType)
var fixture = new Fixture();
var pmClass = fixture.Create<PmClass>();
var mapper = new MapperConfiguration(cfg =>
cfg.CreateMap<PmClass, OcpiClass>()
.ForMember(dest => dest.TokenType, opt => opt.MapFrom(src => src.TokenType));
cfg.CreateMap<PmTokenType, OcpiTokenType>()
.ConvertUsingEnumMapping(opt => opt.MapByName());
pmClass.TokenType = pmTokenType;
var result = mapper.Map<OcpiClass>(pmClass);
Console.WriteLine($"{(int)pmClass.TokenType} {pmClass.TokenType} = {(int)result.TokenType} {result.TokenType}");
result.Should().BeEquivalentTo(new
TokenType = ocpiTokenType
public PmTokenType TokenType { get; set; }
public OcpiTokenType TokenType { get; set; }
public enum OcpiTokenType
[EnumMember(Value = "NEW_AD_HOC_USER")]
[EnumMember(Value = "AD_HOC_USER")]
[EnumMember(Value = "APP_USER")]
[EnumMember(Value = "OTHER")]
[EnumMember(Value = "RFID")]