File: ObjectTest.cs

package info (click to toggle)
mono 2.6.7-5.1
  • links: PTS, VCS
  • area: main
  • in suites: squeeze
  • size: 327,344 kB
  • ctags: 413,649
  • sloc: cs: 2,471,883; xml: 1,768,594; ansic: 350,665; sh: 13,644; makefile: 8,640; perl: 1,784; asm: 717; cpp: 209; python: 146; sql: 81; sed: 16
file content (124 lines) | stat: -rw-r--r-- 3,295 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
// ObjectTest.cs - NUnit Test Cases for the System.Object struct
//
// David Brandt (bucky@keystreams.com)
//
// (C) Ximian, Inc.  http://www.ximian.com
// 

using NUnit.Framework;
using System;
using System.Globalization;

namespace MonoTests.System
{

[TestFixture]
public class ObjectTest
{
	public ObjectTest() {}

	[Test]
	public void TestCtor() {
		Object o = new Object();
		Assert.IsNotNull(o, "Can I at least get an _Object_, please?");
	}

	[Test]
	public void TestEquals1() {
		{
			Object x = new Object();
			Object y = new Object();
			Assert.IsTrue(x.Equals(x), "Object should equal itself");
			       
			Assert.IsTrue(!x.Equals(null), "object should not equal null");
			       
			Assert.IsTrue(!x.Equals(y), "Different objects should not equal 1");
			       
			Assert.IsTrue(!y.Equals(x), "Different objects should not equal 2");
			       
		}
		{
			double x = Double.NaN;
			double y = Double.NaN;
			Assert.IsTrue(((Object)x).Equals(y), "NaNs should always equal each other");
			       
		}
	}

	[Test]
	public void TestEquals2() {
		{
			Object x = new Object();
			Object y = new Object();
			Assert.IsTrue(Object.Equals(x,x), "Object should equal itself");
			       
			Assert.IsTrue(!Object.Equals(x,null), "object should not equal null");
			       
			Assert.IsTrue(!Object.Equals(null,x), "null should not equal object");
			       
			Assert.IsTrue(!Object.Equals(x,y), "Different objects should not equal 1");
			       
			Assert.IsTrue(!Object.Equals(y,x), "Different objects should not equal 2");
			       
			Assert.IsTrue(Object.Equals(null,null), "null should equal null");
			       
		}
		{
			double x = Double.NaN;
			double y = Double.NaN;
			Assert.IsTrue(Object.Equals(x,y), "NaNs should always equal each other");
			       
		}
	}

	[Test]
	public void TestGetHashCode() {
		Object x = new Object();
		Assert.AreEqual(x.GetHashCode(), x.GetHashCode(), "Object's hash code should not change");
	}

	[Test]
	public void TestGetType() {
		Object x = new Object();
		Assert.IsNotNull(x.GetType(), "Should get a type for Object");
		Assert.AreEqual(x.GetType().ToString(), "System.Object", "Bad name for Object type");
			     
	}

	[Test]
	public void TestReferenceEquals() {
		Object x = new Object();
		Object y = new Object();
		Assert.IsTrue(Object.ReferenceEquals(x,x), "Object should equal itself");
		       
		Assert.IsTrue(!Object.ReferenceEquals(x,null), "object should not equal null");
		       
		Assert.IsTrue(!Object.ReferenceEquals(null,x), "null should not equal object");
		       
		Assert.IsTrue(!Object.ReferenceEquals(x,y), "Different objects should not equal 1");
		       
		Assert.IsTrue(!Object.ReferenceEquals(y,x), "Different objects should not equal 2");
		       
		Assert.IsTrue(Object.ReferenceEquals(null,null), "null should not equal null");
		       
	}

	[Test]
	public void TestToString() {
		Object x = new Object();
		Object y = new Object();
		Assert.AreEqual(x.ToString(), y.ToString(), "All Objects should have same string rep");
	}
#if NET_2_0
	class Foo<T> {}

	[Test]
	public void TestToStringOnGenericInstances ()
	{
		Foo<Object> foo = new Foo<Object> ();
		Assert.AreEqual ("MonoTests.System.ObjectTest+Foo`1[System.Object]", foo.ToString (), "Bad ToString of generic instance");
			
	}
#endif
}
}