public void ConfigToSectionList() { var conf = ParseConfiguration(); var obj = conf.ToConfigObject(); var sectionList = ConfigurationSectionList.FromConfigObject(obj); Assert.IsNotNull(sectionList); var obj2 = sectionList.ToConfigObject(); Assert.IsNotNull(obj2); Assert.AreEqual(obj.Defaults.DefaultCCacheName, obj2.Defaults.DefaultCCacheName); Assert.AreEqual(obj.Defaults.DefaultRealm, obj2.Defaults.DefaultRealm); Assert.AreEqual(1, obj.Realms.Count); Assert.AreEqual(3, obj.Realms["EXAMPLE.COM"].Kdc.Count()); Assert.AreEqual(obj.CaPaths["EXAMPLE.COM"]["DEV.EXAMPLE.COM"], obj2.CaPaths["EXAMPLE.COM"]["DEV.EXAMPLE.COM"]); Assert.AreEqual(obj.CaPaths["EXAMPLE.COM"]["TEST.EXAMPLE.COM"], obj2.CaPaths["EXAMPLE.COM"]["TEST.EXAMPLE.COM"]); Assert.AreEqual(obj.CaPaths["EXAMPLE.COM"].Count, obj2.CaPaths["EXAMPLE.COM"].Count); for (var i = 0; i < obj.Defaults.DefaultTgsEncTypes.Count(); i++) { Assert.AreEqual(obj.Defaults.DefaultTgsEncTypes.ElementAt(i), obj2.Defaults.DefaultTgsEncTypes.ElementAt(i)); } }
public void ConfigurationStoresMultipleValuesToSingleKey() { var config = new ConfigurationSectionList { { "foo", "bar" } }; Assert.AreEqual("bar", config["foo"]); config.Add("foo", "baz"); var foo = config["foo"]; Assert.IsInstanceOfType(foo, typeof(IEnumerable <object>)); var foo2 = foo as IEnumerable <object>; Assert.AreEqual(2, foo2.Count()); Assert.AreEqual("bar", foo2.ElementAt(0)); Assert.AreEqual("baz", foo2.ElementAt(1)); config.Remove("foo"); Assert.IsNull(config["foo"]); }
public void DefaultsAreHandled() { var emptyObj = Krb5ConfigurationSerializer.Serialize(ConfigurationSectionList.FromConfigObject(new Krb5Config())); var obj = Krb5ConfigurationSerializer.Deserialize(emptyObj).ToConfigObject(); Assert.AreEqual(2, obj.Defaults.DefaultTgsEncTypes.Count()); }
private static object ParseValue(Type type, object existingValue, string param, string nextValue, out bool usedValue) { usedValue = true; object value; if (type.IsGenericType && (type.GetGenericTypeDefinition() == typeof(ICollection <>) || type.GetGenericTypeDefinition() == typeof(IEnumerable <>))) { value = SetOrAddCollectionValue(type, existingValue, nextValue); } else if (type == typeof(bool) || type == typeof(bool?)) { if (!bool.TryParse(nextValue, out bool result)) { result = true; usedValue = false; } value = result; } else if (type == typeof(TimeSpan) || type == typeof(TimeSpan?)) { var ts = TimeSpanDurationSerializer.Parse(nextValue); value = ts; } else if (type.BaseType == typeof(Enum)) { if (string.IsNullOrWhiteSpace(nextValue)) { return(null); } value = ConfigurationSectionList.ParseEnum(nextValue, type); } else { value = nextValue; } return(value); }
public void HandleOptionalValues() { var conf = new ConfigurationSectionList(); conf.Set("libdefaults.blah", "123", false); conf.Set("libdefaults.allow_weak_crypto", "true", false); var obj = conf.ToConfigObject(); Assert.IsTrue(obj.Defaults.AllowWeakCrypto); Assert.AreEqual(obj.Defaults.OptionalProperties["blah"], "123"); var roundtrip = Krb5ConfigurationSerializer.Serialize(obj); Assert.IsTrue(roundtrip.Contains("blah = 123")); var conf2 = Krb5ConfigurationSerializer.Deserialize(roundtrip); var blah = conf2.Get("libdefaults.blah", typeof(string)).ToString(); Assert.AreEqual("123", blah); }