View Javadoc
1   package com.github.mikkoi.maven.plugins.enforcer.rule.propertyusage.configuration;
2   
3   import org.apache.maven.plugin.logging.SystemStreamLog;
4   import org.junit.Rule;
5   import org.junit.Test;
6   import org.junit.rules.TemporaryFolder;
7   
8   import java.io.File;
9   import java.nio.file.Paths;
10  import java.util.Arrays;
11  import java.util.Collection;
12  import java.util.Collections;
13  import java.util.stream.Collectors;
14  
15  import static com.github.mikkoi.maven.plugins.enforcer.rule.propertyusage.configuration.FileSpecs.absoluteCwdAndFile;
16  import static org.junit.Assert.assertEquals;
17  
18  public class FileSpecsTest {
19  
20      @Rule
21      public TemporaryFolder testDir = new TemporaryFolder();
22  
23      @Test
24      public void getFilenamesFromFileSpecs() throws Exception {
25          SystemStreamLog slog = new SystemStreamLog();
26          File tempFile = testDir.newFile();
27          Collection<String> files = Arrays.asList(
28                  "src/test/resources/properties-dir/**/*.properties",
29                  "src/test/resources/app1.properties",
30                  tempFile.getAbsolutePath()
31          );
32          Collection<String> expected = Arrays.asList(
33                  absoluteCwdAndFile("src/test/resources/properties-dir/sub-app-props1.properties"),
34                  absoluteCwdAndFile("src/test/resources/properties-dir/sub-app-props2.properties"),
35                  absoluteCwdAndFile("src/test/resources/app1.properties"),
36                  tempFile.getAbsolutePath()
37          );
38          expected = expected.stream().sorted().collect(Collectors.toSet());
39          slog.debug("current dir:"+ Paths.get("").toAbsolutePath().toString());
40          Collection<String> filenames = FileSpecs.getAbsoluteFilenames(files, Paths.get("").toAbsolutePath(), slog);
41          filenames = filenames.stream().sorted().collect(Collectors.toSet());
42          assertEquals("Filenames are as expected.", expected, filenames);
43      }
44  
45      @Test
46      public void getFilenamesFromFileSpecs_noFiles() throws Exception {
47          SystemStreamLog slog = new SystemStreamLog();
48          Collection<String> files = Arrays.asList(
49                  absoluteCwdAndFile("src/test/resources/no-exist-dir/*.properties"),
50                  absoluteCwdAndFile("src/test/resources/no-way.properties")
51          );
52          Collection<String> expected = Collections.emptySet();
53          expected = expected.stream().sorted().collect(Collectors.toSet());
54          Collection<String> filenames = FileSpecs.getAbsoluteFilenames(files, Paths.get("").toAbsolutePath(), slog);
55          filenames = filenames.stream().sorted().collect(Collectors.toSet());
56          assertEquals("Filenames are as expected (none).", expected, filenames);
57      }
58  }