View Javadoc
1   /*
2    * Licensed to the Apache Software Foundation (ASF) under one or more
3    * contributor license agreements.  See the NOTICE file distributed with
4    * this work for additional information regarding copyright ownership.
5    * The ASF licenses this file to You under the Apache License, Version 2.0
6    * (the "License"); you may not use this file except in compliance with
7    * the License.  You may obtain a copy of the License at
8    *
9    *   http://www.apache.org/licenses/LICENSE-2.0
10   *
11   * Unless required by applicable law or agreed to in writing, software
12   * distributed under the License is distributed on an "AS IS" BASIS,
13   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14   * See the License for the specific language governing permissions and
15   * limitations under the License.
16   */
17  
18  package org.apache.commons.compress.utils;
19  
20  import static org.junit.jupiter.api.Assertions.assertEquals;
21  import static org.junit.jupiter.api.Assertions.assertNull;
22  
23  import java.io.File;
24  import java.nio.file.Path;
25  import java.nio.file.Paths;
26  
27  import org.apache.commons.lang3.SystemUtils;
28  import org.junit.jupiter.api.Test;
29  
30  public class FileNameUtilsTest {
31  
32      @Test
33      public void testGetBaseNamePathBaseCases() {
34          assertEquals("bar", FileNameUtils.getBaseName(Paths.get("a/b/c/bar.foo")));
35          assertEquals("foo", FileNameUtils.getBaseName(Paths.get("foo")));
36          assertEquals("", FileNameUtils.getBaseName(Paths.get("")));
37          assertEquals("", FileNameUtils.getBaseName(Paths.get(".")));
38          for (final File f : File.listRoots()) {
39              assertNull(FileNameUtils.getBaseName(f.toPath()));
40          }
41          if (SystemUtils.IS_OS_WINDOWS) {
42              assertNull(FileNameUtils.getBaseName(Paths.get("C:\\")));
43          }
44      }
45  
46      @Test
47      public void testGetBaseNamePathCornerCases() {
48          assertNull(FileNameUtils.getBaseName((Path) null));
49          assertEquals("foo", FileNameUtils.getBaseName(Paths.get("foo.")));
50          assertEquals("", FileNameUtils.getBaseName(Paths.get("bar/.foo")));
51      }
52  
53      @Test
54      public void testGetBaseNameStringBaseCases() {
55          assertEquals("bar", FileNameUtils.getBaseName("a/b/c/bar.foo"));
56          assertEquals("foo", FileNameUtils.getBaseName("foo"));
57      }
58  
59      @Test
60      public void testGetBaseNameStringCornerCases() {
61          assertNull(FileNameUtils.getBaseName((String) null));
62          assertEquals("foo", FileNameUtils.getBaseName("foo."));
63          assertEquals("", FileNameUtils.getBaseName("bar/.foo"));
64      }
65  
66      @Test
67      public void testGetExtensionPathBaseCases() {
68          assertEquals("foo", FileNameUtils.getExtension(Paths.get("a/b/c/bar.foo")));
69          assertEquals("", FileNameUtils.getExtension(Paths.get("foo")));
70          assertEquals("", FileNameUtils.getExtension(Paths.get("")));
71          assertEquals("", FileNameUtils.getExtension(Paths.get(".")));
72          for (final File f : File.listRoots()) {
73              assertNull(FileNameUtils.getExtension(f.toPath()));
74          }
75          if (SystemUtils.IS_OS_WINDOWS) {
76              assertNull(FileNameUtils.getExtension(Paths.get("C:\\")));
77          }
78      }
79  
80      @Test
81      public void testGetExtensionPathCornerCases() {
82          assertNull(FileNameUtils.getExtension((String) null));
83          assertEquals("", FileNameUtils.getExtension(Paths.get("foo.")));
84          assertEquals("foo", FileNameUtils.getExtension(Paths.get("bar/.foo")));
85      }
86  
87      @Test
88      public void testGetExtensionStringBaseCases() {
89          assertEquals("foo", FileNameUtils.getExtension("a/b/c/bar.foo"));
90          assertEquals("", FileNameUtils.getExtension("foo"));
91      }
92  
93      @Test
94      public void testGetExtensionStringCornerCases() {
95          assertNull(FileNameUtils.getExtension((String) null));
96          assertEquals("", FileNameUtils.getExtension("foo."));
97          assertEquals("foo", FileNameUtils.getExtension("bar/.foo"));
98      }
99  }