Xamarin Public Jenkins (auto-signing) ef583813eb Imported Upstream version 6.4.0.137
Former-commit-id: 943baa9f16a098c33e129777827f3a9d20da00d6
2019-07-26 19:53:28 +00:00

113 lines
2.6 KiB
C#

// ComparerTest
using System;
using System.Collections;
using System.Globalization;
using System.Runtime.Serialization;
using NUnit.Framework;
namespace MonoTests.System.Collections {
[TestFixture]
public class ComparerTest {
[Test]
public void TestDefaultInstance ()
{
// Make sure the instance returned by Default
// is really a Comparer.
Assert.IsNotNull (Comparer.Default as Comparer);
}
[Test]
public void TestCompare ()
{
Comparer c = Comparer.Default;
Assert.IsTrue (c.Compare (1, 2) < 0, "1,2");
Assert.IsTrue (c.Compare (2, 2) == 0, "2,2");
Assert.IsTrue (c.Compare (3, 2) > 0, "3,2");
}
[Test]
[ExpectedException (typeof (ArgumentException))]
public void Compare_FirstIComparer ()
{
Assert.IsTrue (Comparer.Default.Compare (1, new object ()) > 0, "int,object");
}
[Test]
[ExpectedException (typeof (ArgumentException))]
public void Compare_SecondIComparer ()
{
Assert.IsTrue (Comparer.Default.Compare (new object (), 1) > 0, "object,int");
}
[Test]
[ExpectedException (typeof (ArgumentException))]
public void Compare_BothNonIComparer ()
{
Comparer.Default.Compare (new object (), new object ());
}
[Test]
[Category ("ManagedCollator")]
public void Invariant ()
{
Comparer c = Comparer.DefaultInvariant;
Assert.IsTrue (c.Compare ("a", "A") < 0);
}
[Test]
public void Invariant2 ()
{
Assert.IsTrue (CultureInfo.InvariantCulture.CompareInfo.Compare ("a", "A", CompareOptions.Ordinal) > 0);
}
[Test]
[ExpectedException (typeof (ArgumentNullException))]
public void Constructor_Null ()
{
new Comparer (null);
}
[Test]
[Category ("ManagedCollator")]
public void Constructor ()
{
Comparer c = new Comparer (CultureInfo.InvariantCulture);
Assert.IsTrue (c.Compare ("a", "A") < 0);
}
[Test]
[ExpectedException (typeof (ArgumentNullException))]
public void GetObjectData_Null ()
{
Comparer c = Comparer.DefaultInvariant;
c.GetObjectData (null, new StreamingContext ());
}
[Test]
public void GetObjectData ()
{
Comparer c = Comparer.DefaultInvariant;
SerializationInfo si = new SerializationInfo (typeof (Comparer), new FormatterConverter ());
c.GetObjectData (si, new StreamingContext ());
foreach (SerializationEntry se in si) {
switch (se.Name) {
case "CompareInfo":
CompareInfo ci = (se.Value as CompareInfo);
Assert.IsNotNull (ci, "CompareInfo");
Assert.AreEqual (127, ci.LCID, "LCID");
break;
default:
string msg = String.Format ("Unexpected {0} information of type {1} with value '{2}'.",
se.Name, se.ObjectType, se.Value);
Assert.Fail (msg);
break;
}
}
}
}
}