1   /*
2    * Copyright 2004-2008 the Seasar Foundation and the Others.
3    *
4    * Licensed under the Apache License, Version 2.0 (the "License");
5    * you may not use this file except in compliance with the License.
6    * You may obtain a copy of the License at
7    *
8    *     http://www.apache.org/licenses/LICENSE-2.0
9    *
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, 
13   * either express or implied. See the License for the specific language
14   * governing permissions and limitations under the License.
15   */
16  package org.seasar.uruma.util;
17  
18  import junit.framework.TestCase;
19  
20  /**
21   * {@link PathUtil} のためのテストクラスです。<br />
22   * 
23   * @author y-komori
24   */
25  public class PathUtilTest extends TestCase {
26      /**
27       * {@link PathUtil#createPath(String, String)} メソッドのテストです。<br />
28       */
29      public void testCreatePath() {
30          assertEquals("1", "org/seasar/uruma/util/PathUtil.java", PathUtil
31                  .createPath("org/seasar/uruma/util", "PathUtil.java"));
32  
33          assertEquals("2", "org/seasar/uruma/util/PathUtil.java", PathUtil
34                  .createPath("org/seasar/uruma/util/", "PathUtil.java"));
35  
36          assertEquals("3", "org/seasar/uruma/util/PathUtil.java", PathUtil
37                  .createPath("", "org/seasar/uruma/util/PathUtil.java"));
38  
39          assertEquals("4", "org/seasar/uruma/util/PathUtil.java", PathUtil
40                  .createPath("org/seasar/uruma/util",
41                          "org/seasar/uruma/util/PathUtil.java"));
42  
43          assertEquals("5", "/org/seasar/uruma/abc/PathUtil.java", PathUtil
44                  .createPath("org/seasar/uruma/util",
45                          "/org/seasar/uruma/abc/PathUtil.java"));
46  
47          assertEquals("6", "org/seasar/uruma/util/../template/PathUtil.java",
48                  PathUtil.createPath("org/seasar/uruma/util",
49                          "../template/PathUtil.java"));
50      }
51  
52      /**
53       * {@link PathUtil#replaceSeparator(String)} メソッドのテストです。<br />
54       */
55      public void testReplaceSeparator() {
56          assertEquals("1", "abc/def/ghi", PathUtil
57                  .replaceSeparator("abc\\def\\ghi"));
58  
59          assertEquals("2", "", PathUtil.replaceSeparator(null));
60      }
61  
62      /**
63       * {@link PathUtil#getRelativePath(String, String)} メソッドのテストです。<br />
64       */
65      public void testGetRelativePath() {
66          assertEquals("1", "seasar", PathUtil.getRelativePath("c:/org/",
67                  "c:/org/seasar"));
68  
69          assertEquals("2", "seasar/uruma", PathUtil.getRelativePath("c:/org/",
70                  "c:/org/seasar/uruma"));
71  
72          assertEquals("3", "c:/org/seasar/uruma", PathUtil.getRelativePath(
73                  "c:/org/seasar/framework", "c:/org/seasar/uruma"));
74  
75          try {
76              PathUtil.getRelativePath(null, "abc");
77              fail("4");
78          } catch (IllegalArgumentException ex) {
79              assertTrue(true);
80          }
81  
82          try {
83              PathUtil.getRelativePath("abc", null);
84              fail("5");
85          } catch (IllegalArgumentException ex) {
86              assertTrue(true);
87          }
88      }
89  
90      /**
91       * {@link PathUtil#getParent(String)} メソッドのテストです。<br />
92       */
93      public void testGetParent() {
94          assertEquals("1", null, PathUtil.getParent(null));
95  
96          assertEquals("2", "c:/org/seasar/uruma", PathUtil
97                  .getParent("c:/org/seasar/uruma/test.java"));
98  
99          assertEquals("3", "c:/org/seasar/uruma", PathUtil
100                 .getParent("c:/org/seasar/uruma/"));
101 
102         assertEquals("4", "c:\\org\\seasar\\uruma", PathUtil
103                 .getParent("c:\\org\\seasar\\uruma\\test.java"));
104 
105         assertEquals("5", "c:\\org\\seasar\\uruma", PathUtil
106                 .getParent("c:\\org\\seasar\\uruma\\"));
107 
108         assertEquals("6", "c:/org\\seasar/uruma", PathUtil
109                 .getParent("c:/org\\seasar/uruma\\test.java"));
110 
111         assertEquals("7", "c:\\org/seasar\\uruma", PathUtil
112                 .getParent("c:\\org/seasar\\uruma/test.java"));
113 
114         assertEquals("8", "test", PathUtil.getParent("test"));
115     }
116 
117     /**
118      * {@link PathUtil#getFileName(String)} メソッドのテストです。<br />
119      */
120     public void testGetFileName() {
121         assertEquals("1", null, PathUtil.getFileName(null));
122 
123         assertEquals("2", "test.java", PathUtil
124                 .getFileName("c:/org/seasar/uruma/test.java"));
125 
126         assertEquals("3", "", PathUtil.getFileName("c:/org/seasar/uruma/"));
127 
128         assertEquals("4", "test.java", PathUtil
129                 .getFileName("c:\\org\\seasar\\uruma\\test.java"));
130 
131         assertEquals("5", "", PathUtil.getFileName("c:\\org\\seasar\\uruma\\"));
132 
133         assertEquals("6", "test.java", PathUtil
134                 .getFileName("c:/org\\seasar/uruma\\test.java"));
135 
136         assertEquals("7", "test.java", PathUtil
137                 .getFileName("c:\\org/seasar\\uruma/test.java"));
138 
139         assertEquals("8", "test", PathUtil.getFileName("test"));
140     }
141 
142     /**
143      * {@link PathUtil#getBaseName(String)} メソッドのテストです。<br />
144      */
145     public void testGetBaseName() {
146         assertEquals("1", "test", PathUtil.getBaseName("test.txt"));
147 
148         assertEquals("2", "test", PathUtil.getBaseName("test."));
149 
150         assertEquals("3", "test", PathUtil.getBaseName("test"));
151 
152         assertEquals("4", null, PathUtil.getBaseName(null));
153 
154         assertEquals("5", "test.abc", PathUtil.getBaseName("test.abc.txt"));
155     }
156 
157     /**
158      * {@link PathUtil#getExt(String)} メソッドのテストです。<br />
159      */
160     public void testGetExt() {
161         assertNull("1", PathUtil.getExt(null));
162         assertEquals("2", "txt", PathUtil.getExt("test.txt"));
163         assertEquals("3", "txt", PathUtil.getExt("test.abc.txt"));
164         assertEquals("4", "", PathUtil.getExt("test"));
165         assertEquals("5", "", PathUtil.getExt(""));
166     }
167 }