public void StringToBoolConversionStrategyTest()
        {
            var    strategy = new StringToBoolConversionStrategy();
            object newValue;

            Assert.IsFalse(strategy.TryConvert(new object(), typeof(object), out newValue));
            Assert.IsFalse(strategy.TryConvert(true, typeof(string), out newValue));
            Assert.IsFalse(strategy.TryConvert(null, typeof(bool), out newValue));
            Assert.IsFalse(strategy.TryConvert(5, typeof(bool), out newValue));

            Assert.IsTrue(strategy.TryConvert("true", typeof(bool), out newValue));
            Assert.AreEqual(true, 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("TrUe", typeof(bool), out newValue));
            Assert.AreEqual(true, newValue);

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

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

            Assert.IsTrue(strategy.TryConvert("hello", typeof(bool), out newValue));
            Assert.AreEqual(false, newValue);
        }
        public void StringToBoolConversionStrategyTest()
        {
            var strategy = new StringToBoolConversionStrategy();

            Assert.IsFalse(strategy.CanConvert(typeof(object), typeof(object)));
            Assert.IsFalse(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);

            val = strategy.Convert(typeof(string), typeof(bool), "TrUe", null);
            Assert.AreEqual(true, val);

            val = strategy.Convert(typeof(string), typeof(bool), "yes", null);
            Assert.AreEqual(true, val);

            val = strategy.Convert(typeof(string), typeof(bool), "ok", null);
            Assert.AreEqual(true, val);
        }