public void StaticMethodConversionStrategyTest() { var strategy = new StaticMethodConversionStrategy(); Assert.IsFalse(strategy.CanConvert(typeof(object), typeof(object))); Assert.IsTrue(strategy.CanConvert(typeof(ConvertTest), typeof(int))); Assert.IsTrue(strategy.CanConvert(typeof(int), typeof(ConvertTest))); Assert.IsFalse(strategy.CanConvert(typeof(ConvertTest), typeof(string))); Assert.IsFalse(strategy.CanConvert(typeof(string), typeof(ConvertTest))); var val = strategy.Convert(typeof(ConvertTest), typeof(int), new ConvertTest(42), null); Assert.AreEqual(42, val); var cval = strategy.Convert(typeof(int), typeof(ConvertTest), 42, null) as ConvertTest; Assert.IsNotNull(cval); Assert.AreEqual(42, cval.Value); val = strategy.Convert(typeof(ConvertTest2), typeof(int), new ConvertTest2(42), null); Assert.AreEqual(42, val); var cval2 = strategy.Convert(typeof(int), typeof(ConvertTest2), 42, null) as ConvertTest2; Assert.IsNotNull(cval2); Assert.AreEqual(42, cval2.Value); }
public void StaticMethodConversionStrategyTest() { var strategy = new StaticMethodConversionStrategy(); object newValue; Assert.IsFalse(strategy.TryConvert(new ConvertTest(42), typeof(DateTime), out newValue)); // Tests cast operator Assert.IsTrue(strategy.TryConvert(new ConvertTest(42), typeof(int), out newValue)); Assert.AreEqual(42, newValue); // Tests cast operator Assert.IsTrue(strategy.TryConvert(42, typeof(ConvertTest), out newValue)); var cval = newValue as ConvertTest; Assert.IsNotNull(cval); Assert.AreEqual(42, cval.Value); Assert.IsTrue(strategy.TryConvert(new ConvertTest2(42), typeof(int), out newValue)); Assert.AreEqual(42, newValue); Assert.IsTrue(strategy.TryConvert(42, typeof(ConvertTest2), out newValue)); var cval2 = newValue as ConvertTest2; Assert.IsNotNull(cval2); Assert.AreEqual(42, cval2.Value); }