2014-08-13 10:39:27 +01:00
|
|
|
//
|
|
|
|
// System.ComponentModel.CultureInfoConverter test cases
|
|
|
|
//
|
|
|
|
// Authors:
|
|
|
|
// Gert Driesen (drieseng@users.sourceforge.net)
|
|
|
|
//
|
|
|
|
// (c) 2008 Gert Driesen
|
|
|
|
//
|
|
|
|
|
|
|
|
using System;
|
|
|
|
using System.ComponentModel;
|
|
|
|
using System.ComponentModel.Design.Serialization;
|
|
|
|
using System.Globalization;
|
|
|
|
|
|
|
|
using NUnit.Framework;
|
|
|
|
|
|
|
|
namespace MonoTests.System.ComponentModel
|
|
|
|
{
|
|
|
|
[TestFixture]
|
|
|
|
public class CultureInfoConverterTest
|
|
|
|
{
|
|
|
|
private CultureInfoConverter converter;
|
|
|
|
|
|
|
|
[SetUp]
|
|
|
|
public void SetUp ()
|
|
|
|
{
|
|
|
|
converter = new CultureInfoConverter ();
|
|
|
|
}
|
|
|
|
|
|
|
|
[Test]
|
|
|
|
public void CanConvertFrom ()
|
|
|
|
{
|
|
|
|
Assert.IsTrue (converter.CanConvertFrom (typeof (string)), "#1");
|
|
|
|
Assert.IsFalse (converter.CanConvertFrom (typeof (CultureInfo)), "#2");
|
|
|
|
Assert.IsFalse (converter.CanConvertFrom (typeof (object)), "#3");
|
|
|
|
Assert.IsFalse (converter.CanConvertFrom (typeof (int)), "#4");
|
|
|
|
Assert.IsTrue (converter.CanConvertFrom (typeof (InstanceDescriptor)), "#5");
|
|
|
|
}
|
|
|
|
|
|
|
|
[Test]
|
|
|
|
public void CanConvertTo ()
|
|
|
|
{
|
|
|
|
Assert.IsTrue (converter.CanConvertTo (typeof (string)), "#1");
|
|
|
|
Assert.IsFalse (converter.CanConvertTo (typeof (object)), "#2");
|
|
|
|
Assert.IsFalse (converter.CanConvertTo (typeof (CultureInfo)), "#3");
|
|
|
|
Assert.IsFalse (converter.CanConvertTo (typeof (int)), "#4");
|
|
|
|
Assert.IsTrue (converter.CanConvertTo (typeof (InstanceDescriptor)), "#5");
|
|
|
|
}
|
|
|
|
|
|
|
|
[Test]
|
|
|
|
public void ConvertFrom_String ()
|
|
|
|
{
|
|
|
|
CultureInfo c;
|
|
|
|
|
|
|
|
c = (CultureInfo) converter.ConvertFrom (null, CultureInfo.InvariantCulture,
|
|
|
|
String.Empty);
|
|
|
|
Assert.AreEqual (CultureInfo.InvariantCulture, c, "#1");
|
|
|
|
|
|
|
|
c = (CultureInfo) converter.ConvertFrom (null, CultureInfo.InvariantCulture,
|
|
|
|
"nl-BE");
|
|
|
|
Assert.AreEqual (new CultureInfo ("nl-BE"), c, "#2");
|
|
|
|
|
2015-04-07 09:35:12 +01:00
|
|
|
try {
|
|
|
|
c = (CultureInfo) converter.ConvertFrom (null, CultureInfo.InvariantCulture,
|
|
|
|
"Dut");
|
|
|
|
Assert.Fail ("#3");
|
|
|
|
} catch (ArgumentException) {
|
|
|
|
}
|
2014-08-13 10:39:27 +01:00
|
|
|
|
2015-04-07 09:35:12 +01:00
|
|
|
try {
|
|
|
|
c = (CultureInfo) converter.ConvertFrom (null, CultureInfo.InvariantCulture,
|
|
|
|
"Dutch (Bel");
|
|
|
|
Assert.Fail ("#4");
|
|
|
|
} catch (ArgumentException) {
|
|
|
|
}
|
2014-08-13 10:39:27 +01:00
|
|
|
|
2015-04-07 09:35:12 +01:00
|
|
|
try {
|
|
|
|
c = (CultureInfo) converter.ConvertFrom (null, CultureInfo.InvariantCulture,
|
|
|
|
"duTcH (Bel");
|
|
|
|
Assert.Fail ("#5");
|
|
|
|
} catch (ArgumentException) {
|
|
|
|
}
|
2014-08-13 10:39:27 +01:00
|
|
|
|
|
|
|
c = (CultureInfo) converter.ConvertFrom (null, CultureInfo.InvariantCulture,
|
|
|
|
"(Default)");
|
|
|
|
Assert.AreEqual (CultureInfo.InvariantCulture, c, "#6");
|
|
|
|
}
|
|
|
|
|
|
|
|
[Test]
|
|
|
|
public void ConvertFrom_String_IncompleteName ()
|
|
|
|
{
|
2015-04-07 09:35:12 +01:00
|
|
|
converter.ConvertFrom (null, CultureInfo.InvariantCulture,
|
|
|
|
"nl-B");
|
2014-08-13 10:39:27 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
[Test]
|
|
|
|
public void ConvertFrom_String_InvalidCulture ()
|
|
|
|
{
|
|
|
|
try {
|
|
|
|
converter.ConvertFrom (null, CultureInfo.InvariantCulture,
|
|
|
|
"(default)");
|
|
|
|
Assert.Fail ("#A1");
|
|
|
|
} catch (ArgumentException ex) {
|
|
|
|
// The (default) culture cannot be converted to
|
|
|
|
// a CultureInfo object on this computer
|
|
|
|
Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#A2");
|
|
|
|
Assert.IsNull (ex.InnerException, "#A3");
|
|
|
|
Assert.IsNotNull (ex.Message, "#A4");
|
|
|
|
Assert.IsTrue (ex.Message.IndexOf (typeof (CultureInfo).Name) != -1, "#A5");
|
|
|
|
Assert.IsTrue (ex.Message.IndexOf ("(default)") != -1, "#A6");
|
|
|
|
Assert.IsNull (ex.ParamName, "#A7");
|
|
|
|
}
|
|
|
|
|
|
|
|
try {
|
|
|
|
converter.ConvertFrom (null, CultureInfo.InvariantCulture,
|
|
|
|
" ");
|
|
|
|
Assert.Fail ("#B1");
|
|
|
|
} catch (ArgumentException ex) {
|
|
|
|
// The culture cannot be converted to
|
|
|
|
// a CultureInfo object on this computer
|
|
|
|
Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#B2");
|
|
|
|
Assert.IsNull (ex.InnerException, "#B3");
|
|
|
|
Assert.IsNotNull (ex.Message, "#B4");
|
|
|
|
Assert.IsTrue (ex.Message.IndexOf (typeof (CultureInfo).Name) != -1, "#B5");
|
|
|
|
Assert.IsTrue (ex.Message.IndexOf (" ") != -1, "#B6");
|
|
|
|
Assert.IsNull (ex.ParamName, "#B7");
|
|
|
|
}
|
|
|
|
|
|
|
|
try {
|
|
|
|
converter.ConvertFrom (null, CultureInfo.InvariantCulture,
|
|
|
|
"\r\n");
|
|
|
|
Assert.Fail ("#C1");
|
|
|
|
} catch (ArgumentException ex) {
|
|
|
|
// The \r\n culture cannot be converted to
|
|
|
|
// a CultureInfo object on this computer
|
|
|
|
Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#C2");
|
|
|
|
Assert.IsNull (ex.InnerException, "#C3");
|
|
|
|
Assert.IsNotNull (ex.Message, "#C4");
|
|
|
|
Assert.IsTrue (ex.Message.IndexOf (typeof (CultureInfo).Name) != -1, "#C5");
|
|
|
|
Assert.IsTrue (ex.Message.IndexOf ("\r\n") != -1, "#C6");
|
|
|
|
Assert.IsNull (ex.ParamName, "#C7");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
[Test]
|
|
|
|
public void ConvertFrom_Value_Null ()
|
|
|
|
{
|
|
|
|
try {
|
|
|
|
converter.ConvertFrom (null, CultureInfo.InvariantCulture,
|
|
|
|
(string) null);
|
|
|
|
Assert.Fail ("#1");
|
|
|
|
} catch (NotSupportedException ex) {
|
|
|
|
// CultureInfoConverter cannot convert from (null)
|
|
|
|
Assert.AreEqual (typeof (NotSupportedException), ex.GetType (), "#2");
|
|
|
|
Assert.IsNull (ex.InnerException, "#3");
|
|
|
|
Assert.IsNotNull (ex.Message, "#4");
|
|
|
|
Assert.IsTrue (ex.Message.IndexOf (typeof (CultureInfoConverter).Name) != -1, "#5");
|
|
|
|
Assert.IsTrue (ex.Message.IndexOf ("(null)") != -1, "#6");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
[Test]
|
|
|
|
public void ConvertToString ()
|
|
|
|
{
|
|
|
|
string result;
|
|
|
|
|
|
|
|
result = converter.ConvertToString (null, CultureInfo.InvariantCulture,
|
|
|
|
new MyCultureInfo ());
|
2015-04-07 09:35:12 +01:00
|
|
|
Assert.AreEqual ("nl-BE", result, "#1");
|
2014-08-13 10:39:27 +01:00
|
|
|
|
|
|
|
result = converter.ConvertToString (null, CultureInfo.InvariantCulture,
|
|
|
|
null);
|
|
|
|
Assert.AreEqual ("(Default)", result, "#2");
|
|
|
|
|
|
|
|
result = converter.ConvertToString (null, CultureInfo.InvariantCulture,
|
|
|
|
CultureInfo.InvariantCulture);
|
|
|
|
Assert.AreEqual ("(Default)", result, "#3");
|
|
|
|
|
|
|
|
result = converter.ConvertToString (null, CultureInfo.InvariantCulture,
|
|
|
|
new CultureInfo ("nl-BE"));
|
2015-04-07 09:35:12 +01:00
|
|
|
Assert.AreEqual ("nl-BE", result, "#4");
|
2014-08-13 10:39:27 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
[Serializable]
|
|
|
|
private sealed class MyCultureInfo : CultureInfo
|
|
|
|
{
|
|
|
|
internal MyCultureInfo () : base ("nl-BE")
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
public override string DisplayName {
|
|
|
|
get { return "display"; }
|
|
|
|
}
|
|
|
|
|
|
|
|
public override string EnglishName {
|
|
|
|
get { return "english"; }
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
[Test]
|
|
|
|
public void GetCultureName ()
|
|
|
|
{
|
|
|
|
CustomCultureInfoConverter custom_converter = new CustomCultureInfoConverter ();
|
|
|
|
|
|
|
|
CultureInfo fr_culture = CultureInfo.GetCultureInfo ("fr-FR");
|
|
|
|
Assert.AreEqual (fr_culture.Name, custom_converter.GetCultureName (fr_culture), "#A1");
|
|
|
|
|
|
|
|
CultureInfo es_culture = CultureInfo.GetCultureInfo ("es-MX");
|
|
|
|
Assert.AreEqual (es_culture.Name, custom_converter.GetCultureName (es_culture), "#A2");
|
|
|
|
}
|
|
|
|
|
|
|
|
class CustomCultureInfoConverter : CultureInfoConverter
|
|
|
|
{
|
|
|
|
public new string GetCultureName (CultureInfo culture)
|
|
|
|
{
|
|
|
|
return base.GetCultureName (culture);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|