1 // 2 // BadImageFormatExceptionTest.cs - Unit tests for 3 // System.BadImageFormatException 4 // 5 // Author: 6 // Gert Driesen <drieseng@users.sourceforge.net> 7 // 8 // Copyright (C) 2006 Novell, Inc (http://www.novell.com) 9 // 10 // Permission is hereby granted, free of charge, to any person obtaining 11 // a copy of this software and associated documentation files (the 12 // "Software"), to deal in the Software without restriction, including 13 // without limitation the rights to use, copy, modify, merge, publish, 14 // distribute, sublicense, and/or sell copies of the Software, and to 15 // permit persons to whom the Software is furnished to do so, subject to 16 // the following conditions: 17 // 18 // The above copyright notice and this permission notice shall be 19 // included in all copies or substantial portions of the Software. 20 // 21 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 22 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 23 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 24 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 25 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 26 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 27 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 28 // 29 30 using System; 31 32 using NUnit.Framework; 33 34 namespace MonoTests.System 35 { 36 [TestFixture] 37 public class BadImageFormatExceptionTest 38 { 39 [Test] Constructor1()40 public void Constructor1 () 41 { 42 BadImageFormatException bif = new BadImageFormatException (); 43 44 Assert.IsNotNull (bif.Data, "#1"); 45 Assert.IsNull (bif.FileName, "#2"); 46 Assert.IsNull (bif.InnerException, "#3"); 47 Assert.IsNotNull (bif.Message, "#4"); // Format of the executable (.exe) or library (.dll) is invalid 48 Assert.IsNull (bif.FusionLog, "#5"); 49 Assert.IsTrue (bif.ToString ().StartsWith (bif.GetType().FullName), "#6"); 50 } 51 52 [Test] Constructor2()53 public void Constructor2 () 54 { 55 BadImageFormatException bif = new BadImageFormatException ("message"); 56 57 Assert.IsNotNull (bif.Data, "#1"); 58 Assert.IsNull (bif.FileName, "#2"); 59 Assert.IsNull (bif.InnerException, "#3"); 60 Assert.IsNotNull (bif.Message, "#4"); 61 Assert.AreEqual ("message", bif.Message, "#5"); 62 Assert.IsNull (bif.FusionLog, "#6"); 63 Assert.AreEqual (bif.GetType ().FullName + ": message", 64 bif.ToString (), "#7"); 65 } 66 67 [Test] Constructor2_Message_Empty()68 public void Constructor2_Message_Empty () 69 { 70 BadImageFormatException bif = new BadImageFormatException (string.Empty); 71 72 Assert.IsNotNull (bif.Data, "#1"); 73 Assert.IsNull (bif.FileName, "#2"); 74 Assert.IsNull (bif.InnerException, "#3"); 75 Assert.IsNotNull (bif.Message, "#4"); 76 Assert.AreEqual (string.Empty, bif.Message, "#5"); 77 Assert.IsNull (bif.FusionLog, "#6"); 78 Assert.AreEqual (bif.GetType ().FullName + ": ", 79 bif.ToString (), "#7"); 80 } 81 82 [Test] Constructor2_Message_Null()83 public void Constructor2_Message_Null () 84 { 85 BadImageFormatException bif = new BadImageFormatException ((string) null); 86 87 Assert.IsNotNull (bif.Data, "#1"); 88 Assert.IsNull (bif.FileName, "#2"); 89 Assert.IsNull (bif.InnerException, "#3"); 90 Assert.IsNotNull (bif.Message, "#4"); // Could not load file or assembly '' ... 91 Assert.IsTrue (bif.Message.IndexOf ("''") != -1, "#5"); 92 Assert.IsNull (bif.FusionLog, "#5"); 93 Assert.IsTrue (bif.ToString ().StartsWith (bif.GetType ().FullName), "#6"); 94 Assert.IsTrue (bif.ToString ().IndexOf ("''") != -1, "#7"); 95 } 96 97 [Test] Constructor3()98 public void Constructor3 () 99 { 100 ArithmeticException ame = new ArithmeticException ("something"); 101 BadImageFormatException bif = new BadImageFormatException ("message", 102 ame); 103 104 Assert.IsNotNull (bif.Data, "#1"); 105 Assert.IsNull (bif.FileName, "#2"); 106 Assert.IsNotNull (bif.InnerException, "#3"); 107 Assert.AreSame (ame, bif.InnerException, "#4"); 108 Assert.IsNotNull (bif.Message, "#5"); 109 Assert.AreEqual ("message", bif.Message, "#6"); 110 Assert.IsNull (bif.FusionLog, "#7"); 111 Assert.AreEqual (bif.GetType ().FullName + ": message ---> " 112 + ame.GetType ().FullName + ": something", bif.ToString (), "#8"); 113 } 114 115 [Test] Constructor3_Message_Empty()116 public void Constructor3_Message_Empty () 117 { 118 ArithmeticException ame = new ArithmeticException ("something"); 119 BadImageFormatException bif = new BadImageFormatException (string.Empty, ame); 120 121 Assert.IsNotNull (bif.Data, "#1"); 122 Assert.IsNull (bif.FileName, "#2"); 123 Assert.IsNotNull (bif.InnerException, "#3"); 124 Assert.AreSame (ame, bif.InnerException, "#4"); 125 Assert.IsNotNull (bif.Message, "#5"); 126 Assert.AreEqual (string.Empty, bif.Message, "#6"); 127 Assert.IsNull (bif.FusionLog, "#7"); 128 Assert.AreEqual (bif.GetType ().FullName + ": ---> " 129 + ame.GetType ().FullName + ": something", bif.ToString (), "#8"); 130 } 131 132 [Test] Constructor3_Message_Null()133 public void Constructor3_Message_Null () 134 { 135 ArithmeticException ame = new ArithmeticException ("something"); 136 BadImageFormatException bif = new BadImageFormatException ((string) null, ame); 137 138 Assert.IsNotNull (bif.Data, "#1"); 139 Assert.IsNull (bif.FileName, "#2"); 140 Assert.IsNotNull (bif.InnerException, "#3"); 141 Assert.AreSame (ame, bif.InnerException, "#4"); 142 Assert.IsNotNull (bif.Message, "#5"); // Could not load file or assembly '' ... 143 Assert.IsTrue (bif.Message.IndexOf ("''") != -1, "#6"); 144 Assert.IsNull (bif.FusionLog, "#7"); 145 Assert.IsTrue (bif.ToString ().StartsWith (bif.GetType ().FullName), "#8"); 146 Assert.IsTrue (bif.ToString ().IndexOf ("---> " + ame.GetType ().FullName) != -1, "#9"); 147 Assert.IsFalse (bif.ToString ().IndexOf (Environment.NewLine) != -1, "#10"); 148 } 149 150 [Test] Constructor3_InnerException_Null()151 public void Constructor3_InnerException_Null () 152 { 153 BadImageFormatException bif = new BadImageFormatException ("message", 154 (Exception) null); 155 156 Assert.IsNotNull (bif.Data, "#1"); 157 Assert.IsNull (bif.FileName, "#2"); 158 Assert.IsNull (bif.InnerException, "#3"); 159 Assert.IsNotNull (bif.Message, "#4"); 160 Assert.AreEqual ("message", bif.Message, "#5"); 161 Assert.IsNull (bif.FusionLog, "#6"); 162 Assert.AreEqual (bif.GetType ().FullName + ": message", 163 bif.ToString (), "#7"); 164 } 165 166 [Test] Constructor4()167 public void Constructor4 () 168 { 169 BadImageFormatException bif = new BadImageFormatException ("message", 170 "file.txt"); 171 172 Assert.IsNotNull (bif.Data, "#1"); 173 Assert.IsNotNull (bif.FileName, "#2"); 174 Assert.AreEqual ("file.txt", bif.FileName, "#3"); 175 Assert.IsNull (bif.InnerException, "#4"); 176 Assert.IsNotNull (bif.Message, "#5"); 177 Assert.AreEqual ("message", bif.Message, "#6"); 178 Assert.IsNull (bif.FusionLog, "#7"); 179 Assert.IsTrue (bif.ToString ().StartsWith (bif.GetType ().FullName 180 + ": message" + Environment.NewLine), "#8"); 181 Assert.IsTrue (bif.ToString ().IndexOf ("'file.txt'") != -1, "#9"); 182 Assert.IsFalse (bif.ToString ().IndexOf ("\"file.txt\"") != -1, "#9"); 183 } 184 185 [Test] Constructor4_FileName_Empty()186 public void Constructor4_FileName_Empty () 187 { 188 BadImageFormatException bif = new BadImageFormatException ("message", 189 string.Empty); 190 191 Assert.IsNotNull (bif.Data, "#1"); 192 Assert.IsNotNull (bif.FileName, "#2"); 193 Assert.AreEqual (string.Empty, bif.FileName, "#3"); 194 Assert.IsNull (bif.InnerException, "#4"); 195 Assert.IsNotNull (bif.Message, "#5"); 196 Assert.AreEqual ("message", bif.Message, "#6"); 197 Assert.IsNull (bif.FusionLog, "#7"); 198 Assert.AreEqual (bif.GetType ().FullName + ": message", 199 bif.ToString (), "#8"); 200 } 201 202 [Test] Constructor4_FileName_Null()203 public void Constructor4_FileName_Null () 204 { 205 BadImageFormatException bif = new BadImageFormatException ("message", 206 (string) null); 207 208 Assert.IsNotNull (bif.Data, "#A1"); 209 Assert.IsNull (bif.FileName, "#A2"); 210 Assert.IsNull (bif.InnerException, "#A3"); 211 Assert.IsNotNull (bif.Message, "#A4"); 212 Assert.AreEqual ("message", bif.Message, "#A5"); 213 Assert.IsNull (bif.FusionLog, "#A6"); 214 Assert.AreEqual (bif.GetType ().FullName + ": message", 215 bif.ToString (), "#A7"); 216 217 bif = new BadImageFormatException (string.Empty, (string) null); 218 219 Assert.IsNotNull (bif.Data, "#B1"); 220 Assert.IsNull (bif.FileName, "#B2"); 221 Assert.IsNull (bif.InnerException, "#B3"); 222 Assert.IsNotNull (bif.Message, "#B4"); 223 Assert.AreEqual (string.Empty, bif.Message, "#B5"); 224 Assert.IsNull (bif.FusionLog, "#B6"); 225 Assert.AreEqual (bif.GetType ().FullName + ": ", 226 bif.ToString (), "#B7"); 227 } 228 229 [Test] Constructor4_FileNameAndMessage_Empty()230 public void Constructor4_FileNameAndMessage_Empty () 231 { 232 BadImageFormatException bif = new BadImageFormatException (string.Empty, 233 string.Empty); 234 235 Assert.IsNotNull (bif.Data, "#1"); 236 Assert.IsNotNull (bif.FileName, "#2"); 237 Assert.AreEqual (string.Empty, bif.FileName, "#3"); 238 Assert.IsNull (bif.InnerException, "#4"); 239 Assert.IsNotNull (bif.Message, "#5"); 240 Assert.AreEqual (string.Empty, bif.Message, "#6"); 241 Assert.IsNull (bif.FusionLog, "#7"); 242 Assert.AreEqual (bif.GetType ().FullName + ": ", bif.ToString (), "#8"); 243 } 244 245 [Test] Constructor4_FileNameAndMessage_Null()246 public void Constructor4_FileNameAndMessage_Null () 247 { 248 BadImageFormatException bif = new BadImageFormatException ((string) null, 249 (string) null); 250 251 Assert.IsNotNull (bif.Data, "#1"); 252 Assert.IsNull (bif.FileName, "#2"); 253 Assert.IsNull (bif.InnerException, "#3"); 254 Assert.IsNotNull (bif.Message, "#4"); // Could not load file or assembly '' ... 255 Assert.IsTrue (bif.Message.IndexOf ("''") != -1, "#5"); 256 Assert.IsNull (bif.FusionLog, "#5"); 257 Assert.IsTrue (bif.ToString ().StartsWith (bif.GetType ().FullName 258 + ": "), "#6"); 259 Assert.IsFalse (bif.ToString ().IndexOf (Environment.NewLine) != -1, "#7"); 260 } 261 262 [Test] Constructor4_Message_Empty()263 public void Constructor4_Message_Empty () 264 { 265 BadImageFormatException bif = null; 266 267 bif = new BadImageFormatException (string.Empty, "file.txt"); 268 269 Assert.IsNotNull (bif.Data, "#1"); 270 Assert.IsNotNull (bif.FileName, "#2"); 271 Assert.AreEqual ("file.txt", bif.FileName, "#3"); 272 Assert.IsNull (bif.InnerException, "#4"); 273 Assert.IsNotNull (bif.Message, "#5"); 274 Assert.AreEqual (string.Empty, bif.Message, "#6"); 275 Assert.IsNull (bif.FusionLog, "#7"); 276 Assert.IsTrue (bif.ToString ().StartsWith (bif.GetType ().FullName 277 + ": " + Environment.NewLine), "#8"); 278 Assert.IsTrue (bif.ToString ().IndexOf ("'file.txt'") != -1, "#9"); 279 Assert.IsFalse (bif.ToString ().IndexOf ("\"file.txt\"") != -1, "#10"); 280 } 281 282 [Test] Constructor4_Message_Null()283 public void Constructor4_Message_Null () 284 { 285 BadImageFormatException bif = null; 286 287 bif = new BadImageFormatException ((string) null, "file.txt"); 288 289 Assert.IsNotNull (bif.Data, "#A1"); 290 Assert.IsNotNull (bif.FileName, "#A2"); 291 Assert.AreEqual ("file.txt", bif.FileName, "#A3"); 292 Assert.IsNull (bif.InnerException, "#A4"); 293 Assert.IsNotNull (bif.Message, "#A5"); 294 Assert.IsNull (bif.FusionLog, "#A6"); 295 Assert.IsTrue (bif.ToString ().StartsWith (bif.GetType ().FullName 296 + ": "), "#A7"); 297 Assert.IsTrue (bif.ToString ().IndexOf (Environment.NewLine) != -1, "#A8"); 298 Assert.IsTrue (bif.ToString ().IndexOf ("'file.txt'") != -1, "#A9"); 299 300 bif = new BadImageFormatException ((string) null, string.Empty); 301 302 Assert.IsNotNull (bif.Data, "#B1"); 303 Assert.IsNotNull (bif.FileName, "#B2"); 304 Assert.AreEqual (string.Empty, bif.FileName, "#B3"); 305 Assert.IsNull (bif.InnerException, "#B4"); 306 // .NET 1.1: The format of the file 'file.txt' is invalid 307 // .NET 2.0: Could not load file or assembly 'file.txt' or one of its ... 308 Assert.IsNotNull (bif.Message, "#B5"); 309 Assert.IsNull (bif.FusionLog, "#B6"); 310 Assert.IsTrue (bif.ToString ().StartsWith (bif.GetType ().FullName 311 + ": "), "#B7"); 312 Assert.IsFalse (bif.ToString ().IndexOf (Environment.NewLine) != -1, "#B8"); 313 Assert.IsTrue (bif.ToString ().IndexOf ("''") != -1, "#B9"); 314 } 315 } 316 } 317