/* * Copyright (C) 2004 Joe Walnes. * Copyright (C) 2006, 2007 XStream Committers. * All rights reserved. * * The software in this package is published under the terms of the BSD * style license a copy of which has been included with this distribution in * the LICENSE.txt file. * * Created on 02. September 2004 by Joe Walnes */ package com.thoughtworks.xstream.io.path; import junit.framework.Test; import junit.framework.TestCase; import junit.framework.TestSuite; public class PathTest { public static Test suite() { TestSuite result = new TestSuite(PathTest.class.getName()); addTest(result, "/a/b/c", "/a/b/c", ".", true); addTest(result, "/a", "/a/b/c", "b/c", true); addTest(result, "/a/b/c", "/a", "../..", false); addTest(result, "/a/b/c", "/a/b/X", "../X", false); addTest(result, "/a/b/c", "/a/X/c", "../../X/c", false); addTest(result, "/a/b/c/d", "/a/X/c", "../../../X/c", false); addTest(result, "/a/b/c", "/a/X/c/d", "../../X/c/d", false); addTest(result, "/a/b/c[2]", "/a/b/c[3]", "../c[3]", false); return result; } private static void addTest(TestSuite suite, final String from, final String to, final String relative, final boolean isAncestor) { String testName = from + " - " + to; suite.addTest(new TestCase(testName) { protected void runTest() throws Throwable { assertEquals(new Path(relative), new Path(from).relativeTo(new Path(to))); assertEquals(new Path(to), new Path(from).apply(new Path(relative))); assertEquals(isAncestor, new Path(from).isAncestor(new Path(to))); } }); } }