TestPath.java
上传用户:quxuerui
上传日期:2018-01-08
资源大小:41811k
文件大小:6k
源码类别:

网格计算

开发平台:

Java

  1. /**
  2.  * Licensed to the Apache Software Foundation (ASF) under one
  3.  * or more contributor license agreements.  See the NOTICE file
  4.  * distributed with this work for additional information
  5.  * regarding copyright ownership.  The ASF licenses this file
  6.  * to you under the Apache License, Version 2.0 (the
  7.  * "License"); you may not use this file except in compliance
  8.  * with the License.  You may obtain a copy of the License at
  9.  *
  10.  *     http://www.apache.org/licenses/LICENSE-2.0
  11.  *
  12.  * Unless required by applicable law or agreed to in writing, software
  13.  * distributed under the License is distributed on an "AS IS" BASIS,
  14.  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  15.  * See the License for the specific language governing permissions and
  16.  * limitations under the License.
  17.  */
  18. package org.apache.hadoop.fs;
  19. import java.util.*;
  20. import junit.framework.TestCase;
  21. public class TestPath extends TestCase {
  22.   public void testToString() {
  23.     toStringTest("/");
  24.     toStringTest("/foo");
  25.     toStringTest("/foo/bar");
  26.     toStringTest("foo");
  27.     toStringTest("foo/bar");
  28.     boolean emptyException = false;
  29.     try {
  30.       toStringTest("");
  31.     } catch (IllegalArgumentException e) {
  32.       // expect to receive an IllegalArgumentException
  33.       emptyException = true;
  34.     }
  35.     assertTrue(emptyException);
  36.     if (Path.WINDOWS) {
  37.       toStringTest("c:");
  38.       toStringTest("c:/");
  39.       toStringTest("c:foo");
  40.       toStringTest("c:foo/bar");
  41.       toStringTest("c:foo/bar");
  42.       toStringTest("c:/foo/bar");
  43.     }
  44.   }
  45.   private void toStringTest(String pathString) {
  46.     assertEquals(pathString, new Path(pathString).toString());
  47.   }
  48.   public void testNormalize() {
  49.     assertEquals("/", new Path("//").toString());
  50.     assertEquals("/foo", new Path("/foo/").toString());
  51.     assertEquals("/foo", new Path("/foo/").toString());
  52.     assertEquals("foo", new Path("foo/").toString());
  53.     assertEquals("foo", new Path("foo//").toString());
  54.     assertEquals("foo/bar", new Path("foo//bar").toString());
  55.     if (Path.WINDOWS) {
  56.       assertEquals("c:/a/b", new Path("c:\a\b").toString());
  57.     }
  58.   }
  59.   public void testIsAbsolute() {
  60.     assertTrue(new Path("/").isAbsolute());
  61.     assertTrue(new Path("/foo").isAbsolute());
  62.     assertFalse(new Path("foo").isAbsolute());
  63.     assertFalse(new Path("foo/bar").isAbsolute());
  64.     assertFalse(new Path(".").isAbsolute());
  65.     if (Path.WINDOWS) {
  66.       assertTrue(new Path("c:/a/b").isAbsolute());
  67.       assertFalse(new Path("c:a/b").isAbsolute());
  68.     }
  69.   }
  70.   public void testParent() {
  71.     assertEquals(new Path("/foo"), new Path("/foo/bar").getParent());
  72.     assertEquals(new Path("foo"), new Path("foo/bar").getParent());
  73.     assertEquals(new Path("/"), new Path("/foo").getParent());
  74.     if (Path.WINDOWS) {
  75.       assertEquals(new Path("c:/"), new Path("c:/foo").getParent());
  76.     }
  77.   }
  78.   public void testChild() {
  79.     assertEquals(new Path("."), new Path(".", "."));
  80.     assertEquals(new Path("/"), new Path("/", "."));
  81.     assertEquals(new Path("/"), new Path(".", "/"));
  82.     assertEquals(new Path("/foo"), new Path("/", "foo"));
  83.     assertEquals(new Path("/foo/bar"), new Path("/foo", "bar"));
  84.     assertEquals(new Path("/foo/bar/baz"), new Path("/foo/bar", "baz"));
  85.     assertEquals(new Path("/foo/bar/baz"), new Path("/foo", "bar/baz"));
  86.     assertEquals(new Path("foo"), new Path(".", "foo"));
  87.     assertEquals(new Path("foo/bar"), new Path("foo", "bar"));
  88.     assertEquals(new Path("foo/bar/baz"), new Path("foo", "bar/baz"));
  89.     assertEquals(new Path("foo/bar/baz"), new Path("foo/bar", "baz"));
  90.     assertEquals(new Path("/foo"), new Path("/bar", "/foo"));
  91.     if (Path.WINDOWS) {
  92.       assertEquals(new Path("c:/foo"), new Path("/bar", "c:/foo"));
  93.       assertEquals(new Path("c:/foo"), new Path("d:/bar", "c:/foo"));
  94.     }
  95.   }
  96.   
  97.   public void testEquals() {
  98.     assertFalse(new Path("/").equals(new Path("/foo")));
  99.   }
  100.   public void testDots() {
  101.     // Test Path(String) 
  102.     assertEquals(new Path("/foo/bar/baz").toString(), "/foo/bar/baz");
  103.     assertEquals(new Path("/foo/bar", ".").toString(), "/foo/bar");
  104.     assertEquals(new Path("/foo/bar/../baz").toString(), "/foo/baz");
  105.     assertEquals(new Path("/foo/bar/./baz").toString(), "/foo/bar/baz");
  106.     assertEquals(new Path("/foo/bar/baz/../../fud").toString(), "/foo/fud");
  107.     assertEquals(new Path("/foo/bar/baz/.././../fud").toString(), "/foo/fud");
  108.     assertEquals(new Path("../../foo/bar").toString(), "../../foo/bar");
  109.     assertEquals(new Path(".././../foo/bar").toString(), "../../foo/bar");
  110.     assertEquals(new Path("./foo/bar/baz").toString(), "foo/bar/baz");
  111.     assertEquals(new Path("/foo/bar/../../baz/boo").toString(), "/baz/boo");
  112.     assertEquals(new Path("foo/bar/").toString(), "foo/bar");
  113.     assertEquals(new Path("foo/bar/../baz").toString(), "foo/baz");
  114.     assertEquals(new Path("foo/bar/../../baz/boo").toString(), "baz/boo");
  115.     
  116.     
  117.     // Test Path(Path,Path)
  118.     assertEquals(new Path("/foo/bar", "baz/boo").toString(), "/foo/bar/baz/boo");
  119.     assertEquals(new Path("foo/bar/","baz/bud").toString(), "foo/bar/baz/bud");
  120.     
  121.     assertEquals(new Path("/foo/bar","../../boo/bud").toString(), "/boo/bud");
  122.     assertEquals(new Path("foo/bar","../../boo/bud").toString(), "boo/bud");
  123.     assertEquals(new Path(".","boo/bud").toString(), "boo/bud");
  124.     assertEquals(new Path("/foo/bar/baz","../../boo/bud").toString(), "/foo/boo/bud");
  125.     assertEquals(new Path("foo/bar/baz","../../boo/bud").toString(), "foo/boo/bud");
  126.     
  127.     assertEquals(new Path("../../","../../boo/bud").toString(), "../../../../boo/bud");
  128.     assertEquals(new Path("../../foo","../../../boo/bud").toString(), "../../../../boo/bud");
  129.     assertEquals(new Path("../../foo/bar","../boo/bud").toString(), "../../foo/boo/bud");
  130.     assertEquals(new Path("foo/bar/baz","../../..").toString(), "");
  131.     assertEquals(new Path("foo/bar/baz","../../../../..").toString(), "../..");
  132.   }
  133.   
  134.   public void testScheme() throws java.io.IOException {
  135.     assertEquals("foo:/bar", new Path("foo:/","/bar").toString()); 
  136.     assertEquals("foo://bar/baz", new Path("foo://bar/","/baz").toString()); 
  137.   }
  138. }