1 package com.github.mikkoi.maven.plugins.enforcer.rule.charsetencoding;
2
3 import org.apache.commons.lang.StringUtils;
4 import org.apache.maven.enforcer.rule.api.EnforcerRuleException;
5 import org.apache.maven.enforcer.rule.api.EnforcerRuleHelper;
6 import org.apache.maven.plugins.enforcer.EnforcerTestUtils;
7 import org.junit.Test;
8
9 import javax.annotation.Nonnull;
10
11 import static org.junit.Assert.assertTrue;
12
13
14
15
16 public final class TestCharacterSetEncodingRule {
17
18 @Test
19 public void testValidFiles1() {
20 testFiles(true, 0, "UTF-8", "src/test/resources", "utf-8.txt", StringUtils.EMPTY);
21 }
22
23 @Test
24 public void testValidFiles1_1() {
25 testFiles(true, 0, "ISO-8859-1", "src/test/resources", "iso.txt", StringUtils.EMPTY);
26 }
27
28 @Test
29 public void testValidFiles1_2() {
30 testFiles(false, 1, "UTF-8", "src/test/resources", StringUtils.EMPTY, StringUtils.EMPTY);
31 }
32
33 @Test
34 public void testValidFiles2() {
35 testFiles(false, 2, "ASCII", "src/test/resources", StringUtils.EMPTY, StringUtils.EMPTY);
36 }
37
38 @Test
39 public void testValidFiles3() {
40
41 testFiles(true, 0, "iso-8859-1", "src/test/java", StringUtils.EMPTY, StringUtils.EMPTY);
42 }
43
44 @Test
45 public void testValidFiles4() {
46
47 testFiles(true, 0, "utf-8", "src/test/java", StringUtils.EMPTY, StringUtils.EMPTY);
48 }
49
50 @Test
51 public void testValidFiles5() {
52 testFiles(false, 1, "ascii", "src/test/java", StringUtils.EMPTY, StringUtils.EMPTY);
53 }
54
55 @Test
56 public void testValidFiles6() {
57 testFiles(true, 0, "ISO-8859-1", "src/test/resources", StringUtils.EMPTY, StringUtils.EMPTY);
58 }
59
60 private void testFiles(
61 boolean expected,
62 int expectedFaultyFilesAmount,
63 @Nonnull String encoding,
64 @Nonnull String dir,
65 @Nonnull String includeRegex,
66 @Nonnull String excludeRegex
67 ) {
68 boolean isValid;
69 CharacterSetEncodingRule rule = new CharacterSetEncodingRule();
70 rule.setRequireEncoding(encoding);
71 rule.setDirectory(dir);
72 rule.setIncludeRegex(includeRegex);
73 rule.setExcludeRegex(excludeRegex);
74 try {
75 EnforcerRuleHelper helper = EnforcerTestUtils.getHelper();
76 rule.execute(helper);
77 isValid = true;
78 } catch (EnforcerRuleException e) {
79
80 isValid = false;
81 }
82 assertTrue(isValid == expected && rule.getFaultyFiles().size() == expectedFaultyFilesAmount);
83 }
84
85 }