| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588 |
- //
- // System.ComponentModel.Int16Converter test cases
- //
- // Authors:
- // Gert Driesen ([email protected])
- //
- // (c) 2005 Novell, Inc. (http://www.ximian.com)
- //
- using System;
- using System.ComponentModel;
- using System.ComponentModel.Design.Serialization;
- using System.Globalization;
- using NUnit.Framework;
- namespace MonoTests.System.ComponentModel
- {
- [TestFixture]
- public class Int16ConverterTests
- {
- private Int16Converter converter;
-
- [SetUp]
- public void SetUp ()
- {
- converter = new Int16Converter ();
- }
- [Test]
- public void CanConvertFrom ()
- {
- Assert.IsTrue (converter.CanConvertFrom (typeof (string)), "#1");
- Assert.IsFalse (converter.CanConvertFrom (typeof (short)), "#2");
- Assert.IsFalse (converter.CanConvertFrom (typeof (object)), "#3");
- Assert.IsTrue (converter.CanConvertFrom (typeof (InstanceDescriptor)), "#4");
- }
- [Test]
- public void CanConvertTo ()
- {
- Assert.IsTrue (converter.CanConvertTo (typeof (string)), "#1");
- Assert.IsFalse (converter.CanConvertTo (typeof (object)), "#2");
- }
- [Test]
- public void ConvertFrom_MinValue ()
- {
- Assert.AreEqual (short.MinValue, converter.ConvertFrom (null, CultureInfo.InvariantCulture, "#8000"), "#1");
- Assert.AreEqual (short.MinValue, converter.ConvertFrom (null, CultureInfo.InvariantCulture, "#0x8000"), "#2");
- Assert.AreEqual (short.MinValue, converter.ConvertFrom (null, CultureInfo.InvariantCulture, "#0X8000"), "#3");
- Assert.AreEqual (short.MinValue, converter.ConvertFrom (null, CultureInfo.InvariantCulture, "0x8000"), "#4");
- Assert.AreEqual (short.MinValue, converter.ConvertFrom (null, CultureInfo.InvariantCulture, "0X8000"), "#5");
- }
- [Test]
- public void ConvertFrom_MaxValue ()
- {
- Assert.AreEqual (short.MaxValue, converter.ConvertFrom (null, CultureInfo.InvariantCulture, "#7fff"), "#1");
- Assert.AreEqual (short.MaxValue, converter.ConvertFrom (null, CultureInfo.InvariantCulture, "#7FFF"), "#2");
- Assert.AreEqual (short.MaxValue, converter.ConvertFrom (null, CultureInfo.InvariantCulture, "#0x7fff"), "#3");
- Assert.AreEqual (short.MaxValue, converter.ConvertFrom (null, CultureInfo.InvariantCulture, "#0X7FFF"), "#4");
- Assert.AreEqual (short.MaxValue, converter.ConvertFrom (null, CultureInfo.InvariantCulture, "0x7fff"), "#5");
- Assert.AreEqual (short.MaxValue, converter.ConvertFrom (null, CultureInfo.InvariantCulture, "0X7FFF"), "#6");
- }
- [Test]
- public void ConvertToString ()
- {
- CultureInfo culture = new MyCultureInfo ();
- NumberFormatInfo numberFormatInfo = (NumberFormatInfo) culture.GetFormat (typeof (NumberFormatInfo));
- Assert.AreEqual (numberFormatInfo.NegativeSign + "5", converter.ConvertToString (null, culture, (short) -5), "#1");
- Assert.AreEqual (culture.NumberFormat.NegativeSign + "5", converter.ConvertToString (null, culture, (int) -5), "#2");
- }
- [Test]
- public void ConvertFromString ()
- {
- CultureInfo culture = new MyCultureInfo ();
- NumberFormatInfo numberFormatInfo = (NumberFormatInfo) culture.GetFormat (typeof (NumberFormatInfo));
- Assert.AreEqual (-5, converter.ConvertFrom (null, culture, numberFormatInfo.NegativeSign + "5"));
- }
- [Test]
- [ExpectedException (typeof (NotSupportedException))]
- public void ConvertFrom_Object ()
- {
- converter.ConvertFrom (new object ());
- }
- [Test]
- [ExpectedException (typeof (NotSupportedException))]
- public void ConvertFrom_Int16 ()
- {
- converter.ConvertFrom ((short) 10);
- }
- [Test]
- [ExpectedException (typeof (NotSupportedException))]
- public void ConvertFrom_Int32 ()
- {
- converter.ConvertFrom (10);
- }
- [Test]
- public void ConvertTo_MinValue ()
- {
- Assert.AreEqual (short.MinValue.ToString (CultureInfo.InvariantCulture),
- converter.ConvertTo (null, CultureInfo.InvariantCulture, short.MinValue,
- typeof (string)), "#1");
- Assert.AreEqual (short.MinValue.ToString (CultureInfo.CurrentCulture),
- converter.ConvertTo (null, CultureInfo.CurrentCulture, short.MinValue,
- typeof (string)), "#2");
- Assert.AreEqual (short.MinValue.ToString (CultureInfo.CurrentCulture),
- converter.ConvertTo (short.MinValue, typeof (string)), "#3");
- }
- [Test]
- public void ConvertTo_MaxValue ()
- {
- Assert.AreEqual (short.MaxValue.ToString (CultureInfo.InvariantCulture),
- converter.ConvertTo (null, CultureInfo.InvariantCulture, short.MaxValue,
- typeof (string)), "#1");
- Assert.AreEqual (short.MaxValue.ToString (CultureInfo.CurrentCulture),
- converter.ConvertTo (null, CultureInfo.CurrentCulture, short.MaxValue,
- typeof (string)), "#2");
- Assert.AreEqual (short.MaxValue.ToString (CultureInfo.CurrentCulture),
- converter.ConvertTo (short.MaxValue, typeof (string)), "#3");
- }
- [Test]
- public void ConvertToString_MinValue ()
- {
- Assert.AreEqual (short.MinValue.ToString (CultureInfo.InvariantCulture),
- converter.ConvertToString (null, CultureInfo.InvariantCulture,
- short.MinValue), "#1");
- Assert.AreEqual (short.MinValue.ToString (CultureInfo.CurrentCulture),
- converter.ConvertToString (null, short.MinValue), "#2");
- Assert.AreEqual (short.MinValue.ToString (CultureInfo.CurrentCulture),
- converter.ConvertToString (null, CultureInfo.CurrentCulture,
- short.MinValue), "#3");
- Assert.AreEqual (short.MinValue.ToString (CultureInfo.CurrentCulture),
- converter.ConvertToString (short.MinValue), "#4");
- }
- [Test]
- public void ConvertToString_MaxValue ()
- {
- Assert.AreEqual (short.MaxValue.ToString (CultureInfo.InvariantCulture),
- converter.ConvertToString (null, CultureInfo.InvariantCulture,
- short.MaxValue), "#1");
- Assert.AreEqual (short.MaxValue.ToString (CultureInfo.CurrentCulture),
- converter.ConvertToString (null, short.MaxValue), "#2");
- Assert.AreEqual (short.MaxValue.ToString (CultureInfo.CurrentCulture),
- converter.ConvertToString (null, CultureInfo.CurrentCulture,
- short.MaxValue), "#3");
- Assert.AreEqual (short.MaxValue.ToString (CultureInfo.CurrentCulture),
- converter.ConvertToString (short.MaxValue), "#4");
- }
- [Test]
- public void ConvertFrom_InvalidValue ()
- {
- try {
- converter.ConvertFrom ("*1");
- Assert.Fail ("#1");
- } catch (AssertionException) {
- throw;
- } catch (Exception ex) {
- Assert.AreEqual (typeof (Exception), ex.GetType (), "#2");
- Assert.IsNotNull (ex.InnerException, "#3");
- Assert.AreEqual (typeof (FormatException), ex.InnerException.GetType (), "#3");
- }
- }
- [Test]
- public void ConvertFrom_InvalidValue_Invariant ()
- {
- try {
- converter.ConvertFrom (null, CultureInfo.InvariantCulture, "*1");
- Assert.Fail ("#1");
- } catch (AssertionException) {
- throw;
- } catch (Exception ex) {
- Assert.AreEqual (typeof (Exception), ex.GetType (), "#2");
- Assert.IsNotNull (ex.InnerException, "#3");
- Assert.AreEqual (typeof (FormatException), ex.InnerException.GetType (), "#3");
- }
- }
- [Test]
- public void ConvertFrom_Base10_MinOverflow ()
- {
- string minOverflow = ((int) (short.MinValue - 1)).ToString (
- CultureInfo.CurrentCulture);
- try {
- converter.ConvertFrom (minOverflow);
- Assert.Fail ("#1");
- } catch (AssertionException) {
- throw;
- } catch (Exception ex) {
- Assert.AreEqual (typeof (Exception), ex.GetType (), "#2");
- Assert.IsNotNull (ex.InnerException, "#3");
- Assert.AreEqual (typeof (OverflowException), ex.InnerException.GetType (), "#3");
- }
- }
- [Test]
- public void ConvertFrom_Base10_MinOverflow_Invariant ()
- {
- string minOverflow = ((int) (short.MinValue - 1)).ToString (
- CultureInfo.InvariantCulture);
- try {
- converter.ConvertFrom (null, CultureInfo.InvariantCulture,
- minOverflow);
- Assert.Fail ("#1");
- } catch (AssertionException) {
- throw;
- } catch (Exception ex) {
- Assert.AreEqual (typeof (Exception), ex.GetType (), "#2");
- Assert.IsNotNull (ex.InnerException, "#3");
- Assert.AreEqual (typeof (OverflowException), ex.InnerException.GetType (), "#3");
- }
- }
- [Test]
- public void ConvertFrom_Base10_MaxOverflow ()
- {
- string maxOverflow = ((int) (short.MaxValue + 1)).ToString (
- CultureInfo.CurrentCulture);
- try {
- converter.ConvertFrom (maxOverflow);
- Assert.Fail ("#1");
- } catch (AssertionException) {
- throw;
- } catch (Exception ex) {
- Assert.AreEqual (typeof (Exception), ex.GetType (), "#2");
- Assert.IsNotNull (ex.InnerException, "#3");
- Assert.AreEqual (typeof (OverflowException), ex.InnerException.GetType (), "#3");
- }
- }
- [Test]
- public void ConvertFrom_Base10_MaxOverflow_Invariant ()
- {
- string maxOverflow = ((int) (short.MaxValue + 1)).ToString (
- CultureInfo.InvariantCulture);
- try {
- converter.ConvertFrom (null, CultureInfo.InvariantCulture,
- maxOverflow);
- Assert.Fail ("#1");
- } catch (AssertionException) {
- throw;
- } catch (Exception ex) {
- Assert.AreEqual (typeof (Exception), ex.GetType (), "#2");
- Assert.IsNotNull (ex.InnerException, "#3");
- Assert.AreEqual (typeof (OverflowException), ex.InnerException.GetType (), "#3");
- }
- }
- [Test]
- public void ConvertFrom_Base16_MinOverflow ()
- {
- string minOverflow = ((int) (short.MinValue - 1)).ToString ("x",
- CultureInfo.CurrentCulture);
- try {
- converter.ConvertFrom ("#" + minOverflow);
- Assert.Fail ("#1");
- } catch (AssertionException) {
- throw;
- } catch (Exception ex) {
- Assert.AreEqual (typeof (Exception), ex.GetType (), "#2");
- Assert.IsNotNull (ex.InnerException, "#3");
- Assert.AreEqual (typeof (OverflowException), ex.InnerException.GetType (), "#3");
- }
- }
- [Test]
- public void ConvertFrom_Base16_MinOverflow_Invariant ()
- {
- string minOverflow = ((int) (short.MinValue - 1)).ToString ("x",
- CultureInfo.InvariantCulture);
- try {
- converter.ConvertFrom (null, CultureInfo.InvariantCulture,
- "#" + minOverflow);
- Assert.Fail ("#1");
- } catch (AssertionException) {
- throw;
- } catch (Exception ex) {
- Assert.AreEqual (typeof (Exception), ex.GetType (), "#2");
- Assert.IsNotNull (ex.InnerException, "#3");
- Assert.AreEqual (typeof (OverflowException), ex.InnerException.GetType (), "#4");
- }
- }
- [Test]
- public void ConvertFrom_Base16_MaxOverflow ()
- {
- string maxOverflow = ((int) (short.MaxValue + 1)).ToString ("x",
- CultureInfo.CurrentCulture);
- Assert.AreEqual (-32768, converter.ConvertFrom (null, CultureInfo.CurrentCulture,
- "#" + maxOverflow), "#1");
- maxOverflow = ((int) (ushort.MaxValue)).ToString ("x",
- CultureInfo.CurrentCulture);
- Assert.AreEqual (-1, converter.ConvertFrom (null, CultureInfo.CurrentCulture,
- "#" + maxOverflow), "#2");
- maxOverflow = (ushort.MaxValue + 1).ToString ("x",
- CultureInfo.CurrentCulture);
- try {
- converter.ConvertFrom (null, CultureInfo.CurrentCulture,
- "#" + maxOverflow);
- Assert.Fail ("#3");
- } catch (AssertionException) {
- throw;
- } catch (Exception ex) {
- Assert.AreEqual (typeof (Exception), ex.GetType (), "#4");
- Assert.IsNotNull (ex.InnerException, "#5");
- Assert.AreEqual (typeof (OverflowException), ex.InnerException.GetType (), "#6");
- }
- }
- [Test]
- public void ConvertFrom_Base16_MaxOverflow_Invariant ()
- {
- string maxOverflow = ((int) (short.MaxValue + 1)).ToString ("x",
- CultureInfo.InvariantCulture);
- Assert.AreEqual (-32768, converter.ConvertFrom (null, CultureInfo.InvariantCulture,
- "#" + maxOverflow), "#1");
- maxOverflow = ((int) (ushort.MaxValue)).ToString ("x",
- CultureInfo.InvariantCulture);
- Assert.AreEqual (-1, converter.ConvertFrom (null, CultureInfo.InvariantCulture,
- "#" + maxOverflow), "#2");
- maxOverflow = (ushort.MaxValue + 1).ToString ("x",
- CultureInfo.InvariantCulture);
- try {
- converter.ConvertFrom (null, CultureInfo.InvariantCulture,
- "#" + maxOverflow);
- Assert.Fail ("#3");
- } catch (AssertionException) {
- throw;
- } catch (Exception ex) {
- Assert.AreEqual (typeof (Exception), ex.GetType (), "#4");
- Assert.IsNotNull (ex.InnerException, "#5");
- Assert.AreEqual (typeof (OverflowException), ex.InnerException.GetType (), "#6");
- }
- }
- [Test]
- public void ConvertFromString_InvalidValue ()
- {
- try {
- converter.ConvertFromString ("*1");
- Assert.Fail ("#1");
- } catch (AssertionException) {
- throw;
- } catch (Exception ex) {
- Assert.AreEqual (typeof (Exception), ex.GetType (), "#2");
- Assert.IsNotNull (ex.InnerException, "#3");
- Assert.AreEqual (typeof (FormatException), ex.InnerException.GetType (), "#3");
- }
- }
- [Test]
- public void ConvertFromString_InvalidValue_Invariant ()
- {
- try {
- converter.ConvertFromString (null, CultureInfo.InvariantCulture, "*1");
- Assert.Fail ("#1");
- } catch (AssertionException) {
- throw;
- } catch (Exception ex) {
- Assert.AreEqual (typeof (Exception), ex.GetType (), "#2");
- Assert.IsNotNull (ex.InnerException, "#3");
- Assert.AreEqual (typeof (FormatException), ex.InnerException.GetType (), "#3");
- }
- }
- [Test]
- public void ConvertFromString_Base10_MinOverflow ()
- {
- string minOverflow = ((int) (short.MinValue - 1)).ToString (
- CultureInfo.CurrentCulture);
- try {
- converter.ConvertFromString (minOverflow);
- Assert.Fail ("#1");
- } catch (AssertionException) {
- throw;
- } catch (Exception ex) {
- Assert.AreEqual (typeof (Exception), ex.GetType (), "#2");
- Assert.IsNotNull (ex.InnerException, "#3");
- Assert.AreEqual (typeof (OverflowException), ex.InnerException.GetType (), "#3");
- }
- }
- [Test]
- public void ConvertFromString_Base10_MinOverflow_Invariant ()
- {
- string minOverflow = ((int) (short.MinValue - 1)).ToString (
- CultureInfo.InvariantCulture);
- try {
- converter.ConvertFromString (null, CultureInfo.InvariantCulture,
- minOverflow);
- Assert.Fail ("#1");
- } catch (AssertionException) {
- throw;
- } catch (Exception ex) {
- Assert.AreEqual (typeof (Exception), ex.GetType (), "#2");
- Assert.IsNotNull (ex.InnerException, "#3");
- Assert.AreEqual (typeof (OverflowException), ex.InnerException.GetType (), "#3");
- }
- }
- [Test]
- public void ConvertFromString_Base10_MaxOverflow ()
- {
- string maxOverflow = ((int) (short.MaxValue + 1)).ToString (
- CultureInfo.CurrentCulture);
- try {
- converter.ConvertFromString (maxOverflow);
- Assert.Fail ("#1");
- } catch (AssertionException) {
- throw;
- } catch (Exception ex) {
- Assert.AreEqual (typeof (Exception), ex.GetType (), "#2");
- Assert.IsNotNull (ex.InnerException, "#3");
- Assert.AreEqual (typeof (OverflowException), ex.InnerException.GetType (), "#3");
- }
- }
- [Test]
- public void ConvertFromString_Base10_MaxOverflow_Invariant ()
- {
- string maxOverflow = ((int) (short.MaxValue + 1)).ToString (
- CultureInfo.InvariantCulture);
- try {
- converter.ConvertFromString (null, CultureInfo.InvariantCulture,
- maxOverflow);
- Assert.Fail ("#1");
- } catch (AssertionException) {
- throw;
- } catch (Exception ex) {
- Assert.AreEqual (typeof (Exception), ex.GetType (), "#2");
- Assert.IsNotNull (ex.InnerException, "#3");
- Assert.AreEqual (typeof (OverflowException), ex.InnerException.GetType (), "#3");
- }
- }
- [Test]
- public void ConvertFromString_Base16_MinOverflow ()
- {
- string minOverflow = ((int) (short.MinValue - 1)).ToString ("x",
- CultureInfo.CurrentCulture);
- try {
- converter.ConvertFromString ("#" + minOverflow);
- Assert.Fail ("#1");
- } catch (AssertionException) {
- throw;
- } catch (Exception ex) {
- Assert.AreEqual (typeof (Exception), ex.GetType (), "#2");
- Assert.IsNotNull (ex.InnerException, "#3");
- Assert.AreEqual (typeof (OverflowException), ex.InnerException.GetType (), "#3");
- }
- }
- [Test]
- public void ConvertFromString_Base16_MinOverflow_Invariant ()
- {
- string minOverflow = ((int) (short.MinValue - 1)).ToString ("x",
- CultureInfo.InvariantCulture);
- try {
- converter.ConvertFromString (null, CultureInfo.InvariantCulture,
- "#" + minOverflow);
- Assert.Fail ("#1");
- } catch (AssertionException) {
- throw;
- } catch (Exception ex) {
- Assert.AreEqual (typeof (Exception), ex.GetType (), "#2");
- Assert.IsNotNull (ex.InnerException, "#3");
- Assert.AreEqual (typeof (OverflowException), ex.InnerException.GetType (), "#3");
- }
- }
- [Test]
- public void ConvertFromString_Base16_MaxOverflow ()
- {
- string maxOverflow = ((int) (short.MaxValue + 1)).ToString ("x",
- CultureInfo.CurrentCulture);
- Assert.AreEqual (-32768, converter.ConvertFromString ("#" + maxOverflow), "#1");
- maxOverflow = (ushort.MaxValue).ToString ("x",
- CultureInfo.CurrentCulture);
- Assert.AreEqual (-1, converter.ConvertFromString ("#" + maxOverflow), "#2");
- maxOverflow = (ushort.MaxValue + 1).ToString ("x",
- CultureInfo.CurrentCulture);
- try {
- converter.ConvertFromString ("#" + maxOverflow);
- Assert.Fail ("#3");
- } catch (AssertionException) {
- throw;
- } catch (Exception ex) {
- Assert.AreEqual (typeof (Exception), ex.GetType (), "#4");
- Assert.IsNotNull (ex.InnerException, "#5");
- Assert.AreEqual (typeof (OverflowException), ex.InnerException.GetType (), "#6");
- }
- }
- [Test]
- public void ConvertFromString_Base16_MaxOverflow_Invariant ()
- {
- string maxOverflow = ((int) (short.MaxValue + 1)).ToString ("x",
- CultureInfo.CurrentCulture);
- Assert.AreEqual (-32768, converter.ConvertFromString ("#" + maxOverflow), "#1");
- maxOverflow = (ushort.MaxValue + 1).ToString ("x",
- CultureInfo.CurrentCulture);
- try {
- converter.ConvertFromString (null, CultureInfo.InvariantCulture,
- "#" + maxOverflow);
- Assert.Fail ("#2");
- } catch (AssertionException) {
- throw;
- } catch (Exception ex) {
- Assert.AreEqual (typeof (Exception), ex.GetType (), "#3");
- Assert.IsNotNull (ex.InnerException, "#4");
- Assert.AreEqual (typeof (OverflowException), ex.InnerException.GetType (), "#5");
- }
- }
- [Serializable]
- private sealed class MyCultureInfo : CultureInfo
- {
- internal MyCultureInfo ()
- : base ("en-US")
- {
- }
- public override object GetFormat (Type formatType)
- {
- if (formatType == typeof (NumberFormatInfo)) {
- NumberFormatInfo nfi = (NumberFormatInfo) ((NumberFormatInfo) base.GetFormat (formatType)).Clone ();
- nfi.NegativeSign = "myNegativeSign";
- return NumberFormatInfo.ReadOnly (nfi);
- } else {
- return base.GetFormat (formatType);
- }
- }
- #if NET_2_0
- // adding this override in 1.x shows different result in .NET (it is ignored).
- // Some compatibility kids might want to fix this issue.
- public override NumberFormatInfo NumberFormat {
- get {
- NumberFormatInfo nfi = (NumberFormatInfo) base.NumberFormat.Clone ();
- nfi.NegativeSign = "myNegativeSign";
- return nfi;
- }
- set { throw new NotSupportedException (); }
- }
- #endif
- }
- }
- }
|