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"), Category ("NotOnWindows")] 20 public class UnixPathTest { 21 22 private static readonly char DSC = UnixPath.DirectorySeparatorChar; 23 24 [Test] Combine()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 == "/" ? String.Empty : 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 87