/mcs/class/System/Test/System.ComponentModel/Win32ExceptionTest.cs

https://github.com/t-ashula/mono · C# · 182 lines · 131 code · 23 blank · 28 comment · 6 complexity · eca371e6d97d8c9efc5cba9746f61570 MD5 · raw file

  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. using System;
  29. using System.ComponentModel;
  30. using System.Runtime.InteropServices;
  31. using NUnit.Framework;
  32. namespace MonoTests.System.ComponentModel
  33. {
  34. [TestFixture]
  35. public class Win32ExceptionTest
  36. {
  37. [Test] // ctor ()
  38. public void Constructor0 ()
  39. {
  40. int native_error = Marshal.GetLastWin32Error ();
  41. Win32Exception ex = new Win32Exception ();
  42. Assert.AreEqual (-2147467259, ex.ErrorCode, "#1");
  43. Assert.IsNull (ex.InnerException, "#2");
  44. Assert.IsNotNull (ex.Message, "#3");
  45. Assert.IsFalse (ex.Message.IndexOf (ex.GetType ().FullName) != -1, "#4");
  46. Assert.AreEqual (native_error, ex.NativeErrorCode, "#5");
  47. }
  48. [Test] // ctor (int)
  49. public void Constructor1 ()
  50. {
  51. Win32Exception ex;
  52. ex = new Win32Exception (0);
  53. Assert.AreEqual (-2147467259, ex.ErrorCode, "#A1");
  54. Assert.IsNull (ex.InnerException, "#A2");
  55. Assert.IsNotNull (ex.Message, "#A3");
  56. Assert.IsFalse (ex.Message.IndexOf (ex.GetType ().FullName) != -1, "#A4");
  57. Assert.AreEqual (0, ex.NativeErrorCode, "#A5");
  58. ex = new Win32Exception (int.MinValue);
  59. Assert.AreEqual (-2147467259, ex.ErrorCode, "#B1");
  60. Assert.IsNull (ex.InnerException, "#B2");
  61. Assert.IsNotNull (ex.Message, "#B3");
  62. Assert.IsFalse (ex.Message.IndexOf (ex.GetType ().FullName) != -1, "#B4");
  63. Assert.AreEqual (int.MinValue, ex.NativeErrorCode, "#B5");
  64. ex = new Win32Exception (int.MaxValue);
  65. Assert.AreEqual (-2147467259, ex.ErrorCode, "#C1");
  66. Assert.IsNull (ex.InnerException, "#C2");
  67. Assert.IsNotNull (ex.Message, "#C3");
  68. Assert.IsFalse (ex.Message.IndexOf (ex.GetType ().FullName) != -1, "#C4");
  69. Assert.AreEqual (int.MaxValue, ex.NativeErrorCode, "#C5");
  70. }
  71. [Test] // ctor (string)
  72. public void Constructor2 ()
  73. {
  74. Win32Exception ex;
  75. string msg = "ERROR";
  76. int native_error = Marshal.GetLastWin32Error ();
  77. ex = new Win32Exception (msg);
  78. Assert.AreEqual (-2147467259, ex.ErrorCode, "#A1");
  79. Assert.IsNull (ex.InnerException, "#A2");
  80. Assert.AreSame (msg, ex.Message, "#A3");
  81. Assert.AreEqual (native_error, ex.NativeErrorCode, "#A4");
  82. ex = new Win32Exception ((string) null);
  83. Assert.AreEqual (-2147467259, ex.ErrorCode, "#B1");
  84. Assert.IsNull (ex.InnerException, "#B2");
  85. Assert.IsNotNull (msg, ex.Message, "#B3");
  86. Assert.IsTrue (ex.Message.IndexOf (ex.GetType ().FullName) != -1, "#B4");
  87. Assert.AreEqual (native_error, ex.NativeErrorCode, "#B5");
  88. ex = new Win32Exception (string.Empty);
  89. Assert.AreEqual (-2147467259, ex.ErrorCode, "#C1");
  90. Assert.IsNull (ex.InnerException, "#C2");
  91. Assert.IsNotNull (msg, ex.Message, "#C3");
  92. Assert.AreEqual (string.Empty, ex.Message, "#C4");
  93. Assert.AreEqual (native_error, ex.NativeErrorCode, "#C5");
  94. }
  95. [Test] // ctor (int, string)
  96. public void Constructor3 ()
  97. {
  98. Win32Exception ex;
  99. string msg = "ERROR";
  100. ex = new Win32Exception (int.MinValue, msg);
  101. Assert.AreEqual (-2147467259, ex.ErrorCode, "#A1");
  102. Assert.IsNull (ex.InnerException, "#A2");
  103. Assert.AreSame (msg, ex.Message, "#A3");
  104. Assert.AreEqual (int.MinValue, ex.NativeErrorCode, "#A4");
  105. ex = new Win32Exception (int.MaxValue, (string) null);
  106. Assert.AreEqual (-2147467259, ex.ErrorCode, "#B1");
  107. Assert.IsNull (ex.InnerException, "#B2");
  108. Assert.IsNotNull (msg, ex.Message, "#B3");
  109. Assert.IsTrue (ex.Message.IndexOf (ex.GetType ().FullName) != -1, "#B4");
  110. Assert.AreEqual (int.MaxValue, ex.NativeErrorCode, "#B5");
  111. ex = new Win32Exception (0, msg);
  112. Assert.AreEqual (-2147467259, ex.ErrorCode, "#C1");
  113. Assert.IsNull (ex.InnerException, "#C2");
  114. Assert.AreSame (msg, ex.Message, "#C3");
  115. Assert.AreEqual (0, ex.NativeErrorCode, "#C4");
  116. ex = new Win32Exception (5, string.Empty);
  117. Assert.AreEqual (-2147467259, ex.ErrorCode, "#C1");
  118. Assert.IsNull (ex.InnerException, "#C2");
  119. Assert.IsNotNull (ex.Message, "#C3");
  120. Assert.AreEqual (string.Empty, ex.Message, "#C4");
  121. Assert.AreEqual (5, ex.NativeErrorCode, "#C5");
  122. }
  123. [Test] // ctor (SerializationInfo, StreamingContext)
  124. public void Constructor4 ()
  125. {
  126. // TODO
  127. }
  128. [Test] // ctor (string, Exception)
  129. public void Constructor5 ()
  130. {
  131. Win32Exception ex;
  132. string msg = "ERROR";
  133. int native_error = Marshal.GetLastWin32Error ();
  134. Exception inner = new Exception ();
  135. ex = new Win32Exception (msg, inner);
  136. Assert.AreEqual (-2147467259, ex.ErrorCode, "#A1");
  137. Assert.AreSame (inner, ex.InnerException, "#A2");
  138. Assert.AreSame (msg, ex.Message, "#A3");
  139. Assert.AreEqual (native_error, ex.NativeErrorCode, "#A4");
  140. ex = new Win32Exception ((string) null, inner);
  141. Assert.AreEqual (-2147467259, ex.ErrorCode, "#B1");
  142. Assert.AreSame (inner, ex.InnerException, "#B2");
  143. Assert.IsNotNull (msg, ex.Message, "#B3");
  144. Assert.AreEqual (new Win32Exception ((string) null).Message, ex.Message, "#B4");
  145. Assert.AreEqual (native_error, ex.NativeErrorCode, "#B5");
  146. ex = new Win32Exception (msg, (Exception) null);
  147. Assert.AreEqual (-2147467259, ex.ErrorCode, "#C1");
  148. Assert.IsNull (ex.InnerException, "#C2");
  149. Assert.AreSame (msg, ex.Message, "#C3");
  150. Assert.AreEqual (native_error, ex.NativeErrorCode, "#C4");
  151. ex = new Win32Exception (string.Empty, (Exception) null);
  152. Assert.AreEqual (-2147467259, ex.ErrorCode, "#D1");
  153. Assert.IsNull (ex.InnerException, "#D2");
  154. Assert.IsNotNull (ex.Message, "#D3");
  155. Assert.AreEqual (string.Empty, ex.Message, "#D4");
  156. Assert.AreEqual (native_error, ex.NativeErrorCode, "#D5");
  157. }
  158. }
  159. }