5c288de14537acf8da009e9453536d79c00c1beb
[mono.git] / mcs / class / Mono.Posix / Test / Mono.Unix / UnixPathTest.cs
1 //
2 // Mono.Unix.UnixPath Test Cases
3 //
4 // Authors:
5 //  Jonathan Pryor (jonpryor@vt.edu)
6 //
7 // (c) 2006 Jonathan Pryor
8 //
9
10 using NUnit.Framework;
11 using System.IO;
12 using System;
13 using System.Text;
14 using Mono.Unix;
15
16 namespace MonoTests.Mono.Unix
17 {
18
19         [TestFixture, Category ("NotDotNet")]
20         public class UnixPathTest {
21
22                 private static readonly char DSC = UnixPath.DirectorySeparatorChar;
23
24                 [Test]
25                 public void Combine ()
26                 {
27                         string path, expected;
28                         string current = UnixDirectoryInfo.GetCurrentDirectory ();
29
30                         path = UnixPath.Combine ("/etc", "init.d");
31                         Assert.AreEqual ("/etc/init.d", path);
32
33                         path = UnixPath.Combine ("one", "");
34                         Assert.AreEqual ("one", path);
35
36                         path = UnixPath.Combine ("", "one");
37                         Assert.AreEqual ("one", path);
38
39                         path = UnixPath.Combine (current, "one");
40                         expected = current + DSC + "one";
41                         Assert.AreEqual (expected, path);
42
43                         path = UnixPath.Combine ("one", current);
44                         Assert.AreEqual (current, path);
45
46                         path = UnixPath.Combine (current, expected);
47                         Assert.AreEqual (expected, path);
48
49                         path = DSC + "one";
50                         path = UnixPath.Combine (path, "two" + DSC);
51                         expected = DSC + "one" + DSC + "two" + DSC;
52                         Assert.AreEqual (expected, path);
53
54                         path = "one" + DSC;
55                         path = UnixPath.Combine (path, DSC + "two");
56                         expected = DSC + "two";
57                         Assert.AreEqual (expected, path);
58
59                         path = "one" + DSC;
60                         path = UnixPath.Combine (path, "two" + DSC);
61                         expected = "one" + DSC + "two" + DSC;
62                         Assert.AreEqual (expected, path);
63
64                         path = UnixPath.Combine ("/a", "b", "c", "/d", "e");
65                         expected = "/d/e";
66                         Assert.AreEqual (expected, path);
67
68                         try {
69                                 path = UnixPath.Combine ("one", null);
70                                 Assert.Fail ("Combine Fail #01");
71                         }
72                         catch (Exception e) {
73                                 Assert.AreEqual (typeof (ArgumentNullException), e.GetType ());
74                         }
75
76                         try {
77                                 path = UnixPath.Combine (null, "one");
78                                 Assert.Fail ("Combine Fail #02");
79                         }
80                         catch (Exception e) {
81                                 Assert.AreEqual (typeof (ArgumentNullException), e.GetType ());
82                         }
83                 }
84         }
85 }
86