void IntegerTests(ParameterBinder[] unsignedbinders, ParameterBinder[] signedBinders) { foreach (var binder in signedBinders.Concat(unsignedbinders)) { foreach (var item in new[] { "5", "0" }) { object result; Assert.IsTrue(binder.TryBind(item, CultureInfo.InvariantCulture, out result)); Assert.AreEqual(item, Convert.ToString(result, CultureInfo.InvariantCulture)); } foreach (var item in new[] { "", " ", null, " 5", "5 ", "00", "05", "+0", "+5" }) { object result; Assert.IsFalse(binder.TryBind(item, CultureInfo.InvariantCulture, out result)); Assert.IsNull(result); } } foreach (var binder in signedBinders) { foreach (var item in new[] { "-5" }) { object result; Assert.IsTrue(binder.TryBind(item, CultureInfo.InvariantCulture, out result)); Assert.AreEqual(item, Convert.ToString(result, CultureInfo.InvariantCulture)); } // TODO: Disallow -0 in v2 foreach (var item in new[] { /*"-0",*/ "-05" }) { object result; Assert.IsFalse(binder.TryBind(item, CultureInfo.InvariantCulture, out result)); Assert.IsNull(result); } } }