View Javadoc
1   package com.github.mikkoi.maven.plugins.enforcer.rule.propertyusage;
2   
3   import org.apache.maven.plugin.logging.SystemStreamLog;
4   import org.junit.Test;
5   
6   import java.io.FileNotFoundException;
7   import java.nio.charset.Charset;
8   import java.util.Arrays;
9   import java.util.Collection;
10  import java.util.Collections;
11  import java.util.HashMap;
12  import java.util.Map;
13  
14  import static org.junit.Assert.assertEquals;
15  
16  public class PropertyFilesTest {
17  
18      private SystemStreamLog slog = new SystemStreamLog();
19  
20      @Test
21      public void readPropertiesFromFiles_Normal() throws Exception {
22          Map<String, Integer> expected = new HashMap<>();
23          expected.put("my.property.value", 1);
24          expected.put("other.prop.val", 1);
25          expected.put("my-too.property.value", 1);
26          expected.put("other-too.prop.val", 1);
27          expected.put("also-prop.val", 1);
28          expected.put("my-first.property.value", 1);
29          expected.put("my-second.prop.val", 1);
30          expected.put("my-third-val", 1);
31          Collection<String> filenames = Arrays.asList(
32                  "src/test/resources/app1.properties",
33                  "src/test/resources/app2.properties",
34                  "src/test/resources/app3.properties"
35          );
36          PropertyFiles propertyFiles = new PropertyFiles(slog, Charset.forName("UTF-8"));
37          Map<String, Integer> properties = propertyFiles.readPropertiesFromFilesWithoutCount(filenames);
38          assertEquals("Read properties are as expected.", expected, properties);
39      }
40  
41      @Test(expected = FileNotFoundException.class)
42      public void readPropertiesFromFiles_ExceptionBecauseFileNotExists() throws Exception {
43          Collection<String> filenames = Collections.singletonList(
44                  "src/test/resources/not-exists.properties"
45          );
46          PropertyFiles propertyFiles = new PropertyFiles(slog, Charset.forName("UTF-8"));
47          propertyFiles.readPropertiesFromFilesWithoutCount(filenames);
48      }
49  
50      @Test
51      public void readPropertiesFromFiles_EmptyFilesAreOK() throws Exception {
52          Map<String, Integer> expected = new HashMap<>();
53          Collection<String> filenames = Collections.singletonList(
54                  "src/test/resources/empty.properties"
55          );
56          PropertyFiles propertyFiles = new PropertyFiles(slog, Charset.forName("UTF-8"));
57          Map<String, Integer> properties = propertyFiles.readPropertiesFromFilesWithoutCount(filenames);
58          assertEquals("Read properties are as expected (empty)", expected, properties);
59      }
60  
61      @Test
62      public void readPropertiesFromTestPropertyFile() throws Exception {
63          Map<String, Integer> expected = new HashMap<>();
64          expected.put("first.property.value", 2);
65          expected.put("second.property.value", 1);
66          expected.put("third.property.value", 4);
67          expected.put("fourth.property.value", 1);
68          Collection<String> filenames = Collections.singleton(
69                  "src/test/resources/app1-double-def.properties"
70          );
71          PropertyFiles propertyFiles = new PropertyFiles(slog, Charset.forName("UTF-8"));
72          Map<String, Integer> properties = propertyFiles.readPropertiesFromFilesWithCount(filenames);
73          assertEquals("Read properties are as expected.", expected, properties);
74      }
75  
76  }