Merge pull request #1870 from saper/langinfo_h
[mono.git] / mcs / class / System / Test / System.Configuration / ConfigurationExceptionTest.cs
1 //
2 // ConfigurationExceptionTest.cs
3 //
4 // Author:
5 //      Gert Driesen  <drieseng@users.sourceforge.net>
6 //
7 // Copyright (C) 2008 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.Configuration;
31 using System.IO;
32 using System.Xml;
33
34 using NUnit.Framework;
35
36 namespace MonoTests.System.Configuration
37 {
38         [TestFixture]
39         public class ConfigurationExceptionTest
40         {
41                 private string foldername;
42
43                 [SetUp]
44                 public void SetUp ()
45                 {
46                         foldername = Path.Combine (Path.GetTempPath (),
47                                 this.GetType ().FullName);
48                         if (!Directory.Exists (foldername))
49                                 Directory.CreateDirectory (foldername);
50                 }
51
52                 [TearDown]
53                 public void TearDown ()
54                 {
55                         if (Directory.Exists (foldername))
56                                 Directory.Delete (foldername, true);
57                 }
58
59                 [Test] // ctor ()
60                 public void Constructor1 ()
61                 {
62                         ConfigurationException ce = new ConfigurationException ();
63                         Assert.IsNotNull (ce.BareMessage, "#1");
64                         Assert.IsTrue (ce.BareMessage.IndexOf ("'" + typeof (ConfigurationException).FullName + "'") != -1, "#2:" + ce.BareMessage);
65                         Assert.IsNotNull (ce.Data, "#3");
66                         Assert.AreEqual (0, ce.Data.Count, "#4");
67                         Assert.IsNull (ce.Filename, "#5");
68                         Assert.IsNull (ce.InnerException, "#6");
69                         Assert.AreEqual (0, ce.Line, "#7");
70                         Assert.AreEqual (ce.BareMessage, ce.Message, "#8");
71                 }
72
73                 [Test] // ctor (String)
74                 public void Constructor2 ()
75                 {
76                         string msg;
77                         ConfigurationException ce;
78
79                         msg = "MSG";
80                         ce = new ConfigurationException (msg);
81                         Assert.AreSame (msg, ce.BareMessage, "#A1");
82                         Assert.IsNotNull (ce.Data, "#A2");
83                         Assert.AreEqual (0, ce.Data.Count, "#A3");
84                         Assert.IsNull (ce.Filename, "#A4");
85                         Assert.IsNull (ce.InnerException, "#A5");
86                         Assert.AreEqual (0, ce.Line, "#A6");
87                         Assert.AreSame (msg, ce.Message, "#A7");
88
89                         msg = null;
90                         ce = new ConfigurationException (msg);
91
92                         Assert.AreEqual (new ConfigurationException ().Message, ce.BareMessage, "#B1");
93                         Assert.IsNotNull (ce.Data, "#B2");
94                         Assert.AreEqual (0, ce.Data.Count, "#B3");
95                         Assert.IsNull (ce.Filename, "#B4");
96                         Assert.IsNull (ce.InnerException, "#B5");
97                         Assert.AreEqual (0, ce.Line, "#B6");
98                         Assert.AreEqual (ce.BareMessage, ce.Message, "#B7");
99                 }
100
101                 [Test] // ctor (String, Exception)
102                 public void Constructor3 ()
103                 {
104                         string msg;
105                         Exception inner;
106                         ConfigurationException ce;
107
108                         msg = "MSG";
109                         inner = new Exception ();
110                         ce = new ConfigurationException (msg, inner);
111                         Assert.AreSame (msg, ce.BareMessage, "#A1");
112                         Assert.IsNotNull (ce.Data, "#A2");
113                         Assert.AreEqual (0, ce.Data.Count, "#A3");
114                         Assert.IsNull (ce.Filename, "#A4");
115                         Assert.AreSame (inner, ce.InnerException, "#A5");
116                         Assert.AreEqual (0, ce.Line, "#A6");
117                         Assert.AreSame (msg, ce.Message, "#A7");
118
119                         msg = null;
120                         inner = null;
121                         ce = new ConfigurationException (msg, inner);
122                         Assert.AreEqual (new ConfigurationException ().Message, ce.BareMessage, "#B1");
123                         Assert.IsNotNull (ce.Data, "#B2");
124                         Assert.AreEqual (0, ce.Data.Count, "#B3");
125                         Assert.IsNull (ce.Filename, "#B4");
126                         Assert.AreSame (inner, ce.InnerException, "#B5");
127                         Assert.AreEqual (0, ce.Line, "#B6");
128                         Assert.AreEqual (ce.BareMessage, ce.Message, "#B7");
129                 }
130
131                 [Test] // ctor (String, XmlNode)
132                 public void Constructor4 ()
133                 {
134                         string msg;
135                         XmlNode node;
136                         ConfigurationException ce;
137
138                         msg = "MSG";
139                         node = new XmlDocument ();
140                         ce = new ConfigurationException (msg, node);
141                         Assert.AreSame (msg, ce.BareMessage, "#A1");
142                         Assert.IsNotNull (ce.Data, "#A2");
143                         Assert.AreEqual (0, ce.Data.Count, "#A3");
144                         Assert.AreEqual (string.Empty, ce.Filename, "#A4");
145                         Assert.IsNull (ce.InnerException, "#A5");
146                         Assert.AreEqual (0, ce.Line, "#A6");
147                         Assert.AreSame (msg, ce.Message, "#A7");
148
149                         msg = null;
150                         node = null;
151                         ce = new ConfigurationException (msg, node);
152                         Assert.AreEqual (new ConfigurationException ().Message, ce.BareMessage, "#B1");
153                         Assert.IsNotNull (ce.Data, "#B2");
154                         Assert.AreEqual (0, ce.Data.Count, "#B3");
155                         Assert.AreEqual (string.Empty, ce.Filename, "#B4");
156                         Assert.IsNull (ce.InnerException, "#B5");
157                         Assert.AreEqual (0, ce.Line, "#B6");
158                         Assert.AreEqual (ce.BareMessage, ce.Message, "#B7");
159                 }
160
161                 [Test] // ctor (String, Exception, XmlNode)
162                 public void Constructor5 ()
163                 {
164                         string msg;
165                         Exception inner;
166                         XmlNode node;
167                         ConfigurationException ce;
168
169                         msg = "MSG";
170                         inner = new Exception ();
171                         node = new XmlDocument ();
172                         ce = new ConfigurationException (msg, inner, node);
173                         Assert.AreSame (msg, ce.BareMessage, "#A1");
174                         Assert.IsNotNull (ce.Data, "#A2");
175                         Assert.AreEqual (0, ce.Data.Count, "#A3");
176                         Assert.AreEqual (string.Empty, ce.Filename, "#A4");
177                         Assert.AreSame (inner, ce.InnerException, "#A5");
178                         Assert.AreEqual (0, ce.Line, "#A6");
179                         Assert.AreSame (msg, ce.Message, "#A7");
180
181                         msg = null;
182                         inner = null;
183                         node = null;
184                         ce = new ConfigurationException (msg, inner, node);
185                         Assert.AreEqual (new ConfigurationException ().Message, ce.BareMessage, "#B1");
186                         Assert.IsNotNull (ce.Data, "#B2");
187                         Assert.AreEqual (0, ce.Data.Count, "#B3");
188                         Assert.AreEqual (string.Empty, ce.Filename, "#B4");
189                         Assert.AreSame (inner, ce.InnerException, "#B5");
190                         Assert.AreEqual (0, ce.Line, "#B6");
191                         Assert.AreEqual (ce.BareMessage, ce.Message, "#B7");
192                 }
193
194                 [Test] // ctor (String, String, Int32)
195                 public void Constructor6 ()
196                 {
197                         string msg;
198                         string filename;
199                         int line;
200                         ConfigurationException ce;
201
202                         msg = "MSG";
203                         filename = "abc.txt";
204                         line = 7;
205                         ce = new ConfigurationException (msg, filename, line);
206                         Assert.AreSame (msg, ce.BareMessage, "#A1");
207                         Assert.IsNotNull (ce.Data, "#A2");
208                         Assert.AreEqual (0, ce.Data.Count, "#A3");
209                         Assert.AreSame (filename, ce.Filename, "#A4");
210                         Assert.IsNull (ce.InnerException, "#A5");
211                         Assert.AreEqual (line, ce.Line, "#A6");
212                         Assert.AreEqual ("MSG (abc.txt line 7)", ce.Message, "#A7");
213
214                         msg = null;
215                         filename = null;
216                         line = 0;
217                         ce = new ConfigurationException (msg, filename, line);
218                         Assert.AreEqual (new ConfigurationException ().Message, ce.BareMessage, "#B1");
219                         Assert.IsNotNull (ce.Data, "#B3");
220                         Assert.AreEqual (0, ce.Data.Count, "#B4");
221                         Assert.AreSame (filename, ce.Filename, "#B5");
222                         Assert.IsNull (ce.InnerException, "#B6");
223                         Assert.AreEqual (0, ce.Line, "#B7");
224                         Assert.AreEqual (ce.BareMessage, ce.Message, "#B8");
225
226                         msg = null;
227                         filename = "abc.txt";
228                         line = 5;
229                         ce = new ConfigurationException (msg, filename, line);
230                         Assert.AreEqual (new ConfigurationException ().Message, ce.BareMessage, "#C1");
231                         Assert.IsNotNull (ce.Data, "#C2");
232                         Assert.AreEqual (0, ce.Data.Count, "#C3");
233                         Assert.AreSame (filename, ce.Filename, "#C4");
234                         Assert.IsNull (ce.InnerException, "#C5");
235                         Assert.AreEqual (5, ce.Line, "#C6");
236                         Assert.AreEqual (ce.BareMessage + " (abc.txt line 5)", ce.Message, "#C7");
237
238                         msg = "MSG";
239                         filename = null;
240                         line = 5;
241                         ce = new ConfigurationException (msg, filename, line);
242                         Assert.AreSame (msg, ce.BareMessage, "#D1");
243                         Assert.IsNotNull (ce.Data, "#D2");
244                         Assert.AreEqual (0, ce.Data.Count, "#D3");
245                         Assert.AreSame (filename, ce.Filename, "#D4");
246                         Assert.IsNull (ce.InnerException, "#D5");
247                         Assert.AreEqual (5, ce.Line, "#D6");
248                         Assert.AreEqual (msg + " (line 5)", ce.Message, "#D7");
249
250                         msg = "MSG";
251                         filename = "abc.txt";
252                         line = 0;
253                         ce = new ConfigurationException (msg, filename, line);
254                         Assert.AreSame (msg, ce.BareMessage, "#E1");
255                         Assert.IsNotNull (ce.Data, "#E2");
256                         Assert.AreEqual (0, ce.Data.Count, "#E3");
257                         Assert.AreSame (filename, ce.Filename, "#E4");
258                         Assert.IsNull (ce.InnerException, "#E5");
259                         Assert.AreEqual (0, ce.Line, "#E6");
260                         Assert.AreEqual (msg + " (abc.txt)", ce.Message, "#E7");
261
262                         msg = null;
263                         filename = null;
264                         line = 4;
265                         ce = new ConfigurationException (msg, filename, line);
266                         Assert.AreEqual (new ConfigurationException ().Message, ce.BareMessage, "#F1");
267                         Assert.IsNotNull (ce.Data, "#F2");
268                         Assert.AreEqual (0, ce.Data.Count, "#F3");
269                         Assert.AreSame (filename, ce.Filename, "#F4");
270                         Assert.IsNull (ce.InnerException, "#F5");
271                         Assert.AreEqual (4, ce.Line, "#F6");
272                         Assert.AreEqual (ce.BareMessage + " (line 4)", ce.Message, "#F7");
273
274                         msg = string.Empty;
275                         filename = string.Empty;
276                         line = 0;
277                         ce = new ConfigurationException (msg, filename, line);
278                         Assert.AreSame (msg, ce.BareMessage, "#G1");
279                         Assert.IsNotNull (ce.Data, "#G2");
280                         Assert.AreEqual (0, ce.Data.Count, "#G3");
281                         Assert.AreSame (filename, ce.Filename, "#G4");
282                         Assert.IsNull (ce.InnerException, "#G5");
283                         Assert.AreEqual (0, ce.Line, "#G6");
284                         Assert.AreSame (msg, ce.Message, "#G7");
285
286                         msg = string.Empty;
287                         filename = "abc.txt";
288                         line = 6;
289                         ce = new ConfigurationException (msg, filename, line);
290                         Assert.AreSame (msg, ce.BareMessage, "#H1");
291                         Assert.IsNotNull (ce.Data, "#H2");
292                         Assert.AreEqual (0, ce.Data.Count, "#H3");
293                         Assert.AreSame (filename, ce.Filename, "#H4");
294                         Assert.IsNull (ce.InnerException, "#H5");
295                         Assert.AreEqual (6, ce.Line, "#H6");
296                         Assert.AreEqual (msg + " (abc.txt line 6)", ce.Message, "#H7");
297
298                         msg = "MSG";
299                         filename = string.Empty;
300                         line = 6;
301                         ce = new ConfigurationException (msg, filename, line);
302                         Assert.AreSame (msg, ce.BareMessage, "#I1");
303                         Assert.IsNotNull (ce.Data, "#I2");
304                         Assert.AreEqual (0, ce.Data.Count, "#I3");
305                         Assert.AreSame (filename, ce.Filename, "#I4");
306                         Assert.IsNull (ce.InnerException, "#I5");
307                         Assert.AreEqual (6, ce.Line, "#I6");
308                         Assert.AreEqual (msg + " (line 6)", ce.Message, "#I7");
309
310                         msg = string.Empty;
311                         filename = string.Empty;
312                         line = 4;
313                         ce = new ConfigurationException (msg, filename, line);
314                         Assert.AreSame (msg, ce.BareMessage, "#J1");
315                         Assert.IsNotNull (ce.Data, "#J2");
316                         Assert.AreEqual (0, ce.Data.Count, "#J3");
317                         Assert.AreSame (filename, ce.Filename, "#J4");
318                         Assert.IsNull (ce.InnerException, "#J5");
319                         Assert.AreEqual (4, ce.Line, "#J6");
320                         Assert.AreEqual (msg + " (line 4)", ce.Message, "#J7");
321
322                         msg = "MSG";
323                         filename = string.Empty;
324                         line = 0;
325                         ce = new ConfigurationException (msg, filename, line);
326                         Assert.AreSame (msg, ce.BareMessage, "#K1");
327                         Assert.IsNotNull (ce.Data, "#K2");
328                         Assert.AreEqual (0, ce.Data.Count, "#K3");
329                         Assert.AreSame (filename, ce.Filename, "#K4");
330                         Assert.IsNull (ce.InnerException, "#K5");
331                         Assert.AreEqual (0, ce.Line, "#K6");
332                         Assert.AreEqual (msg, ce.Message, "#K7");
333                 }
334
335                 [Test] // ctor (String, Exception, String, Int32)
336                 public void Constructor7 ()
337                 {
338                         string msg;
339                         Exception inner;
340                         string filename;
341                         int line;
342                         ConfigurationException ce;
343
344                         msg = "MSG";
345                         inner = new Exception ();
346                         filename = "abc.txt";
347                         line = 7;
348                         ce = new ConfigurationException (msg, inner, filename, line);
349                         Assert.AreSame (msg, ce.BareMessage, "#A1");
350                         Assert.IsNotNull (ce.Data, "#A2");
351                         Assert.AreEqual (0, ce.Data.Count, "#A3");
352                         Assert.AreSame (filename, ce.Filename, "#A4");
353                         Assert.AreSame (inner, ce.InnerException, "#A5");
354                         Assert.AreEqual (line, ce.Line, "#A6");
355                         Assert.AreEqual (msg + " (abc.txt line 7)", ce.Message, "#A7");
356
357                         msg = null;
358                         inner = null;
359                         filename = null;
360                         line = 0;
361                         ce = new ConfigurationException (msg, inner, filename, line);
362                         Assert.AreEqual (new ConfigurationException ().Message, ce.BareMessage, "#B1");
363                         Assert.IsNotNull (ce.Data, "#B2");
364                         Assert.AreEqual (0, ce.Data.Count, "#B3");
365                         Assert.AreSame (filename, ce.Filename, "#B4");
366                         Assert.AreSame (inner, ce.InnerException, "#B5");
367                         Assert.AreEqual (0, ce.Line, "#B6");
368                         Assert.AreEqual (ce.BareMessage, ce.Message, "#B7");
369
370                         msg = null;
371                         inner = new Exception ();
372                         filename = null;
373                         line = 7;
374                         ce = new ConfigurationException (msg, inner, filename, line);
375                         Assert.AreEqual (new ConfigurationException ().Message, ce.BareMessage, "#C1");
376                         Assert.IsNotNull (ce.Data, "#C2");
377                         Assert.AreEqual (0, ce.Data.Count, "#C3");
378                         Assert.AreSame (filename, ce.Filename, "#C4");
379                         Assert.AreSame (inner, ce.InnerException, "#C5");
380                         Assert.AreEqual (line, ce.Line, "#C6");
381                         Assert.AreEqual (ce.BareMessage + " (line 7)", ce.Message, "#C7");
382
383                         msg = string.Empty;
384                         inner = new Exception ();
385                         filename = string.Empty;
386                         line = 7;
387                         ce = new ConfigurationException (msg, inner, filename, line);
388                         Assert.AreSame (msg, ce.BareMessage, "#D1");
389                         Assert.IsNotNull (ce.Data, "#D2");
390                         Assert.AreEqual (0, ce.Data.Count, "#D3");
391                         Assert.AreSame (filename, ce.Filename, "#D4");
392                         Assert.AreSame (inner, ce.InnerException, "#D5");
393                         Assert.AreEqual (line, ce.Line, "#D6");
394                         Assert.AreEqual (" (line 7)", ce.Message, "#D7");
395
396                         msg = string.Empty;
397                         inner = new Exception ();
398                         filename = "abc.txt";
399                         line = 7;
400                         ce = new ConfigurationException (msg, inner, filename, line);
401                         Assert.AreSame (msg, ce.BareMessage, "#E1");
402                         Assert.IsNotNull (ce.Data, "#E2");
403                         Assert.AreEqual (0, ce.Data.Count, "#E3");
404                         Assert.AreSame (filename, ce.Filename, "#E4");
405                         Assert.AreSame (inner, ce.InnerException, "#E5");
406                         Assert.AreEqual (line, ce.Line, "#E6");
407                         Assert.AreEqual (" (abc.txt line 7)", ce.Message, "#E7");
408
409                         msg = "MSG";
410                         inner = new Exception ();
411                         filename = null;
412                         line = 7;
413                         ce = new ConfigurationException (msg, inner, filename, line);
414                         Assert.AreSame (msg, ce.BareMessage, "#F1");
415                         Assert.IsNotNull (ce.Data, "#F2");
416                         Assert.AreEqual (0, ce.Data.Count, "#F3");
417                         Assert.AreSame (filename, ce.Filename, "#F4");
418                         Assert.AreSame (inner, ce.InnerException, "#F5");
419                         Assert.AreEqual (line, ce.Line, "#F6");
420                         Assert.AreEqual (ce.BareMessage + " (line 7)", ce.Message, "#F7");
421
422                         msg = null;
423                         inner = new Exception ();
424                         filename = "abc.txt";
425                         line = 7;
426                         ce = new ConfigurationException (msg, inner, filename, line);
427                         Assert.AreEqual (new ConfigurationException ().Message, ce.BareMessage, "#G1");
428                         Assert.IsNotNull (ce.Data, "#G2");
429                         Assert.AreEqual (0, ce.Data.Count, "#G3");
430                         Assert.AreSame (filename, ce.Filename, "#G4");
431                         Assert.AreSame (inner, ce.InnerException, "#G5");
432                         Assert.AreEqual (line, ce.Line, "#G6");
433                         Assert.AreEqual (ce.BareMessage + " (abc.txt line 7)", ce.Message, "#G7");
434                 }
435         }
436 }