public void TestEqualityOperatorRegistry() { var options = new JsonSerializerOptions(); options.Converters.Add(new JsonElementInferredTypeConverter()); options.Converters.Add(new SettingHandlerDescription.JsonConverter()); var json = JsonSerializer.Serialize(new Dictionary <string, object>() { { "type", "com.microsoft.windows.registry" }, { "key_name", "thekey" }, { "value_name", "thevalue" }, { "value_type", "binary" } }); RegistrySettingHandlerDescription registry = (RegistrySettingHandlerDescription)JsonSerializer.Deserialize <SettingHandlerDescription>(json, options); RegistrySettingHandlerDescription sameregistry = new RegistrySettingHandlerDescription("thekey", "thevalue", RegistryValueKind.Binary); RegistrySettingHandlerDescription differentregistry1 = new RegistrySettingHandlerDescription("differentkey", "thevalue", RegistryValueKind.Binary); RegistrySettingHandlerDescription differentregistry2 = new RegistrySettingHandlerDescription("thekey", "differentvalue", RegistryValueKind.Binary); //RegistrySettingHandlerDescription differentregistry3 = new RegistrySettingHandlerDescription("thekey", "thevalue", RegistryValueKind.DWord); Assert.NotNull(registry); Assert.NotNull(sameregistry); Assert.NotNull(differentregistry1); Assert.NotNull(differentregistry2); //Assert.NotNull(differentregistry3); Assert.Equal(registry, sameregistry); Assert.NotEqual(registry, differentregistry1); Assert.NotEqual(registry, differentregistry2); //Assert.NotEqual(registry, differentregistry3); }
public void TestJsonDeserializeRegistry(string keyName, string valueName, string valueType, RegistryValueKind valueKind, bool success) { var options = new JsonSerializerOptions(); options.Converters.Add(new JsonElementInferredTypeConverter()); options.Converters.Add(new SettingHandlerDescription.JsonConverter()); var json = JsonSerializer.Serialize(new Dictionary <string, object>() { { "type", "com.microsoft.windows.registry" }, { "key_name", keyName }, { "value_name", valueName }, { "value_type", valueType } }); var handler = JsonSerializer.Deserialize <SettingHandlerDescription>(json, options); Assert.NotNull(handler); if (success) { Assert.Equal(SettingHandlerDescription.HandlerKind.Registry, handler.Kind); Assert.IsType <RegistrySettingHandlerDescription>(handler); RegistrySettingHandlerDescription registry = (RegistrySettingHandlerDescription)handler; Assert.Equal(keyName, registry.KeyName); Assert.Equal(valueName, registry.ValueName); Assert.Equal(valueKind, registry.ValueKind); } else { Assert.Equal(SettingHandlerDescription.HandlerKind.Unknown, handler.Kind); } }