1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.commons.configuration2.io;
18
19 import static org.junit.jupiter.api.Assertions.assertEquals;
20 import static org.junit.jupiter.api.Assertions.assertNull;
21 import static org.mockito.Mockito.mock;
22
23 import java.io.File;
24 import java.net.URL;
25
26 import org.apache.commons.configuration2.ConfigurationAssert;
27 import org.junit.jupiter.api.BeforeEach;
28 import org.junit.jupiter.api.Test;
29
30
31
32
33 public class TestBasePathLocationStrategy {
34
35
36 private static final String TEST_FILE = "test.xml";
37
38
39
40
41
42
43 private static void checkURL(final URL url) {
44 assertEquals(FileLocatorUtils.fileFromURL(url).getAbsoluteFile(), ConfigurationAssert.getTestFile(TEST_FILE).getAbsoluteFile());
45 }
46
47
48 private FileSystem fileSystem;
49
50
51 private BasePathLocationStrategy strategy;
52
53 @BeforeEach
54 public void setUp() throws Exception {
55 fileSystem = mock(FileSystem.class);
56 strategy = new BasePathLocationStrategy();
57 }
58
59
60
61
62 @Test
63 void testLocateSuccess() {
64 final File path = ConfigurationAssert.TEST_DIR;
65 final FileLocator locator = FileLocatorUtils.fileLocator().basePath(path.getAbsolutePath()).fileName(TEST_FILE).create();
66 checkURL(strategy.locate(fileSystem, locator));
67 }
68
69
70
71
72 @Test
73 void testLocateSuccessRelativePrefix() {
74 final File path = ConfigurationAssert.TEST_DIR;
75 final FileLocator locator = FileLocatorUtils.fileLocator().basePath(path.getAbsolutePath()).fileName("." + File.separator + TEST_FILE).create();
76 checkURL(strategy.locate(fileSystem, locator));
77 }
78
79
80
81
82 @Test
83 void testNullBasePath() {
84 final FileLocator locator = FileLocatorUtils.fileLocator().fileName(TEST_FILE).create();
85 assertNull(strategy.locate(fileSystem, locator));
86 }
87
88
89
90
91 @Test
92 void testNullFileName() {
93 final FileLocator locator = FileLocatorUtils.fileLocator().basePath(ConfigurationAssert.getTestFile(TEST_FILE).getAbsolutePath()).create();
94 assertNull(strategy.locate(fileSystem, locator));
95 }
96 }