Пример #1
0
        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);
        }
Пример #2
0
 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);
        }
Пример #4
0
 public static byte MakeFlag(FlagDefinitions inFlags, FlagDefinitions outFlags)
 {
     return((byte)(((byte)inFlags << 4) | (byte)outFlags));
 }