public void EnumMemberInvalidDeserializationWithFallbackTest() { JsonSerializerOptions Options = new JsonSerializerOptions(); Options.Converters.Add(new JsonStringEnumMemberConverter(new JsonStringEnumMemberConverterOptions(deserializationFailureFallbackValue: (ulong)DayOfWeek.Friday))); DayOfWeek dayOfWeek = JsonSerializer.Deserialize <DayOfWeek>(@"""invalid_value""", Options); Assert.AreEqual(DayOfWeek.Friday, dayOfWeek); DayOfWeek[]? days = JsonSerializer.Deserialize <DayOfWeek[]>(@"[{}, ""Saturday""]", Options); CollectionAssert.AreEqual(new DayOfWeek[] { DayOfWeek.Friday, DayOfWeek.Saturday }, days); Options = new JsonSerializerOptions(); Options.Converters.Add(new JsonStringEnumMemberConverter(new JsonStringEnumMemberConverterOptions { DeserializationFailureFallbackValue = FlagDefinitions.Four })); FlagDefinitions Value = JsonSerializer.Deserialize <FlagDefinitions>(@"""invalid_value""", Options); Assert.AreEqual(FlagDefinitions.Four, Value); Value = JsonSerializer.Deserialize <FlagDefinitions>(@"""one value, invalid_value, two value""", Options); Assert.AreEqual(FlagDefinitions.One | FlagDefinitions.Four | FlagDefinitions.Two, Value); }
public Armlet(string name, ArmletOpcodes opcode, FlagDefinitions inFlags, FlagDefinitions outFlags, byte size) { this.Name = name; this.Opcode = (byte)opcode; this.Flags = MakeFlag(inFlags, outFlags); this.Size = size; }
public void EnumMemberDeserializationTest() { FlagDefinitions Value = JsonSerializer.Deserialize <FlagDefinitions>(@"""all values"""); Assert.AreEqual(FlagDefinitions.All, Value); Value = JsonSerializer.Deserialize <FlagDefinitions>(@"""two value, three value"""); Assert.AreEqual(FlagDefinitions.Two | FlagDefinitions.Three, Value); }
public static byte MakeFlag(FlagDefinitions inFlags, FlagDefinitions outFlags) { return((byte)(((byte)inFlags << 4) | (byte)outFlags)); }