System.Web.UI.DataSourceCacheDurationConverter.ConvertFrom C# (CSharp) Method

ConvertFrom() public method

public ConvertFrom ( ITypeDescriptorContext context, CultureInfo culture, object value ) : object
context ITypeDescriptorContext
culture System.Globalization.CultureInfo
value object
return object
		public override object ConvertFrom (ITypeDescriptorContext context, CultureInfo culture, object value)
		{
			if (value == null)
				return null;

			string val = value as string;
			if (val != null && (val.Length == 0 || String.Compare ("infinite", val, StringComparison.OrdinalIgnoreCase) == 0))
				return (int)0;

			return base.ConvertFrom (context, culture, value);
		}

Usage Example

		public void ConvertFrom ()
		{
			var cvt = new DataSourceCacheDurationConverter ();
			Assert.AreEqual (null, cvt.ConvertFrom (null, null, null), "#A1-1");
			Assert.AreEqual (0, cvt.ConvertFrom (null, null, String.Empty), "#A1-2");
			Assert.AreEqual (0, cvt.ConvertFrom (null, null, "infinite"), "#A1-3");
			Assert.AreEqual (0, cvt.ConvertFrom (null, null, "INfINiTE"), "#A1-4");
			AssertExtensions.Throws<Exception> (() => {
				cvt.ConvertFrom (null, null, "dummy");
			}, "#A1-5");
			Assert.AreEqual (5, cvt.ConvertFrom (null, null, "5"), "#A1-6");
			Assert.AreEqual (-5, cvt.ConvertFrom (null, null, "-5"), "#A1-7");

			Assert.AreEqual (typeof (Int32), cvt.ConvertFrom (null, null, "5").GetType (), "#A2-1");
			Assert.AreEqual (typeof (Int32), cvt.ConvertFrom (null, null, "infinite").GetType (), "#A2-2");
		}