示例#1
0
        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);
        }
示例#2
0
        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);
            }
        }