1 //
2 // BooleanTest.cs - NUnit Test Cases for the System.Boolean class
3 //
4 // Authors
5 //	Bob Doan <bdoan@sicompos.com>
6 //	Sebastien Pouliot  <sebastien@ximian.com>
7 //
8 // (C) Ximian, Inc.  http://www.ximian.com
9 // Copyright (C) 2004 Novell (http://www.novell.com)
10 //
11 
12 using NUnit.Framework;
13 using System;
14 using System.Globalization;
15 
16 namespace MonoTests.System {
17 
18 [TestFixture]
19 public class BooleanTest  {
20 
21 	[Test]
Strings()22 	public void Strings ()
23 	{
24 		Assert.AreEqual("False", Boolean.FalseString, "Wrong False string");
25 		Assert.AreEqual("True", Boolean.TrueString, "Wrong True string");
26 	}
27 
28 	[Test]
CompareTo()29 	public void CompareTo ()
30 	{
31 		Boolean t=true,f=false;
32 		Assert.IsTrue (f.CompareTo(t) < 0, "f.CompareTo(t) < 0");
33 		Assert.IsTrue (f.CompareTo(f) == 0, "f.CompareTo(f)");
34 		Assert.IsTrue (t.CompareTo(t) == 0, "t.CompareTo(t) == 0");
35 		Assert.IsTrue (t.CompareTo(f) > 0, "t.CompareTo(f) > 0");
36 		Assert.IsTrue (t.CompareTo(null) > 0, "t.CompareTo(null) > 0");
37 
38 		byte[] array = new byte [1] { 0x02 };
39 		bool t2 = BitConverter.ToBoolean (array, 0);
40 		Assert.IsTrue (f.CompareTo(t2) < 0, "f.CompareTo(t2) < 0");
41 		Assert.IsTrue (t2.CompareTo(t2) == 0, "t2.CompareTo(t2) == 0");
42 		Assert.IsTrue (t2.CompareTo(f) > 0, "t2.CompareTo(f) > 0");
43 		Assert.IsTrue (t2.CompareTo(null) > 0, "t2.CompareTo(null) > 0");
44 	}
45 
46 	[Test]
47 	[ExpectedException (typeof (ArgumentException))]
CompareToInvalidString()48 	public void CompareToInvalidString ()
49 	{
50 		true.CompareTo ("What Ever");
51 	}
52 
53 	[Test]
TestEquals()54 	public void TestEquals ()
55 	{
56 		Boolean t=true, f=false;
57 		string s = "What Ever";
58 		Assert.IsTrue (t.Equals(t), "t.Equals(t)");
59 		Assert.IsTrue (f.Equals(f), "f.Equals(f)");
60 		Assert.IsTrue (!t.Equals(f), "!t.Equals(f)");
61 		Assert.IsTrue (!f.Equals(t), "!f.Equals(t)");
62 		Assert.IsTrue (!t.Equals(null), "!t.Equals(null)");
63 		Assert.IsTrue (!f.Equals(null), "!f.Equals(null)");
64 		Assert.IsTrue (!t.Equals(s), "!t.Equals(s)");
65 		Assert.IsTrue (!f.Equals(s), "!f.Equals(s)");
66 
67 		byte[] array = new byte [1] { 0x02 };
68 		bool t2 = BitConverter.ToBoolean (array, 0);
69 		Assert.IsTrue (t2.Equals(t2), "t2.Equals(t2)");
70 		Assert.IsTrue (t.Equals(t2), "t.Equals(t2)");
71 		Assert.IsTrue (t2.Equals(t), "t2.Equals(t)");
72 		Assert.IsTrue (!f.Equals(t2), "!f.Equals(t2)");
73 	}
74 
75 #pragma warning disable 1718
76 	[Test]
TestEqualOperator()77 	public void TestEqualOperator ()
78 	{
79 		Boolean t=true, f=false;
80 		Assert.IsTrue (t==t, "t==t");
81 		Assert.IsTrue (f==f, "f==f");
82 		Assert.IsTrue (t!=f, "t!=f");
83 		Assert.IsTrue (f!=t, "f!=t");
84 
85 		byte[] array = new byte [1] { 0x02 };
86 		bool t2 = BitConverter.ToBoolean (array, 0);
87 		Assert.IsTrue (t2==t2, "t2==t2");
88 		Assert.IsTrue (t==t2, "t==t2");
89 		Assert.IsTrue (t2==t, "t2==t");
90 		Assert.IsTrue (f!=t2, "f!=t2");
91 	}
92 #pragma warning restore 1718
93 
94 	[Test]
TestGetHashCode()95 	public void TestGetHashCode ()
96 	{
97 		Boolean t=true, f=false;
98 		Assert.AreEqual(1, t.GetHashCode(), "GetHashCode True failed");
99 		Assert.AreEqual(0, f.GetHashCode(), "GetHashCode True failed");
100 	}
101 
102 	[Test]
TestGetType()103 	public void TestGetType ()
104 	{
105 		Boolean t=true, f=false;
106 		Assert.AreEqual(true, Object.ReferenceEquals(t.GetType(), f.GetType()), "GetType failed");
107 	}
108 
109 	[Test]
GetTypeCode()110 	public void GetTypeCode ()
111 	{
112 		Boolean b=true;
113 		Assert.AreEqual(TypeCode.Boolean, b.GetTypeCode(), "GetTypeCode failed");
114 	}
115 
116 	[Test]
Parse()117 	public void Parse ()
118 	{
119 		Assert.AreEqual(true, Boolean.Parse("True"), "Parse True failed");
120 		Assert.AreEqual(true, Boolean.Parse(" True"), "Parse True failed");
121 		Assert.AreEqual(true, Boolean.Parse("True "), "Parse True failed");
122 		Assert.AreEqual(true, Boolean.Parse("tRuE"), "Parse True failed");
123 		Assert.AreEqual(false, Boolean.Parse("False"), "Parse False failed");
124 		Assert.AreEqual(false, Boolean.Parse(" False"), "Parse False failed");
125 		Assert.AreEqual(false, Boolean.Parse("False "), "Parse False failed");
126 		Assert.AreEqual(false, Boolean.Parse("fAlSe"), "Parse False failed");
127 	}
128 
129 	[Test]
130 	[ExpectedException (typeof (FormatException))]
ParseInvalid()131 	public void ParseInvalid ()
132 	{
133 		Boolean.Parse ("not-t-or-f");
134 	}
135 
136 	[Test]
137 	[ExpectedException (typeof (ArgumentNullException))]
ParseNull()138 	public void ParseNull ()
139 	{
140 		Boolean.Parse (null);
141 	}
142 
143 	[Test]
TestToString()144 	public void TestToString ()
145 	{
146 		Boolean t=true,f=false;
147 		Assert.AreEqual(Boolean.TrueString, t.ToString(), "ToString True Failed");
148 		Assert.AreEqual(Boolean.FalseString, f.ToString(), "ToString False Failed");
149 	}
150 }
151 
152 }
153