public void ConvertTo_String ()
{
EnumConverter converter = new EnumConverter (typeof (E));
Assert.AreEqual ("Bb", converter.ConvertTo (null,
CultureInfo.InvariantCulture, E.Bb,
typeof (string)), "#A1");
Assert.AreEqual ("Dd", converter.ConvertTo (null,
CultureInfo.InvariantCulture, 3,
typeof (string)), "#A2");
Assert.AreEqual (string.Empty, converter.ConvertTo (
null, CultureInfo.InvariantCulture, null,
typeof (string)), "#A3");
Assert.AreEqual ("Cc", converter.ConvertTo (
null, CultureInfo.InvariantCulture, (E) 2,
typeof (string)), "#A4");
Assert.AreEqual ("Cc", converter.ConvertTo (null,
CultureInfo.InvariantCulture, E2.Bb,
typeof (string)), "#A5");
Assert.AreEqual ("Dd", converter.ConvertTo (null,
CultureInfo.InvariantCulture, E.Bb | E.Dd,
typeof (string)), "#A6");
try {
converter.ConvertTo (null, CultureInfo.InvariantCulture,
(E) 666, typeof (string));
Assert.Fail ("#B1");
} catch (ArgumentException ex) {
// The value '666' is not a valid value for the enum 'E'
Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#B2");
Assert.IsNull (ex.InnerException, "#B3");
Assert.IsNotNull (ex.Message, "#B4");
Assert.IsTrue (ex.Message.IndexOf ("'666'") != -1, "#B5");
Assert.IsTrue (ex.Message.IndexOf ("'E'") != -1, "#B6");
Assert.IsNull (ex.ParamName, "#B7");
}
try {
converter.ConvertTo (null, CultureInfo.InvariantCulture,
"Cc", typeof (string));
Assert.Fail ("#C1");
} catch (FormatException ex) {
// Input string was not in a correct format
Assert.AreEqual (typeof (FormatException), ex.GetType (), "#C2");
Assert.IsNull (ex.InnerException, "#C3");
Assert.IsNotNull (ex.Message, "#C4");
}
converter = new EnumConverter (typeof (E2));
Assert.AreEqual ("Bb", converter.ConvertTo (null,
CultureInfo.InvariantCulture, E2.Bb,
typeof (string)), "#B1");
Assert.AreEqual ("Aa, Bb", converter.ConvertTo (null,
CultureInfo.InvariantCulture, 3,
typeof (string)), "#B2");
Assert.AreEqual (string.Empty, converter.ConvertTo (
null, CultureInfo.InvariantCulture, null,
typeof (string)), "#B3");
Assert.AreEqual ("Bb", converter.ConvertTo (
null, CultureInfo.InvariantCulture, (E2) 2,
typeof (string)), "#B4");
Assert.AreEqual ("Aa, Bb", converter.ConvertTo (
null, CultureInfo.InvariantCulture, E.Dd,
typeof (string)), "#B5");
Assert.AreEqual ("Bb, Dd", converter.ConvertTo (null,
CultureInfo.InvariantCulture, E2.Bb | E2.Dd,
typeof (string)), "#B6");
}