public void TypeConverterConversionStrategyTest()
        {
            var strategy = new TypeConverterConversionStrategy();

            Assert.IsFalse(strategy.CanConvert(typeof(object), typeof(object)));
            Assert.IsTrue(strategy.CanConvert(typeof(bool), typeof(string)));
            Assert.IsTrue(strategy.CanConvert(typeof(string), typeof(bool)));

            var val = strategy.Convert(typeof(string), typeof(bool), "true", null);

            Assert.AreEqual(true, val);

            val = strategy.Convert(typeof(string), typeof(bool), "false", null);
            Assert.AreEqual(false, val);
        }
        public void TypeConverterConversionStrategyTest()
        {
            var    strategy = new TypeConverterConversionStrategy();
            object newValue;

            Assert.IsTrue(strategy.TryConvert("true", typeof(bool), out newValue));
            Assert.AreEqual(true, newValue);

            Assert.IsTrue(strategy.TryConvert("false", typeof(bool), out newValue));
            Assert.AreEqual(false, newValue);

            Assert.IsTrue(strategy.TryConvert(99, typeof(ConvertTest), out newValue));
            var ctest = newValue as ConvertTest;

            Assert.IsNotNull(ctest);
            Assert.AreEqual(99, ctest.Value);
        }