[bcl] Remove more NET_2_0 checks from class libs
[mono.git] / mcs / class / System / Test / System.ComponentModel / Win32ExceptionTest.cs
1 //
2 // Win32ExceptionTest.cs - NUnit tests for Win32Exception
3 //
4 // Author:
5 //      Gert Driesen  <drieseng@users.sourceforge.net>
6 //
7 // Copyright (C) 2007 Gert Driesen
8 //
9 // Permission is hereby granted, free of charge, to any person obtaining
10 // a copy of this software and associated documentation files (the
11 // "Software"), to deal in the Software without restriction, including
12 // without limitation the rights to use, copy, modify, merge, publish,
13 // distribute, sublicense, and/or sell copies of the Software, and to
14 // permit persons to whom the Software is furnished to do so, subject to
15 // the following conditions:
16 // 
17 // The above copyright notice and this permission notice shall be
18 // included in all copies or substantial portions of the Software.
19 // 
20 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
21 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
22 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
23 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
24 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
25 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
26 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
27 //
28
29 using System;
30 using System.ComponentModel;
31 using System.Runtime.InteropServices;
32
33 using NUnit.Framework;
34
35 namespace MonoTests.System.ComponentModel
36 {
37         [TestFixture]
38         public class Win32ExceptionTest
39         {
40                 [Test] // ctor ()
41                 public void Constructor0 ()
42                 {
43                         int native_error = Marshal.GetLastWin32Error ();
44
45                         Win32Exception ex = new Win32Exception ();
46                         Assert.AreEqual (-2147467259, ex.ErrorCode, "#1");
47                         Assert.IsNull (ex.InnerException, "#2");
48                         Assert.IsNotNull (ex.Message, "#3");
49                         Assert.IsFalse (ex.Message.IndexOf (ex.GetType ().FullName) != -1, "#4");
50                         Assert.AreEqual (native_error, ex.NativeErrorCode, "#5");
51                 }
52
53                 [Test] // ctor (int)
54                 public void Constructor1 ()
55                 {
56                         Win32Exception ex;
57
58                         ex = new Win32Exception (0);
59                         Assert.AreEqual (-2147467259, ex.ErrorCode, "#A1");
60                         Assert.IsNull (ex.InnerException, "#A2");
61                         Assert.IsNotNull (ex.Message, "#A3");
62                         Assert.IsFalse (ex.Message.IndexOf (ex.GetType ().FullName) != -1, "#A4");
63                         Assert.AreEqual (0, ex.NativeErrorCode, "#A5");
64
65                         ex = new Win32Exception (int.MinValue);
66                         Assert.AreEqual (-2147467259, ex.ErrorCode, "#B1");
67                         Assert.IsNull (ex.InnerException, "#B2");
68                         Assert.IsNotNull (ex.Message, "#B3");
69                         Assert.IsFalse (ex.Message.IndexOf (ex.GetType ().FullName) != -1, "#B4");
70                         Assert.AreEqual (int.MinValue, ex.NativeErrorCode, "#B5");
71
72                         ex = new Win32Exception (int.MaxValue);
73                         Assert.AreEqual (-2147467259, ex.ErrorCode, "#C1");
74                         Assert.IsNull (ex.InnerException, "#C2");
75                         Assert.IsNotNull (ex.Message, "#C3");
76                         Assert.IsFalse (ex.Message.IndexOf (ex.GetType ().FullName) != -1, "#C4");
77                         Assert.AreEqual (int.MaxValue, ex.NativeErrorCode, "#C5");
78                 }
79
80                 [Test] // ctor (string)
81                 public void Constructor2 ()
82                 {
83                         Win32Exception ex;
84                         string msg = "ERROR";
85                         int native_error = Marshal.GetLastWin32Error ();
86
87                         ex = new Win32Exception (msg);
88                         Assert.AreEqual (-2147467259, ex.ErrorCode, "#A1");
89                         Assert.IsNull (ex.InnerException, "#A2");
90                         Assert.AreSame (msg, ex.Message, "#A3");
91                         Assert.AreEqual (native_error, ex.NativeErrorCode, "#A4");
92
93                         ex = new Win32Exception ((string) null);
94                         Assert.AreEqual (-2147467259, ex.ErrorCode, "#B1");
95                         Assert.IsNull (ex.InnerException, "#B2");
96                         Assert.IsNotNull (msg, ex.Message, "#B3");
97                         Assert.IsTrue (ex.Message.IndexOf (ex.GetType ().FullName) != -1, "#B4");
98                         Assert.AreEqual (native_error, ex.NativeErrorCode, "#B5");
99
100                         ex = new Win32Exception (string.Empty);
101                         Assert.AreEqual (-2147467259, ex.ErrorCode, "#C1");
102                         Assert.IsNull (ex.InnerException, "#C2");
103                         Assert.IsNotNull (msg, ex.Message, "#C3");
104                         Assert.AreEqual (string.Empty, ex.Message, "#C4");
105                         Assert.AreEqual (native_error, ex.NativeErrorCode, "#C5");
106                 }
107
108                 [Test] // ctor (int, string)
109                 public void Constructor3 ()
110                 {
111                         Win32Exception ex;
112                         string msg = "ERROR";
113
114                         ex = new Win32Exception (int.MinValue, msg);
115                         Assert.AreEqual (-2147467259, ex.ErrorCode, "#A1");
116                         Assert.IsNull (ex.InnerException, "#A2");
117                         Assert.AreSame (msg, ex.Message, "#A3");
118                         Assert.AreEqual (int.MinValue, ex.NativeErrorCode, "#A4");
119
120                         ex = new Win32Exception (int.MaxValue, (string) null);
121                         Assert.AreEqual (-2147467259, ex.ErrorCode, "#B1");
122                         Assert.IsNull (ex.InnerException, "#B2");
123                         Assert.IsNotNull (msg, ex.Message, "#B3");
124                         Assert.IsTrue (ex.Message.IndexOf (ex.GetType ().FullName) != -1, "#B4");
125                         Assert.AreEqual (int.MaxValue, ex.NativeErrorCode, "#B5");
126
127                         ex = new Win32Exception (0, msg);
128                         Assert.AreEqual (-2147467259, ex.ErrorCode, "#C1");
129                         Assert.IsNull (ex.InnerException, "#C2");
130                         Assert.AreSame (msg, ex.Message, "#C3");
131                         Assert.AreEqual (0, ex.NativeErrorCode, "#C4");
132
133                         ex = new Win32Exception (5, string.Empty);
134                         Assert.AreEqual (-2147467259, ex.ErrorCode, "#C1");
135                         Assert.IsNull (ex.InnerException, "#C2");
136                         Assert.IsNotNull (ex.Message, "#C3");
137                         Assert.AreEqual (string.Empty, ex.Message, "#C4");
138                         Assert.AreEqual (5, ex.NativeErrorCode, "#C5");
139                 }
140
141                 [Test] // ctor (SerializationInfo, StreamingContext)
142                 public void Constructor4 ()
143                 {
144                         // TODO
145                 }
146
147                 [Test] // ctor (string, Exception)
148                 public void Constructor5 ()
149                 {
150                         Win32Exception ex;
151                         string msg = "ERROR";
152                         int native_error = Marshal.GetLastWin32Error ();
153                         Exception inner = new Exception ();
154
155                         ex = new Win32Exception (msg, inner);
156                         Assert.AreEqual (-2147467259, ex.ErrorCode, "#A1");
157                         Assert.AreSame (inner, ex.InnerException, "#A2");
158                         Assert.AreSame (msg, ex.Message, "#A3");
159                         Assert.AreEqual (native_error, ex.NativeErrorCode, "#A4");
160
161                         ex = new Win32Exception ((string) null, inner);
162                         Assert.AreEqual (-2147467259, ex.ErrorCode, "#B1");
163                         Assert.AreSame (inner, ex.InnerException, "#B2");
164                         Assert.IsNotNull (msg, ex.Message, "#B3");
165                         Assert.AreEqual (new Win32Exception ((string) null).Message, ex.Message, "#B4");
166                         Assert.AreEqual (native_error, ex.NativeErrorCode, "#B5");
167
168                         ex = new Win32Exception (msg, (Exception) null);
169                         Assert.AreEqual (-2147467259, ex.ErrorCode, "#C1");
170                         Assert.IsNull (ex.InnerException, "#C2");
171                         Assert.AreSame (msg, ex.Message, "#C3");
172                         Assert.AreEqual (native_error, ex.NativeErrorCode, "#C4");
173
174                         ex = new Win32Exception (string.Empty, (Exception) null);
175                         Assert.AreEqual (-2147467259, ex.ErrorCode, "#D1");
176                         Assert.IsNull (ex.InnerException, "#D2");
177                         Assert.IsNotNull (ex.Message, "#D3");
178                         Assert.AreEqual (string.Empty, ex.Message, "#D4");
179                         Assert.AreEqual (native_error, ex.NativeErrorCode, "#D5");
180                 }
181         }
182 }