2009-06-30 Zoltan Varga <vargaz@gmail.com>
[mcs.git] / class / corlib / Test / System / ObjectTest.cs
blob22ced07f67656450f5f57f45f701ca74d99ca01d
1 // ObjectTest.cs - NUnit Test Cases for the System.Object struct
2 //
3 // David Brandt (bucky@keystreams.com)
4 //
5 // (C) Ximian, Inc. http://www.ximian.com
6 //
8 using NUnit.Framework;
9 using System;
10 using System.Globalization;
12 namespace MonoTests.System
15 public class ObjectTest
17 public ObjectTest() {}
19 [Test]
20 public void TestCtor() {
21 Object o = new Object();
22 Assert.IsNotNull(o, "Can I at least get an _Object_, please?");
25 [Test]
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");
47 [Test]
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");
73 [Test]
74 public void TestGetHashCode() {
75 Object x = new Object();
76 Assert.AreEqual(x.GetHashCode(), x.GetHashCode(), "Object's hash code should not change");
79 [Test]
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");
87 [Test]
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");
105 [Test]
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");
111 #if NET_2_0
112 class Foo<T> {}
114 [Test]
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");
121 #endif