2003-05-29 Nick Drochak <ndrochak@gol.com>
[mono.git] / mcs / class / corlib / Test / System.IO / DirectoryTest.cs
1 //\r
2 // System.IO.Directory\r
3 //\r
4 // Authors: \r
5 //      Ville Palo (vi64pa@kolumbus.fi)\r
6 //\r
7 // (C) 2003 Ville Palo\r
8 //\r
9 \r
10 using NUnit.Framework;\r
11 using System.IO;\r
12 using System.Text;\r
13 using System;\r
14 using System.Globalization;\r
15 using System.Threading;\r
16 \r
17 namespace MonoTests.System.IO {\r
18 \r
19 [TestFixture]\r
20 public class DirectoryTest {\r
21         \r
22         string TempFolder = Path.Combine (Path.GetTempPath (), "MonoTests.System.IO.Tests");\r
23         \r
24         [SetUp]\r
25         public void SetUp ()\r
26         {\r
27                 if (Directory.Exists (TempFolder))\r
28                         Directory.Delete (TempFolder, true);\r
29                 Directory.CreateDirectory (TempFolder);\r
30 \r
31                 Thread.CurrentThread.CurrentCulture = new CultureInfo ("en-US");\r
32         }\r
33         \r
34         [TearDown]\r
35         public void TearDown () {\r
36                 if (Directory.Exists (TempFolder))\r
37                         Directory.Delete (TempFolder, true);\r
38         }\r
39 \r
40         [Test]\r
41         public void CreateDirectory ()\r
42         {\r
43                 string path = TempFolder + "/DirectoryTest.Test.1";\r
44                 DeleteDirectory (path);\r
45                 \r
46                 DirectoryInfo info = Directory.CreateDirectory (path);\r
47                 Assertion.AssertEquals ("test#01", true, info.Exists);\r
48                 Assertion.AssertEquals ("test#02", ".1", info.Extension);\r
49                 Assertion.AssertEquals ("test#03", true, info.FullName.EndsWith ("DirectoryTest.Test.1"));\r
50                 Assertion.AssertEquals ("test#04", "DirectoryTest.Test.1", info.Name);\r
51 \r
52                 DeleteDirectory (path);         \r
53         }\r
54         \r
55         [Test]\r
56         [ExpectedException(typeof(ArgumentException))]  \r
57         public void CreateDirectoryNotSupportedException ()\r
58         {\r
59                 DeleteDirectory (":");\r
60                 DirectoryInfo info = Directory.CreateDirectory (":");\r
61                 DeleteDirectory (":");\r
62         }\r
63 \r
64         [Test]\r
65         [ExpectedException(typeof(ArgumentNullException))]\r
66         public void CreateDirectoryArgumentNullException ()\r
67         {\r
68                 DirectoryInfo info = Directory.CreateDirectory (null as string);                \r
69         }\r
70 \r
71         [Test]\r
72         [ExpectedException(typeof(ArgumentException))]\r
73         public void CreateDirectoryArgumentException1 ()\r
74         {\r
75                 DirectoryInfo info = Directory.CreateDirectory ("");\r
76         }\r
77 \r
78         [Test]\r
79         [ExpectedException(typeof(ArgumentException))]\r
80         public void CreateDirectoryArgumentException2 ()\r
81         {\r
82                 DirectoryInfo info = Directory.CreateDirectory ("            ");                \r
83         }\r
84 \r
85         [Test]\r
86         [ExpectedException(typeof(ArgumentException))]\r
87         public void CreateDirectoryArgumentException3 ()\r
88         {\r
89                 string path = TempFolder + "/DirectoryTest.Test";\r
90                 DeleteDirectory (path);\r
91 \r
92                 path += Path.InvalidPathChars [0];\r
93                 path += ".2";\r
94                 DirectoryInfo info = Directory.CreateDirectory (path);          \r
95                 \r
96                 DeleteDirectory (path);\r
97         }\r
98 \r
99         [Test]\r
100         public void Delete ()\r
101         {\r
102                 string path = TempFolder + "/DirectoryTest.Test.Delete.1";\r
103                 DeleteDirectory (path);\r
104                 \r
105                 Directory.CreateDirectory (path);\r
106                 Assertion.AssertEquals ("test#01", true, Directory.Exists (path));\r
107                 \r
108                 Directory.CreateDirectory (path + "/DirectoryTest.Test.Delete.1.2");\r
109                 Assertion.AssertEquals ("test#02", true, Directory.Exists (path + "/DirectoryTest.Test.Delete.1.2"));\r
110                 \r
111                 Directory.Delete (path + "/DirectoryTest.Test.Delete.1.2");\r
112                 Assertion.AssertEquals ("test#03", false, Directory.Exists (path + "/DirectoryTest.Test.Delete.1.2"));\r
113                 Assertion.AssertEquals ("test#04", true, Directory.Exists (path));\r
114                 \r
115                 Directory.Delete (path);\r
116                 Assertion.AssertEquals ("test#05", false, Directory.Exists (path + "/DirectoryTest.Test.Delete.1.2"));\r
117                 Assertion.AssertEquals ("test#06", false, Directory.Exists (path));             \r
118         \r
119                 Directory.CreateDirectory (path);\r
120                 Directory.CreateDirectory (path + "/DirectoryTest.Test.Delete.1.2");\r
121                 Assertion.AssertEquals ("test#07", true, Directory.Exists (path + "/DirectoryTest.Test.Delete.1.2"));\r
122                 Assertion.AssertEquals ("test#08", true, Directory.Exists (path));\r
123                 \r
124                 Directory.Delete (path, true);\r
125                 Assertion.AssertEquals ("test#09", false, Directory.Exists (path + "/DirectoryTest.Test.Delete.1.2"));\r
126                 Assertion.AssertEquals ("test#10", false, Directory.Exists (path));\r
127         }\r
128 \r
129         [Test]  \r
130         [ExpectedException(typeof(ArgumentException))]\r
131         public void DeleteArgumentException ()\r
132         {\r
133                 Directory.Delete ("");          \r
134         }\r
135 \r
136         [Test]  \r
137         [ExpectedException(typeof(ArgumentException))]\r
138         public void DeleteArgumentException2 ()\r
139         {\r
140                 Directory.Delete ("     ");             \r
141         }\r
142 \r
143         [Test]  \r
144         [ExpectedException(typeof(ArgumentException))]\r
145         public void DeleteArgumentException3 ()\r
146         {\r
147                 string path = TempFolder + "/DirectoryTest.Test.4";\r
148                 DeleteDirectory (path);\r
149                 \r
150                 path += Path.InvalidPathChars [0];\r
151                 Directory.Delete (path);\r
152         }\r
153 \r
154         [Test]  \r
155         [ExpectedException(typeof(ArgumentNullException))]\r
156         public void DeleteArgumentNullException ()\r
157         {\r
158                 Directory.Delete (null as string);              \r
159         }\r
160 \r
161         [Test]  \r
162         [ExpectedException(typeof(DirectoryNotFoundException))]\r
163         public void DeleteDirectoryNotFoundException ()\r
164         {\r
165                 string path = TempFolder + "/DirectoryTest.Test.5";\r
166                 DeleteDirectory (path);\r
167                 \r
168                 Directory.Delete (path);                \r
169         }\r
170 \r
171         [Test]  \r
172         [ExpectedException(typeof(IOException))]\r
173         public void DeleteArgumentException4 ()\r
174         {\r
175                 string path = TempFolder + "/DirectoryTest.Test.6";\r
176                 DeleteDirectory (path);\r
177                 \r
178                 Directory.CreateDirectory (path);\r
179                 File.Create (path + "/DirectoryTest.Test.6");\r
180 \r
181                 DeleteDirectory (path); \r
182         }\r
183 \r
184         [Test]\r
185         public void Exists ()\r
186         {\r
187                 Assertion.AssertEquals ("test#01", false, Directory.Exists (null as string));\r
188         }\r
189         \r
190         [Test]\r
191         [ExpectedException(typeof(ArgumentNullException))]      \r
192         public void GetCreationTimeException1 ()\r
193         {\r
194                 Directory.GetCreationTime (null as string);\r
195         }\r
196 \r
197         [Test]\r
198         [ExpectedException(typeof(ArgumentException))]  \r
199         public void GetCreationTimeException2 ()\r
200         {\r
201                 Directory.GetCreationTime ("");\r
202         }\r
203         \r
204         [Test]\r
205         [ExpectedException(typeof(IOException))]\r
206         public void GetCreationTimeException3 ()\r
207         {\r
208                 string path = TempFolder + "/DirectoryTest.GetCreationTime.1";\r
209                 DeleteDirectory (path);\r
210                 \r
211                 Directory.GetCreationTime (path);\r
212         }\r
213 \r
214         [Test]\r
215         [ExpectedException(typeof(ArgumentException))]  \r
216         public void GetCreationTimeException4 ()\r
217         {\r
218                 Directory.GetCreationTime ("    ");\r
219         }\r
220 \r
221         [Test]\r
222         [ExpectedException(typeof(ArgumentException))]  \r
223         public void GetCreationTimeException5 ()\r
224         {\r
225                 Directory.GetCreationTime (Path.InvalidPathChars [0].ToString ());\r
226         }\r
227 \r
228         [Test]\r
229         [ExpectedException(typeof(ArgumentNullException))]      \r
230         public void GetCreationTimeUtcException1 ()\r
231         {\r
232                 Directory.GetCreationTimeUtc (null as string);\r
233         }\r
234 \r
235         [Test]\r
236         [ExpectedException(typeof(ArgumentException))]  \r
237         public void GetCreationTimeUtcException2 ()\r
238         {\r
239                 Directory.GetCreationTimeUtc ("");\r
240         }\r
241         \r
242         [Test]\r
243         [ExpectedException(typeof(IOException))]\r
244         public void GetCreationTimeUtcException3 ()\r
245         {\r
246                 string path = TempFolder + "/DirectoryTest.GetCreationTimeUtc.1";\r
247                 DeleteDirectory (path);\r
248                 \r
249                 Directory.GetCreationTimeUtc (path);\r
250         }\r
251 \r
252         [Test]\r
253         [ExpectedException(typeof(ArgumentException))]  \r
254         public void GetCreationTimeUtcException4 ()\r
255         {\r
256                 Directory.GetCreationTimeUtc ("    ");\r
257         }\r
258 \r
259         [Test]\r
260         [ExpectedException(typeof(ArgumentException))]  \r
261         public void GetCreationTimeUtcException5 ()\r
262         {\r
263                 Directory.GetCreationTime (Path.InvalidPathChars [0].ToString ());\r
264         }\r
265 \r
266         [Test]\r
267         [ExpectedException(typeof(ArgumentNullException))]      \r
268         public void GetLastAccessTimeException1 ()\r
269         {\r
270                 Directory.GetLastAccessTime (null as string);\r
271         }\r
272 \r
273         [Test]\r
274         [ExpectedException(typeof(ArgumentException))]  \r
275         public void GetLastAccessTimeException2 ()\r
276         {\r
277                 Directory.GetLastAccessTime ("");\r
278         }\r
279         \r
280         [Test]\r
281         [ExpectedException(typeof(IOException))]\r
282         public void GetLastAccessTimeException3 ()\r
283         {\r
284                 string path = TempFolder + "/DirectoryTest.GetLastAccessTime.1";\r
285                 DeleteDirectory (path);\r
286                 \r
287                 Directory.GetLastAccessTime (path);\r
288         }\r
289 \r
290         [Test]\r
291         [ExpectedException(typeof(ArgumentException))]  \r
292         public void GetLastAccessTimeException4 ()\r
293         {\r
294                 Directory.GetLastAccessTime ("    ");\r
295         }\r
296 \r
297         [Test]\r
298         [ExpectedException(typeof(ArgumentException))]  \r
299         public void GetLastAccessTimeException5 ()\r
300         {\r
301                 Directory.GetLastAccessTime (Path.InvalidPathChars [0].ToString ());\r
302         }\r
303 \r
304         [Test]\r
305         [ExpectedException(typeof(ArgumentNullException))]      \r
306         public void GetLastAccessTimeUtcException1 ()\r
307         {\r
308                 Directory.GetLastAccessTimeUtc (null as string);\r
309         }\r
310 \r
311         [Test]\r
312         [ExpectedException(typeof(ArgumentException))]  \r
313         public void GetLastAccessTimeUtcException2 ()\r
314         {\r
315                 Directory.GetLastAccessTimeUtc ("");\r
316         }\r
317         \r
318         [Test]\r
319         [ExpectedException(typeof(IOException))]\r
320         public void GetLastAccessTimeUtcException3 ()\r
321         {\r
322                 string path = TempFolder + "/DirectoryTest.GetLastAccessTimeUtc.1";\r
323                 DeleteDirectory (path);\r
324                 \r
325                 Directory.GetLastAccessTimeUtc (path);\r
326         }\r
327 \r
328         [Test]\r
329         [ExpectedException(typeof(ArgumentException))]  \r
330         public void GetLastAccessTimeUtcException4 ()\r
331         {\r
332                 Directory.GetLastAccessTimeUtc ("    ");\r
333         }\r
334 \r
335         [Test]\r
336         [ExpectedException(typeof(ArgumentException))]  \r
337         public void GetLastAccessTimeUtcException5 ()\r
338         {\r
339                 Directory.GetLastAccessTimeUtc (Path.InvalidPathChars [0].ToString ());\r
340         }\r
341 \r
342         [Test]\r
343         [ExpectedException(typeof(ArgumentNullException))]      \r
344         public void GetLastWriteTimeException1 ()\r
345         {\r
346                 Directory.GetLastWriteTime (null as string);\r
347         }\r
348 \r
349         [Test]\r
350         [ExpectedException(typeof(ArgumentException))]  \r
351         public void GetLastWriteTimeException2 ()\r
352         {\r
353                 Directory.GetLastWriteTime ("");\r
354         }\r
355         \r
356         [Test]\r
357         [ExpectedException(typeof(IOException))]\r
358         public void GetLastWriteTimeException3 ()\r
359         {\r
360                 string path = TempFolder + "/DirectoryTest.GetLastWriteTime.1";\r
361                 DeleteDirectory (path);\r
362                 \r
363                 Directory.GetLastWriteTime (path);\r
364         }\r
365 \r
366         [Test]\r
367         [ExpectedException(typeof(ArgumentException))]  \r
368         public void GetLastWriteTimeException4 ()\r
369         {\r
370                 Directory.GetLastWriteTime ("    ");\r
371         }\r
372 \r
373         [Test]\r
374         [ExpectedException(typeof(ArgumentException))]  \r
375         public void GetLastWriteTimeException5 ()\r
376         {\r
377                 Directory.GetLastWriteTime (Path.InvalidPathChars [0].ToString ());\r
378         }\r
379 \r
380         [Test]\r
381         [ExpectedException(typeof(ArgumentNullException))]      \r
382         public void GetLastWriteTimeUtcException1 ()\r
383         {\r
384                 Directory.GetLastWriteTimeUtc (null as string);\r
385         }\r
386 \r
387         [Test]\r
388         [ExpectedException(typeof(ArgumentException))]  \r
389         public void GetLastWriteTimeUtcException2 ()\r
390         {\r
391                 Directory.GetLastAccessTimeUtc ("");\r
392         }\r
393         \r
394         [Test]\r
395         [ExpectedException(typeof(IOException))]\r
396         public void GetLastWriteTimeUtcException3 ()\r
397         {\r
398                 string path = TempFolder + "/DirectoryTest.GetLastWriteTimeUtc.1";\r
399                 DeleteDirectory (path);\r
400                 Directory.GetLastAccessTimeUtc (path);\r
401         }\r
402 \r
403         [Test]\r
404         [ExpectedException(typeof(ArgumentException))]  \r
405         public void GetLastWriteTimeUtcException4 ()\r
406         {\r
407                 Directory.GetLastAccessTimeUtc ("    ");\r
408         }\r
409 \r
410         [Test]\r
411         [ExpectedException(typeof(ArgumentException))]  \r
412         public void GetLastWriteTimeUtcException5 ()\r
413         {\r
414                 Directory.GetLastAccessTimeUtc (Path.InvalidPathChars [0].ToString ());\r
415         }\r
416 \r
417         [Test]\r
418         public void Move ()\r
419         {\r
420                 string path = TempFolder + "/DirectoryTest.Test.9";\r
421                 string path2 = TempFolder + "/DirectoryTest.Test.10";\r
422                 DeleteDirectory (path);\r
423                 DeleteDirectory (path2);\r
424                 \r
425                 Directory.CreateDirectory (path);\r
426                 Directory.CreateDirectory (path + "/" + "dir");\r
427                 Assertion.AssertEquals ("test#01", true, Directory.Exists (path + "/" + "dir"));\r
428                 \r
429                 Directory.Move (path, path2);\r
430                 Assertion.AssertEquals ("test#02", false, Directory.Exists (path + "/" + "dir"));               \r
431                 Assertion.AssertEquals ("test#03", true, Directory.Exists (path2 + "/" + "dir"));\r
432                 \r
433                 if (Directory.Exists (path2 + "/" + "dir"))\r
434                         Directory.Delete (path2 + "/" + "dir", true);\r
435         }\r
436         \r
437         [Test]\r
438         [ExpectedException(typeof(IOException))]\r
439         public void MoveException1 ()\r
440         {\r
441                 string path = TempFolder + "/DirectoryTest.Test.8";\r
442                 DeleteDirectory (path);         \r
443                 Directory.Move (path, path);            \r
444         }\r
445 \r
446         [Test]\r
447         [ExpectedException(typeof(ArgumentException))]\r
448         public void MoveException2 ()\r
449         {\r
450                 string path = TempFolder + "/DirectoryTest.Test.11";\r
451                 DeleteDirectory (path);         \r
452                 Directory.Move ("", path);              \r
453         }\r
454 \r
455         [Test]\r
456         [ExpectedException(typeof(ArgumentException))]\r
457         public void MoveException3 ()\r
458         {\r
459                 string path = TempFolder + "/DirectoryTest.Test.12";\r
460                 DeleteDirectory (path);         \r
461                 Directory.Move ("             ", path);         \r
462         }\r
463 \r
464         [Test]\r
465         [ExpectedException(typeof(ArgumentException))]\r
466         public void MoveException4 ()\r
467         {\r
468                 string path = TempFolder + "/DirectoryTest.Test.13";\r
469                 path += Path.InvalidPathChars [0];\r
470                 string path2 = TempFolder + "/DirectoryTest.Test.13";           \r
471                 DeleteDirectory (path);\r
472                 DeleteDirectory (path2);\r
473 \r
474                 Directory.CreateDirectory (path2);              \r
475                 Directory.Move (path2, path);\r
476         }\r
477 \r
478         [Test]\r
479         [ExpectedException(typeof(DirectoryNotFoundException))]\r
480         public void MoveException5 ()\r
481         {\r
482                 string path = TempFolder + "/DirectoryTest.Test.14";\r
483                 DeleteDirectory (path);\r
484                 \r
485                 Directory.Move (path, path + "Test.Test");              \r
486         }\r
487 \r
488         [Test]\r
489         [ExpectedException(typeof(IOException))]\r
490         public void MoveException6 ()\r
491         {\r
492                 string path = TempFolder + "/DirectoryTest.Test.15";\r
493                 DeleteDirectory (path);\r
494 \r
495                 Directory.CreateDirectory (path);               \r
496                 Directory.Move (path, path + "/" + "dir");\r
497         }\r
498 \r
499         [Test]\r
500         [ExpectedException(typeof(IOException))]\r
501         public void MoveException7 ()\r
502         {\r
503                 string path = TempFolder + "/DirectoryTest.Test.16";\r
504                 string path2 = TempFolder + "/DirectoryTest.Test.17";\r
505                 \r
506                 DeleteDirectory (path);\r
507                 DeleteDirectory (path2);                \r
508                 \r
509                 Directory.CreateDirectory (path);\r
510                 Directory.CreateDirectory (path2);\r
511                 Directory.Move (path, path2);\r
512 \r
513                 DeleteDirectory (path);\r
514                 DeleteDirectory (path2);                \r
515         }\r
516         \r
517         [Test]\r
518         public void CreationTime ()\r
519         {\r
520                 string path = TempFolder + "/DirectoryTest.CreationTime.1";\r
521                 DeleteDirectory (path);\r
522                 \r
523                 Directory.CreateDirectory (path);\r
524                 Directory.SetCreationTime (path, new DateTime (2003, 6, 4, 6, 4, 0));\r
525 \r
526                 DateTime time = Directory.GetCreationTime (path);               \r
527                 Assertion.AssertEquals ("test#01", 2003, time.Year);\r
528                 Assertion.AssertEquals ("test#02", 6, time.Month);\r
529                 Assertion.AssertEquals ("test#03", 4, time.Day);\r
530                 Assertion.AssertEquals ("test#04", 6, time.Hour);\r
531                 Assertion.AssertEquals ("test#05", 4, time.Minute);\r
532                 Assertion.AssertEquals ("test#06", 0, time.Second);\r
533                 \r
534                 time = TimeZone.CurrentTimeZone.ToLocalTime (Directory.GetCreationTimeUtc (path));\r
535                 Assertion.AssertEquals ("test#07", 2003, time.Year);\r
536                 Assertion.AssertEquals ("test#08", 6, time.Month);\r
537                 Assertion.AssertEquals ("test#09", 4, time.Day);\r
538                 Assertion.AssertEquals ("test#10", 6, time.Hour);\r
539                 Assertion.AssertEquals ("test#11", 4, time.Minute);\r
540                 Assertion.AssertEquals ("test#12", 0, time.Second);\r
541 \r
542                 Directory.SetCreationTimeUtc (path, new DateTime (2003, 6, 4, 6, 4, 0));\r
543                 time = TimeZone.CurrentTimeZone.ToUniversalTime (Directory.GetCreationTime (path));\r
544                 Assertion.AssertEquals ("test#13", 2003, time.Year);\r
545                 Assertion.AssertEquals ("test#14", 6, time.Month);\r
546                 Assertion.AssertEquals ("test#15", 4, time.Day);\r
547                 Assertion.AssertEquals ("test#16", 6, time.Hour);\r
548                 Assertion.AssertEquals ("test#17", 4, time.Minute);\r
549                 Assertion.AssertEquals ("test#18", 0, time.Second);\r
550 \r
551                 time = Directory.GetCreationTimeUtc (path);             \r
552                 Assertion.AssertEquals ("test#19", 2003, time.Year);\r
553                 Assertion.AssertEquals ("test#20", 6, time.Month);\r
554                 Assertion.AssertEquals ("test#21", 4, time.Day);\r
555                 Assertion.AssertEquals ("test#22", 6, time.Hour);\r
556                 Assertion.AssertEquals ("test#23", 4, time.Minute);\r
557                 Assertion.AssertEquals ("test#24", 0, time.Second);\r
558 \r
559                 DeleteDirectory (path); \r
560         }\r
561 \r
562         [Test]\r
563         public void LastAccessTime ()\r
564         {\r
565                 string path = TempFolder + "/DirectoryTest.AccessTime.1";\r
566                 DeleteDirectory (path);\r
567                 \r
568                 Directory.CreateDirectory (path);\r
569                 Directory.SetLastAccessTime (path, new DateTime (2003, 6, 4, 6, 4, 0));\r
570 \r
571                 DateTime time = Directory.GetLastAccessTime (path);             \r
572                 Assertion.AssertEquals ("test#01", 2003, time.Year);\r
573                 Assertion.AssertEquals ("test#02", 6, time.Month);\r
574                 Assertion.AssertEquals ("test#03", 4, time.Day);\r
575                 Assertion.AssertEquals ("test#04", 6, time.Hour);\r
576                 Assertion.AssertEquals ("test#05", 4, time.Minute);\r
577                 Assertion.AssertEquals ("test#06", 0, time.Second);\r
578                 \r
579                 time = TimeZone.CurrentTimeZone.ToLocalTime (Directory.GetLastAccessTimeUtc (path));\r
580                 Assertion.AssertEquals ("test#07", 2003, time.Year);\r
581                 Assertion.AssertEquals ("test#08", 6, time.Month);\r
582                 Assertion.AssertEquals ("test#09", 4, time.Day);\r
583                 Assertion.AssertEquals ("test#10", 6, time.Hour);\r
584                 Assertion.AssertEquals ("test#11", 4, time.Minute);\r
585                 Assertion.AssertEquals ("test#12", 0, time.Second);\r
586 \r
587                 Directory.SetLastAccessTimeUtc (path, new DateTime (2003, 6, 4, 6, 4, 0));\r
588                 time = TimeZone.CurrentTimeZone.ToUniversalTime (Directory.GetLastAccessTime (path));\r
589                 Assertion.AssertEquals ("test#13", 2003, time.Year);\r
590                 Assertion.AssertEquals ("test#14", 6, time.Month);\r
591                 Assertion.AssertEquals ("test#15", 4, time.Day);\r
592                 Assertion.AssertEquals ("test#16", 6, time.Hour);\r
593                 Assertion.AssertEquals ("test#17", 4, time.Minute);\r
594                 Assertion.AssertEquals ("test#18", 0, time.Second);\r
595 \r
596                 time = Directory.GetLastAccessTimeUtc (path);           \r
597                 Assertion.AssertEquals ("test#19", 2003, time.Year);\r
598                 Assertion.AssertEquals ("test#20", 6, time.Month);\r
599                 Assertion.AssertEquals ("test#21", 4, time.Day);\r
600                 Assertion.AssertEquals ("test#22", 6, time.Hour);\r
601                 Assertion.AssertEquals ("test#23", 4, time.Minute);\r
602                 Assertion.AssertEquals ("test#24", 0, time.Second);\r
603 \r
604                 DeleteDirectory (path);\r
605         }\r
606 \r
607         [Test]\r
608         public void LastWriteTime ()\r
609         {\r
610                 string path = TempFolder + "/DirectoryTest.WriteTime.1";\r
611                 DeleteDirectory (path);         \r
612                 \r
613                 Directory.CreateDirectory (path);\r
614                 Directory.SetLastWriteTime (path, new DateTime (2003, 6, 4, 6, 4, 0));\r
615 \r
616                 DateTime time = Directory.GetLastWriteTime (path);              \r
617                 Assertion.AssertEquals ("test#01", 2003, time.Year);\r
618                 Assertion.AssertEquals ("test#02", 6, time.Month);\r
619                 Assertion.AssertEquals ("test#03", 4, time.Day);\r
620                 Assertion.AssertEquals ("test#04", 6, time.Hour);\r
621                 Assertion.AssertEquals ("test#05", 4, time.Minute);\r
622                 Assertion.AssertEquals ("test#06", 0, time.Second);\r
623                 \r
624                 time = TimeZone.CurrentTimeZone.ToLocalTime (Directory.GetLastWriteTimeUtc (path));\r
625                 Assertion.AssertEquals ("test#07", 2003, time.Year);\r
626                 Assertion.AssertEquals ("test#08", 6, time.Month);\r
627                 Assertion.AssertEquals ("test#09", 4, time.Day);\r
628                 Assertion.AssertEquals ("test#10", 6, time.Hour);\r
629                 Assertion.AssertEquals ("test#11", 4, time.Minute);\r
630                 Assertion.AssertEquals ("test#12", 0, time.Second);\r
631 \r
632                 Directory.SetLastWriteTimeUtc (path, new DateTime (2003, 6, 4, 6, 4, 0));\r
633                 time = TimeZone.CurrentTimeZone.ToUniversalTime (Directory.GetLastWriteTime (path));\r
634                 Assertion.AssertEquals ("test#13", 2003, time.Year);\r
635                 Assertion.AssertEquals ("test#14", 6, time.Month);\r
636                 Assertion.AssertEquals ("test#15", 4, time.Day);\r
637                 Assertion.AssertEquals ("test#16", 6, time.Hour);\r
638                 Assertion.AssertEquals ("test#17", 4, time.Minute);\r
639                 Assertion.AssertEquals ("test#18", 0, time.Second);\r
640 \r
641                 time = Directory.GetLastWriteTimeUtc (path);            \r
642                 Assertion.AssertEquals ("test#19", 2003, time.Year);\r
643                 Assertion.AssertEquals ("test#20", 6, time.Month);\r
644                 Assertion.AssertEquals ("test#21", 4, time.Day);\r
645                 Assertion.AssertEquals ("test#22", 6, time.Hour);\r
646                 Assertion.AssertEquals ("test#23", 4, time.Minute);\r
647                 Assertion.AssertEquals ("test#24", 0, time.Second);\r
648 \r
649                 DeleteDirectory (path);         \r
650         }\r
651 \r
652         [Test]\r
653         [ExpectedException(typeof(ArgumentNullException))]      \r
654         public void SetLastWriteTimeException1 ()\r
655         {\r
656                 DateTime time = new DateTime (2003, 4, 6, 6, 4, 2);\r
657                 Directory.SetLastWriteTime (null as string, time);\r
658         }\r
659 \r
660         [Test]\r
661         [ExpectedException(typeof(ArgumentException))]  \r
662         public void SetLastWriteTimeException2 ()\r
663         {\r
664                 DateTime time = new DateTime (2003, 4, 6, 6, 4, 2);             \r
665                 Directory.SetLastWriteTime ("", time);\r
666         }\r
667         \r
668         [Test]\r
669         [ExpectedException(typeof(FileNotFoundException))]\r
670         public void SetLastWriteTimeException3 ()\r
671         {\r
672                 DateTime time = new DateTime (2003, 4, 6, 6, 4, 2);             \r
673                 string path = TempFolder + "/DirectoryTest.SetLastWriteTime.2";\r
674                 DeleteDirectory (path);\r
675                 \r
676                 Directory.SetLastWriteTime (path, time);\r
677         }\r
678 \r
679         [Test]\r
680         [ExpectedException(typeof(ArgumentException))]  \r
681         public void SetLastWriteTimeException4 ()\r
682         {\r
683                 DateTime time = new DateTime (2003, 4, 6, 6, 4, 2);             \r
684                 Directory.SetLastWriteTime ("    ", time);\r
685         }\r
686 \r
687         [Test]\r
688         [ExpectedException(typeof(ArgumentException))]  \r
689         public void SetLastWriteTimeException5 ()\r
690         {\r
691                 DateTime time = new DateTime (2003, 4, 6, 6, 4, 2);             \r
692                 Directory.SetLastWriteTime (Path.InvalidPathChars [0].ToString (), time);\r
693         }\r
694 \r
695         [Test]\r
696         [ExpectedException(typeof(ArgumentOutOfRangeException))]        \r
697         public void SetLastWriteTimeException6 ()\r
698         {\r
699                 DateTime time = new DateTime (1003, 4, 6, 6, 4, 2);\r
700                 string path = TempFolder + "/DirectoryTest.SetLastWriteTime.1";\r
701 \r
702                 if (!Directory.Exists (path))                   \r
703                         Directory.CreateDirectory (path);\r
704                 \r
705                 Directory.SetLastWriteTime (path, time);\r
706 \r
707         }\r
708 \r
709         [Test]\r
710         [ExpectedException(typeof(ArgumentNullException))]      \r
711         public void SetLastWriteTimeUtcException1 ()\r
712         {\r
713                 DateTime time = new DateTime (2003, 4, 6, 6, 4, 2);             \r
714                 Directory.SetLastWriteTimeUtc (null as string, time);\r
715         }\r
716 \r
717         [Test]\r
718         [ExpectedException(typeof(ArgumentException))]  \r
719         public void SetLastWriteTimeUtcException2 ()\r
720         {\r
721                 DateTime time = new DateTime (2003, 4, 6, 6, 4, 2);             \r
722                 Directory.SetLastWriteTimeUtc ("", time);\r
723         }\r
724         \r
725         [Test]\r
726         [ExpectedException(typeof(FileNotFoundException))]\r
727         public void SetLastWriteTimeUtcException3 ()\r
728         {\r
729                 DateTime time = new DateTime (2003, 4, 6, 6, 4, 2);             \r
730                 string path = TempFolder + "/DirectoryTest.SetLastWriteTimeUtc.2";\r
731                 DeleteDirectory (path);\r
732                 Directory.SetLastWriteTimeUtc (path, time);\r
733         }\r
734 \r
735         [Test]\r
736         [ExpectedException(typeof(ArgumentException))]  \r
737         public void SetLastWriteTimeUtcException4 ()\r
738         {\r
739                 DateTime time = new DateTime (2003, 4, 6, 6, 4, 2);             \r
740                 Directory.SetLastWriteTimeUtc ("    ", time);\r
741         }\r
742 \r
743         [Test]\r
744         [ExpectedException(typeof(ArgumentException))]  \r
745         public void SetLastWriteTimeUtcException5 ()\r
746         {\r
747                 DateTime time = new DateTime (2003, 4, 6, 6, 4, 2);             \r
748                 Directory.SetLastWriteTimeUtc (Path.InvalidPathChars [0].ToString (), time);\r
749         }\r
750 \r
751         [Test]\r
752         [ExpectedException(typeof(ArgumentOutOfRangeException))]        \r
753         public void SetLastWriteTimeUtcException6 ()\r
754         {\r
755                 DateTime time = new DateTime (1000, 4, 6, 6, 4, 2);\r
756                 string path = TempFolder + "/DirectoryTest.SetLastWriteTimeUtc.1";\r
757 \r
758                 if (!Directory.Exists (path))\r
759                         Directory.CreateDirectory (path);\r
760                 \r
761                 Directory.SetLastWriteTimeUtc (path, time);\r
762         }\r
763 \r
764         [Test]\r
765         [ExpectedException(typeof(ArgumentNullException))]      \r
766         public void SetLastAccessTimeException1 ()\r
767         {\r
768                 DateTime time = new DateTime (2003, 4, 6, 6, 4, 2);\r
769                 Directory.SetLastAccessTime (null as string, time);\r
770         }\r
771 \r
772         [Test]\r
773         [ExpectedException(typeof(ArgumentException))]  \r
774         public void SetLastAccessTimeException2 ()\r
775         {\r
776                 DateTime time = new DateTime (2003, 4, 6, 6, 4, 2);             \r
777                 Directory.SetLastAccessTime ("", time);\r
778         }\r
779         \r
780         [Test]\r
781         [ExpectedException(typeof(FileNotFoundException))]\r
782         public void SetLastAccessTimeException3 ()\r
783         {\r
784                 DateTime time = new DateTime (2003, 4, 6, 6, 4, 2);             \r
785                 string path = TempFolder + "/DirectoryTest.SetLastAccessTime.2";\r
786                 DeleteDirectory (path);\r
787                 \r
788                 Directory.SetLastAccessTime (path, time);\r
789         }\r
790 \r
791         [Test]\r
792         [ExpectedException(typeof(ArgumentException))]  \r
793         public void SetLastAccessTimeException4 ()\r
794         {\r
795                 DateTime time = new DateTime (2003, 4, 6, 6, 4, 2);             \r
796                 Directory.SetLastAccessTime ("    ", time);\r
797         }\r
798 \r
799         [Test]\r
800         [ExpectedException(typeof(ArgumentException))]  \r
801         public void SetLastAccessTimeException5 ()\r
802         {\r
803                 DateTime time = new DateTime (2003, 4, 6, 6, 4, 2);             \r
804                 Directory.SetLastAccessTime (Path.InvalidPathChars [0].ToString (), time);\r
805         }\r
806 \r
807         [Test]\r
808         [ExpectedException(typeof(ArgumentOutOfRangeException))]        \r
809         public void SetLastAccessTimeException6 ()\r
810         {\r
811                 DateTime time = new DateTime (1003, 4, 6, 6, 4, 2);\r
812                 string path = TempFolder + "/DirectoryTest.SetLastAccessTime.1";\r
813 \r
814                 if (!Directory.Exists (path))                   \r
815                         Directory.CreateDirectory (path);\r
816                 \r
817                 Directory.SetLastAccessTime (path, time);\r
818 \r
819         }\r
820 \r
821         [Test]\r
822         [ExpectedException(typeof(ArgumentNullException))]      \r
823         public void SetLastAccessTimeUtcException1 ()\r
824         {\r
825                 DateTime time = new DateTime (2003, 4, 6, 6, 4, 2);             \r
826                 Directory.SetLastAccessTimeUtc (null as string, time);\r
827         }\r
828 \r
829         [Test]\r
830         [ExpectedException(typeof(ArgumentException))]  \r
831         public void SetLastAccessTimeUtcException2 ()\r
832         {\r
833                 DateTime time = new DateTime (2003, 4, 6, 6, 4, 2);             \r
834                 Directory.SetLastAccessTimeUtc ("", time);\r
835         }\r
836         \r
837         [Test]\r
838         [ExpectedException(typeof(FileNotFoundException))]\r
839         public void SetLastAccessTimeUtcException3 ()\r
840         {\r
841                 DateTime time = new DateTime (2003, 4, 6, 6, 4, 2);             \r
842                 string path = TempFolder + "/DirectoryTest.SetLastAccessTimeUtc.2";\r
843                 DeleteDirectory (path);\r
844                 Directory.SetLastAccessTimeUtc (path, time);\r
845         }\r
846 \r
847         [Test]\r
848         [ExpectedException(typeof(ArgumentException))]  \r
849         public void SetLastAccessTimeUtcException4 ()\r
850         {\r
851                 DateTime time = new DateTime (2003, 4, 6, 6, 4, 2);             \r
852                 Directory.SetLastAccessTimeUtc ("    ", time);\r
853         }\r
854 \r
855         [Test]\r
856         [ExpectedException(typeof(ArgumentException))]  \r
857         public void SetLastAccessTimeUtcException5 ()\r
858         {\r
859                 DateTime time = new DateTime (2003, 4, 6, 6, 4, 2);             \r
860                 Directory.SetLastAccessTimeUtc (Path.InvalidPathChars [0].ToString (), time);\r
861         }\r
862 \r
863         [Test]\r
864         [ExpectedException(typeof(ArgumentOutOfRangeException))]        \r
865         public void SetLastAccessTimeUtcException6 ()\r
866         {\r
867                 DateTime time = new DateTime (1000, 4, 6, 6, 4, 2);\r
868                 string path = TempFolder + "/DirectoryTest.SetLastAccessTimeUtc.1";\r
869 \r
870                 if (!Directory.Exists (path))\r
871                         Directory.CreateDirectory (path);\r
872                 \r
873                 Directory.SetLastAccessTimeUtc (path, time);\r
874         }\r
875 \r
876         [ExpectedException(typeof(ArgumentNullException))]      \r
877         public void SetCreationTimeException1 ()\r
878         {\r
879                 DateTime time = new DateTime (2003, 4, 6, 6, 4, 2);\r
880                 Directory.SetCreationTime (null as string, time);\r
881         }\r
882 \r
883         [Test]\r
884         [ExpectedException(typeof(ArgumentException))]  \r
885         public void SetCreationTimeException2 ()\r
886         {\r
887                 DateTime time = new DateTime (2003, 4, 6, 6, 4, 2);             \r
888                 Directory.SetCreationTime ("", time);\r
889         }\r
890         \r
891         [Test]\r
892         [ExpectedException(typeof(FileNotFoundException))]\r
893         public void SetCreationTimeException3 ()\r
894         {\r
895                 DateTime time = new DateTime (2003, 4, 6, 6, 4, 2);             \r
896                 string path = TempFolder + "/DirectoryTest.SetCreationTime.2";\r
897                 DeleteDirectory (path);\r
898                 \r
899                 Directory.SetCreationTime (path, time);\r
900         }\r
901 \r
902         [Test]\r
903         [ExpectedException(typeof(ArgumentException))]  \r
904         public void SetCreationTimeException4 ()\r
905         {\r
906                 DateTime time = new DateTime (2003, 4, 6, 6, 4, 2);             \r
907                 Directory.SetCreationTime ("    ", time);\r
908         }\r
909 \r
910         [Test]\r
911         [ExpectedException(typeof(ArgumentException))]  \r
912         public void SetCreationTimeException5 ()\r
913         {\r
914                 DateTime time = new DateTime (2003, 4, 6, 6, 4, 2);             \r
915                 Directory.SetCreationTime (Path.InvalidPathChars [0].ToString (), time);\r
916         }\r
917 \r
918         [Test]\r
919         [ExpectedException(typeof(ArgumentOutOfRangeException))]        \r
920         public void SetCreationTimeException6 ()\r
921         {\r
922                 DateTime time = new DateTime (1003, 4, 6, 6, 4, 2);\r
923                 string path = TempFolder + "/DirectoryTest.SetCreationTime.1";\r
924 \r
925                 if (!Directory.Exists (path))                   \r
926                         Directory.CreateDirectory (path);\r
927                 \r
928                 Directory.SetCreationTime (path, time);\r
929 \r
930         }\r
931 \r
932         [Test]\r
933         [ExpectedException(typeof(ArgumentNullException))]      \r
934         public void SetCreationTimeUtcException1 ()\r
935         {\r
936                 DateTime time = new DateTime (2003, 4, 6, 6, 4, 2);             \r
937                 Directory.SetCreationTimeUtc (null as string, time);\r
938         }\r
939 \r
940         [Test]\r
941         [ExpectedException(typeof(ArgumentException))]  \r
942         public void SetCreationTimeUtcException2 ()\r
943         {\r
944                 DateTime time = new DateTime (2003, 4, 6, 6, 4, 2);             \r
945                 Directory.SetCreationTimeUtc ("", time);\r
946         }\r
947         \r
948         [Test]\r
949         [ExpectedException(typeof(FileNotFoundException))]\r
950         public void SetCreationTimeUtcException3 ()\r
951         {\r
952                 DateTime time = new DateTime (2003, 4, 6, 6, 4, 2);             \r
953                 string path = TempFolder + "/DirectoryTest.SetLastAccessTimeUtc.2";\r
954                 DeleteDirectory (path);\r
955                 Directory.SetCreationTimeUtc (path, time);\r
956         }\r
957 \r
958         [Test]\r
959         [ExpectedException(typeof(ArgumentException))]  \r
960         public void SetCreationTimeUtcException4 ()\r
961         {\r
962                 DateTime time = new DateTime (2003, 4, 6, 6, 4, 2);             \r
963                 Directory.SetCreationTimeUtc ("    ", time);\r
964         }\r
965 \r
966         [Test]\r
967         [ExpectedException(typeof(ArgumentException))]  \r
968         public void SetCreationTimeUtcException5 ()\r
969         {\r
970                 DateTime time = new DateTime (2003, 4, 6, 6, 4, 2);             \r
971                 Directory.SetCreationTimeUtc (Path.InvalidPathChars [0].ToString (), time);\r
972         }\r
973 \r
974         [Test]\r
975         [ExpectedException(typeof(ArgumentOutOfRangeException))]        \r
976         public void SetCreationTimeUtcException6 ()\r
977         {\r
978                 DateTime time = new DateTime (1000, 4, 6, 6, 4, 2);\r
979                 string path = TempFolder + "/DirectoryTest.SetLastAccessTimeUtc.1";\r
980 \r
981                 if (!Directory.Exists (path))\r
982                         Directory.CreateDirectory (path);\r
983                 \r
984                 Directory.SetCreationTimeUtc (path, time);\r
985         }\r
986 \r
987         [Test]\r
988         public void GetDirectories ()\r
989         {\r
990                 string path = TempFolder;\r
991                 string DirPath = TempFolder + Path.DirectorySeparatorChar + ".GetDirectories";\r
992                 DeleteDirectory (DirPath);\r
993                 \r
994                 try {\r
995                         Directory.CreateDirectory (DirPath);\r
996                 \r
997                         string [] dirs = Directory.GetDirectories (path);\r
998                 \r
999                         foreach (string directory in dirs) {\r
1000                         \r
1001                                 if (directory == DirPath)\r
1002                                         return;\r
1003                         }\r
1004                 \r
1005                         Assertion.Assert ("Directory Not Found", false);\r
1006                 } finally {\r
1007                         DeleteDirectory (DirPath);\r
1008                 }\r
1009         }\r
1010         \r
1011         [Test]\r
1012         public void GetFiles ()\r
1013         {\r
1014                 string path = TempFolder;\r
1015                 string DirPath = TempFolder + Path.DirectorySeparatorChar + ".GetFiles";\r
1016                 if (File.Exists (DirPath))\r
1017                         File.Delete (DirPath);\r
1018                 \r
1019                 try {\r
1020                         File.Create (DirPath).Close ();\r
1021                         string [] files = Directory.GetFiles (TempFolder);\r
1022                         foreach (string directory in files) {\r
1023                         \r
1024                                 if (directory == DirPath)\r
1025                                         return;\r
1026                         }\r
1027                 \r
1028                         Assertion.Assert ("File Not Found", false);\r
1029                 } finally {\r
1030                         if (File.Exists (DirPath))\r
1031                                 File.Delete (DirPath);\r
1032                         \r
1033                 }                                                               \r
1034         }\r
1035 \r
1036         private void DeleteDirectory (string path)\r
1037         {\r
1038                 if (Directory.Exists (path))\r
1039                         Directory.Delete (path, true);          \r
1040         }\r
1041 }\r
1042 }\r