1 // ObjectTest.cs - NUnit Test Cases for the System.Object struct
3 // David Brandt (bucky@keystreams.com)
5 // (C) Ximian, Inc. http://www.ximian.com
10 using System
.Globalization
;
12 namespace MonoTests
.System
15 public class ObjectTest
17 public ObjectTest() {}
20 public void TestCtor() {
21 Object o
= new Object();
22 Assert
.IsNotNull(o
, "Can I at least get an _Object_, please?");
26 public void TestEquals1() {
28 Object x
= new Object();
29 Object y
= new Object();
30 Assert
.IsTrue(x
.Equals(x
), "Object should equal itself");
32 Assert
.IsTrue(!x
.Equals(null), "object should not equal null");
34 Assert
.IsTrue(!x
.Equals(y
), "Different objects should not equal 1");
36 Assert
.IsTrue(!y
.Equals(x
), "Different objects should not equal 2");
40 double x
= Double
.NaN
;
41 double y
= Double
.NaN
;
42 Assert
.IsTrue(((Object
)x
).Equals(y
), "NaNs should always equal each other");
48 public void TestEquals2() {
50 Object x
= new Object();
51 Object y
= new Object();
52 Assert
.IsTrue(Object
.Equals(x
,x
), "Object should equal itself");
54 Assert
.IsTrue(!Object
.Equals(x
,null), "object should not equal null");
56 Assert
.IsTrue(!Object
.Equals(null,x
), "null should not equal object");
58 Assert
.IsTrue(!Object
.Equals(x
,y
), "Different objects should not equal 1");
60 Assert
.IsTrue(!Object
.Equals(y
,x
), "Different objects should not equal 2");
62 Assert
.IsTrue(Object
.Equals(null,null), "null should equal null");
66 double x
= Double
.NaN
;
67 double y
= Double
.NaN
;
68 Assert
.IsTrue(Object
.Equals(x
,y
), "NaNs should always equal each other");
74 public void TestGetHashCode() {
75 Object x
= new Object();
76 Assert
.AreEqual(x
.GetHashCode(), x
.GetHashCode(), "Object's hash code should not change");
80 public void TestGetType() {
81 Object x
= new Object();
82 Assert
.IsNotNull(x
.GetType(), "Should get a type for Object");
83 Assert
.AreEqual(x
.GetType().ToString(), "System.Object", "Bad name for Object type");
88 public void TestReferenceEquals() {
89 Object x
= new Object();
90 Object y
= new Object();
91 Assert
.IsTrue(Object
.ReferenceEquals(x
,x
), "Object should equal itself");
93 Assert
.IsTrue(!Object
.ReferenceEquals(x
,null), "object should not equal null");
95 Assert
.IsTrue(!Object
.ReferenceEquals(null,x
), "null should not equal object");
97 Assert
.IsTrue(!Object
.ReferenceEquals(x
,y
), "Different objects should not equal 1");
99 Assert
.IsTrue(!Object
.ReferenceEquals(y
,x
), "Different objects should not equal 2");
101 Assert
.IsTrue(Object
.ReferenceEquals(null,null), "null should not equal null");
106 public void TestToString() {
107 Object x
= new Object();
108 Object y
= new Object();
109 Assert
.AreEqual(x
.ToString(), y
.ToString(), "All Objects should have same string rep");
115 public void TestToStringOnGenericInstances ()
117 Foo
<Object
> foo
= new Foo
<Object
> ();
118 Assert
.AreEqual ("MonoTests.System.ObjectTest+Foo`1[System.Object]", foo
.ToString (), "Bad ToString of generic instance");