public void TestStringValues(string key, object val)
        {
            var extCollection = new AbstractItemExtensionCollection();

            extCollection.Add(key, val);

            Assert.Equal(val, extCollection.Get(key, typeof(string)));
            Assert.Equal(val, extCollection.Get(key.ToLowerInvariant(), typeof(string)));
            Assert.Equal(val, extCollection.Get(key.ToUpperInvariant(), typeof(string)));
        }
        public void TestDoubleValues(string val, bool expectedSuccess)
        {
            var key           = "Key";
            var extCollection = new AbstractItemExtensionCollection();

            extCollection.Add(key, val);

            var converted = Double.TryParse(val, out double dVal);

            Assert.Equal(converted, expectedSuccess);
            if (converted)
            {
                Assert.Equal(dVal, extCollection.Get(key, typeof(double)));
                Assert.Equal(dVal, extCollection.Get(key, typeof(double?)));
            }
            else
            {
                Assert.Throws <FormatException>(() => extCollection.Get(key, typeof(double)));
            }
        }