1 // DirectoryInfoTest.cs - NUnit Test Cases for System.IO.DirectoryInfo class
\r
3 // Ville Palo (vi64pa@koti.soon.fi)
\r
5 // (C) 2003 Ville Palo
\r
7 using NUnit.Framework;
\r
10 namespace MonoTests.System.IO
\r
13 public class DirectoryInfoTest
\r
15 string TempFolder = Path.Combine (Path.GetTempPath (), "MonoTests.System.IO.Tests");
\r
17 public DirectoryInfoTest()
\r
19 if (Directory.Exists (TempFolder))
\r
20 Directory.Delete (TempFolder, true);
\r
21 Directory.CreateDirectory (TempFolder);
\r
25 ~DirectoryInfoTest ()
\r
27 if (Directory.Exists (TempFolder))
\r
28 Directory.Delete (TempFolder, true);
\r
32 protected void SetUp() {
\r
34 if (!Directory.Exists (TempFolder))
\r
35 Directory.CreateDirectory (TempFolder);
\r
39 protected void TearDown() {}
\r
44 string path = TempFolder + "/DIT.Ctr.Test";
\r
47 FileInfo info = new FileInfo (path);
\r
48 Assertion.AssertEquals ("test#01", true, info.DirectoryName.EndsWith (".Tests"));
\r
49 Assertion.AssertEquals ("test#02", false, info.Exists);
\r
50 Assertion.AssertEquals ("test#03", ".Test", info.Extension);
\r
51 Assertion.AssertEquals ("test#05", "DIT.Ctr.Test", info.Name);
\r
55 [ExpectedException(typeof(ArgumentNullException))]
\r
56 public void CtorArgumentNullException ()
\r
58 DirectoryInfo info = new DirectoryInfo (null);
\r
62 [ExpectedException(typeof(ArgumentException))]
\r
63 public void CtorArgumentException1 ()
\r
65 DirectoryInfo info = new DirectoryInfo ("");
\r
69 [ExpectedException(typeof(ArgumentException))]
\r
70 public void CtorArgumentException2 ()
\r
72 DirectoryInfo info = new DirectoryInfo (" ");
\r
76 [ExpectedException(typeof(ArgumentException))]
\r
77 public void CtorArgumentException3 ()
\r
80 foreach (char c in Path.InvalidPathChars) {
\r
83 DirectoryInfo info = new DirectoryInfo (path);
\r
87 public void Exists ()
\r
89 string path = TempFolder + "/DIT.Exists.Test";
\r
93 DirectoryInfo info = new DirectoryInfo (path);
\r
94 Assertion.AssertEquals ("test#01", false, info.Exists);
\r
96 Directory.CreateDirectory (path);
\r
97 Assertion.AssertEquals ("test#02", false, info.Exists);
\r
98 info = new DirectoryInfo (path);
\r
99 Assertion.AssertEquals ("test#03", true, info.Exists);
\r
106 public void Name ()
\r
108 string path = TempFolder + "/DIT.Name.Test";
\r
112 DirectoryInfo info = new DirectoryInfo (path);
\r
113 Assertion.AssertEquals ("test#01", "DIT.Name.Test", info.Name);
\r
115 info = Directory.CreateDirectory (path);
\r
116 Assertion.AssertEquals ("test#02", "DIT.Name.Test", info.Name);
\r
125 public void Parent ()
\r
127 string path = TempFolder + "/DIT.Parent.Test";
\r
131 DirectoryInfo info = new DirectoryInfo (path);
\r
132 Assertion.AssertEquals ("test#01", "MonoTests.System.IO.Tests", info.Parent.Name);
\r
134 info = Directory.CreateDirectory (path);
\r
135 Assertion.AssertEquals ("test#02", "MonoTests.System.IO.Tests", info.Parent.Name);
\r
143 public void Create ()
\r
145 string path = TempFolder + "/DIT.Create.Test";
\r
149 DirectoryInfo info = new DirectoryInfo (path);
\r
150 Assertion.AssertEquals ("test#01", false, info.Exists);
\r
152 Assertion.AssertEquals ("test#02", false, info.Exists);
\r
153 info = new DirectoryInfo (path);
\r
154 Assertion.AssertEquals ("test#03", true, info.Exists);
\r
161 public void Delete1 ()
\r
163 string path = TempFolder + "/DIT.Delete1.Test";
\r
167 Directory.CreateDirectory (path);
\r
168 DirectoryInfo info = new DirectoryInfo (path);
\r
169 Assertion.AssertEquals ("test#01", true, info.Exists);
\r
172 Assertion.AssertEquals ("test#02", true, info.Exists);
\r
174 info = new DirectoryInfo (path);
\r
175 Assertion.AssertEquals ("test#03", false, info.Exists);
\r
182 public void Delete2 ()
\r
184 string path = TempFolder + "/DIT.Delete2.Test";
\r
188 Directory.CreateDirectory (path);
\r
189 File.Create (path + "/test").Close ();
\r
190 DirectoryInfo info = new DirectoryInfo (path);
\r
191 Assertion.AssertEquals ("test#01", true, info.Exists);
\r
193 info.Delete (true);
\r
194 Assertion.AssertEquals ("test#02", true, info.Exists);
\r
196 info = new DirectoryInfo (path);
\r
197 Assertion.AssertEquals ("test#03", false, info.Exists);
\r
204 [ExpectedException (typeof (IOException))]
\r
205 public void DeleteIOException1 ()
\r
207 string path = TempFolder + "/DIT.DeleteIOException1.Test";
\r
211 Directory.CreateDirectory (path);
\r
212 File.Create (path + "/test").Close ();
\r
213 DirectoryInfo info = new DirectoryInfo (path);
\r
221 [ExpectedException (typeof (IOException))]
\r
222 public void DeleteIOException2 ()
\r
224 string path = TempFolder + "/DIT.DeleteIOException2.Test";
\r
228 Directory.CreateDirectory (path);
\r
229 File.Create (path + "/test").Close ();
\r
230 DirectoryInfo info = new DirectoryInfo (path);
\r
231 info.Delete (false);
\r
238 public void GetDirectories1 ()
\r
240 string path = TempFolder + "/DIT.GetDirectories1.Test";
\r
243 DirectoryInfo info = Directory.CreateDirectory (path);
\r
244 Assertion.AssertEquals ("test#01", 0, info.GetDirectories ().Length);
\r
246 Directory.CreateDirectory (path + "/" + "1");
\r
247 Directory.CreateDirectory (path + "/" + "2");
\r
248 File.Create (path + "/" + "filetest").Close ();
\r
249 Assertion.AssertEquals ("test#02", 2, info.GetDirectories ().Length);
\r
251 Directory.Delete (path + "/" + 2);
\r
252 Assertion.AssertEquals ("test#02", 1, info.GetDirectories ().Length);
\r
260 public void GetDirectories2 ()
\r
262 string path = TempFolder + "/DIT.GetDirectories2.Test";
\r
265 DirectoryInfo info = Directory.CreateDirectory (path);
\r
266 Assertion.AssertEquals ("test#01", 0, info.GetDirectories ("*").Length);
\r
268 Directory.CreateDirectory (path + "/" + "test120");
\r
269 Directory.CreateDirectory (path + "/" + "test210");
\r
270 Directory.CreateDirectory (path + "/" + "atest330");
\r
271 Directory.CreateDirectory (path + "/" + "test220");
\r
272 File.Create (path + "/" + "filetest").Close ();
\r
274 Assertion.AssertEquals ("test#02", 4, info.GetDirectories ("*").Length);
\r
275 Assertion.AssertEquals ("test#03", 3, info.GetDirectories ("test*").Length);
\r
276 Assertion.AssertEquals ("test#04", 2, info.GetDirectories ("test?20").Length);
\r
277 Assertion.AssertEquals ("test#05", 0, info.GetDirectories ("test?").Length);
\r
278 Assertion.AssertEquals ("test#06", 0, info.GetDirectories ("test[12]*").Length);
\r
279 Assertion.AssertEquals ("test#07", 2, info.GetDirectories ("test2*0").Length);
\r
280 Assertion.AssertEquals ("test#08", 4, info.GetDirectories ("*test*").Length);
\r
288 [ExpectedException (typeof (DirectoryNotFoundException))]
\r
289 public void GetDirectoriesDirectoryNotFoundException1 ()
\r
291 string path = TempFolder + "/DIT.GetDirectoriesDirectoryNotFoundException1.Test";
\r
295 DirectoryInfo info = new DirectoryInfo (path);
\r
296 info.GetDirectories ();
\r
303 [ExpectedException (typeof (DirectoryNotFoundException))]
\r
304 public void GetDirectoriesDirectoryNotFoundException2 ()
\r
306 string path = TempFolder + "/DIT.GetDirectoriesDirectoryNotFoundException2.Test";
\r
310 DirectoryInfo info = new DirectoryInfo (path);
\r
311 info.GetDirectories ("*");
\r
318 [ExpectedException (typeof (ArgumentNullException))]
\r
319 public void GetDirectoriesArgumentNullException ()
\r
321 string path = TempFolder + "/DIT.GetDirectoriesArgumentNullException.Test";
\r
325 DirectoryInfo info = new DirectoryInfo (path);
\r
326 info.GetDirectories (null);
\r
333 public void GetFiles1 ()
\r
335 string path = TempFolder + "/DIT.GetFiles1.Test";
\r
339 DirectoryInfo info = Directory.CreateDirectory (path);
\r
340 Assertion.AssertEquals ("test#01", 0, info.GetFiles ().Length);
\r
341 File.Create (path + "/" + "file1").Close ();
\r
342 File.Create (path + "/" + "file2").Close ();
\r
343 Directory.CreateDirectory (path + "/" + "directory1");
\r
344 Assertion.AssertEquals ("test#02", 2, info.GetFiles ().Length);
\r
352 public void GetFiles2()
\r
354 string path = TempFolder + "/DIT.GetFiles2.Test";
\r
358 DirectoryInfo info = Directory.CreateDirectory (path);
\r
359 Assertion.AssertEquals ("test#01", 0, info.GetFiles ("*").Length);
\r
360 File.Create (path + "/" + "file120file").Close ();
\r
361 File.Create (path + "/" + "file220file").Close ();
\r
362 File.Create (path + "/" + "afile330file").Close ();
\r
363 File.Create (path + "/" + "test.abc").Close ();
\r
364 File.Create (path + "/" + "test.abcd").Close ();
\r
365 File.Create (path + "/" + "test.abcdef").Close ();
\r
366 Directory.CreateDirectory (path + "/" + "dir");
\r
368 Assertion.AssertEquals ("test#02", 6, info.GetFiles ("*").Length);
\r
369 Assertion.AssertEquals ("test#03", 2, info.GetFiles ("file*file").Length);
\r
370 Assertion.AssertEquals ("test#04", 3, info.GetFiles ("*file*").Length);
\r
371 Assertion.AssertEquals ("test#05", 2, info.GetFiles ("file?20file").Length);
\r
372 Assertion.AssertEquals ("test#07", 1, info.GetFiles ("*.abcd").Length);
\r
373 Assertion.AssertEquals ("test#08", 2, info.GetFiles ("*.abcd*").Length);
\r
380 [ExpectedException (typeof (DirectoryNotFoundException))]
\r
381 public void GetFilesDirectoryNotFoundException1 ()
\r
383 string path = TempFolder + "/DIT.GetFilesDirectoryNotFoundException1.Test";
\r
387 DirectoryInfo info = new DirectoryInfo (path);
\r
396 [ExpectedException (typeof (DirectoryNotFoundException))]
\r
397 public void GetFilesDirectoryNotFoundException2 ()
\r
399 string path = TempFolder + "/DIT.GetFilesDirectoryNotFoundException2.Test";
\r
403 DirectoryInfo info = new DirectoryInfo (path);
\r
404 info.GetFiles ("*");
\r
412 [ExpectedException (typeof (ArgumentNullException))]
\r
413 public void GetFilesArgumentNullException ()
\r
415 string path = TempFolder + "/DIT.GetFilesArgumentNullException.Test";
\r
419 DirectoryInfo info = new DirectoryInfo (path);
\r
420 info.GetFiles (null);
\r
427 public void MoveTo ()
\r
429 string path1 = TempFolder + "/DIT.MoveTo.Soucre.Test";
\r
430 string path2 = TempFolder + "/DIT.MoveTo.Dest.Test";
\r
435 DirectoryInfo info1 = Directory.CreateDirectory (path1);
\r
436 DirectoryInfo info2 = new DirectoryInfo (path2);
\r
438 Assertion.AssertEquals ("test#01", true, info1.Exists);
\r
439 Assertion.AssertEquals ("test#02", false, info2.Exists);
\r
441 info1.MoveTo (path2);
\r
442 Assertion.AssertEquals ("test#03", true, info1.Exists);
\r
443 Assertion.AssertEquals ("test#04", false, info2.Exists);
\r
445 info1 = new DirectoryInfo (path1);
\r
446 info2 = new DirectoryInfo (path2);
\r
447 Assertion.AssertEquals ("test#05", false, info1.Exists);
\r
448 Assertion.AssertEquals ("test#06", true, info2.Exists);
\r
457 [ExpectedException (typeof (ArgumentNullException))]
\r
458 public void MoveToArgumentNullException ()
\r
460 string path = TempFolder + "/DIT.MoveToArgumentNullException.Test";
\r
464 DirectoryInfo info = Directory.CreateDirectory (path);
\r
465 info.MoveTo (null);
\r
473 [ExpectedException (typeof (IOException))]
\r
474 public void MoveToIOException1 ()
\r
476 string path = TempFolder + "/DIT.MoveToIOException1.Test";
\r
480 DirectoryInfo info = Directory.CreateDirectory (path);
\r
481 info.MoveTo (path);
\r
488 [ExpectedException (typeof (ArgumentException))]
\r
489 public void MoveToArgumentException1 ()
\r
491 string path = TempFolder + "/DIT.MoveToArgumentException1.Test";
\r
495 DirectoryInfo info = Directory.CreateDirectory (path);
\r
503 [ExpectedException (typeof (ArgumentException))]
\r
504 public void MoveToArgumentException2 ()
\r
506 string path = TempFolder + "/DIT.MoveToArgumentException2.Test";
\r
510 DirectoryInfo info = Directory.CreateDirectory (path);
\r
518 [ExpectedException (typeof (ArgumentException))]
\r
519 public void MoveToArgumentException3 ()
\r
521 string path = TempFolder + "/DIT.MoveToArgumentException3.Test";
\r
525 DirectoryInfo info = Directory.CreateDirectory (path);
\r
526 info.MoveTo (Path.InvalidPathChars [0].ToString ());
\r
533 [ExpectedException (typeof (IOException))]
\r
534 public void MoveToIOException2 ()
\r
536 string path = TempFolder + "/DIT.MoveToIOException2.Test";
\r
540 DirectoryInfo info = new DirectoryInfo (path);
\r
541 info.MoveTo (path);
\r
547 private void DeleteDir (string path)
\r
549 if (Directory.Exists (path))
\r
550 Directory.Delete (path, true);
\r