// // Mono.Unix.UnixPath Test Cases // // Authors: // Jonathan Pryor (jonpryor@vt.edu) // // (c) 2006 Jonathan Pryor // using NUnit.Framework; using System.IO; using System; using System.Text; using Mono.Unix; namespace MonoTests.Mono.Unix { [TestFixture, Category ("NotDotNet")] public class UnixPathTest { private static readonly char DSC = UnixPath.DirectorySeparatorChar; [Test] public void Combine () { string path, expected; string current = UnixDirectoryInfo.GetCurrentDirectory (); path = UnixPath.Combine ("/etc", "init.d"); Assert.AreEqual ("/etc/init.d", path); path = UnixPath.Combine ("one", ""); Assert.AreEqual ("one", path); path = UnixPath.Combine ("", "one"); Assert.AreEqual ("one", path); path = UnixPath.Combine (current, "one"); expected = (current == "/" ? String.Empty : current) + DSC + "one"; Assert.AreEqual (expected, path); path = UnixPath.Combine ("one", current); Assert.AreEqual (current, path); path = UnixPath.Combine (current, expected); Assert.AreEqual (expected, path); path = DSC + "one"; path = UnixPath.Combine (path, "two" + DSC); expected = DSC + "one" + DSC + "two" + DSC; Assert.AreEqual (expected, path); path = "one" + DSC; path = UnixPath.Combine (path, DSC + "two"); expected = DSC + "two"; Assert.AreEqual (expected, path); path = "one" + DSC; path = UnixPath.Combine (path, "two" + DSC); expected = "one" + DSC + "two" + DSC; Assert.AreEqual (expected, path); path = UnixPath.Combine ("/a", "b", "c", "/d", "e"); expected = "/d/e"; Assert.AreEqual (expected, path); try { path = UnixPath.Combine ("one", null); Assert.Fail ("Combine Fail #01"); } catch (Exception e) { Assert.AreEqual (typeof (ArgumentNullException), e.GetType ()); } try { path = UnixPath.Combine (null, "one"); Assert.Fail ("Combine Fail #02"); } catch (Exception e) { Assert.AreEqual (typeof (ArgumentNullException), e.GetType ()); } } } }