Merge branch 'pr-1621'

This commit is contained in:
Juan Martín Sotuyo Dodero
2019-02-18 00:49:49 -03:00
5 changed files with 28 additions and 8 deletions

View File

@ -54,6 +54,7 @@ More information is available in [the user documentation](pmd_userdocs_cpd.html#
### Fixed Issues
* all
* [#1462](https://github.com/pmd/pmd/issues/1462): \[core] Failed build on Windows with source zip archive
* [#1559](https://github.com/pmd/pmd/issues/1559): \[core] CPD: Lexical error in file (no file name provided)
* java-bestpractices
* [#808](https://github.com/pmd/pmd/issues/808): \[java] AccessorMethodGeneration false positives with compile time constants

View File

@ -12,6 +12,7 @@ import java.io.IOException;
import java.io.InputStream;
import java.nio.charset.StandardCharsets;
import java.util.Arrays;
import java.util.regex.Pattern;
import org.apache.commons.io.IOUtils;
import org.junit.After;
@ -104,13 +105,18 @@ public class YAHTMLRendererTest extends AbstractRendererTst {
try (FileInputStream in = new FileInputStream(new File(outputDir, file));
InputStream expectedIn = YAHTMLRendererTest.class.getResourceAsStream("yahtml/" + file)) {
String data = IOUtils.toString(in, StandardCharsets.UTF_8);
String expected = IOUtils.toString(expectedIn, StandardCharsets.UTF_8);
String expected = normalizeLineSeparators(IOUtils.toString(expectedIn, StandardCharsets.UTF_8));
assertEquals("File " + file + " is different", expected, data);
}
}
}
private static String normalizeLineSeparators(String s) {
return s.replaceAll(Pattern.quote(IOUtils.LINE_SEPARATOR_WINDOWS), IOUtils.LINE_SEPARATOR_UNIX)
.replaceAll(Pattern.quote(IOUtils.LINE_SEPARATOR_UNIX), PMD.EOL);
}
@Override
public Renderer getRenderer() {
Renderer result = new YAHTMLRenderer();

View File

@ -8,9 +8,13 @@ import java.io.IOException;
import java.nio.file.Path;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Pattern;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.StringUtils;
import net.sourceforge.pmd.PMD;
public class MockedFileWriter implements FileWriter {
public static class FileEntry {
@ -43,4 +47,9 @@ public class MockedFileWriter implements FileWriter {
public void reset() {
data.clear();
}
public static String normalizeLineSeparators(String s) {
return s.replaceAll(Pattern.quote(IOUtils.LINE_SEPARATOR_WINDOWS), IOUtils.LINE_SEPARATOR_UNIX)
.replaceAll(Pattern.quote(IOUtils.LINE_SEPARATOR_UNIX), PMD.EOL);
}
}

View File

@ -67,6 +67,11 @@ public class RuleDocGeneratorTest {
});
}
private static String loadResource(String name) throws IOException {
return MockedFileWriter.normalizeLineSeparators(
IOUtils.toString(RuleDocGeneratorTest.class.getResourceAsStream(name), StandardCharsets.UTF_8));
}
@Test
public void testSingleRuleset() throws RuleSetNotFoundException, IOException {
RuleDocGenerator generator = new RuleDocGenerator(writer, root);
@ -82,17 +87,14 @@ public class RuleDocGeneratorTest {
assertEquals(3, writer.getData().size());
FileEntry languageIndex = writer.getData().get(0);
assertTrue(FilenameUtils.normalize(languageIndex.getFilename(), true).endsWith("docs/pages/pmd/rules/java.md"));
assertEquals(IOUtils.toString(RuleDocGeneratorTest.class.getResourceAsStream("/expected/java.md"), StandardCharsets.UTF_8),
languageIndex.getContent());
assertEquals(loadResource("/expected/java.md"), languageIndex.getContent());
FileEntry ruleSetIndex = writer.getData().get(1);
assertTrue(FilenameUtils.normalize(ruleSetIndex.getFilename(), true).endsWith("docs/pages/pmd/rules/java/sample.md"));
assertEquals(IOUtils.toString(RuleDocGeneratorTest.class.getResourceAsStream("/expected/sample.md"), StandardCharsets.UTF_8),
ruleSetIndex.getContent());
assertEquals(loadResource("/expected/sample.md"), ruleSetIndex.getContent());
FileEntry sidebar = writer.getData().get(2);
assertTrue(FilenameUtils.normalize(sidebar.getFilename(), true).endsWith("docs/_data/sidebars/pmd_sidebar.yml"));
assertEquals(IOUtils.toString(RuleDocGeneratorTest.class.getResourceAsStream("/expected/pmd_sidebar.yml"), StandardCharsets.UTF_8),
sidebar.getContent());
assertEquals(loadResource("/expected/pmd_sidebar.yml"), sidebar.getContent());
}
}

View File

@ -55,6 +55,8 @@ public class SidebarGeneratorTest {
}
String yaml = new Yaml(options).dump(result);
assertEquals(IOUtils.toString(SidebarGeneratorTest.class.getResourceAsStream("sidebar.yml"), StandardCharsets.UTF_8), yaml);
String expected = MockedFileWriter.normalizeLineSeparators(
IOUtils.toString(SidebarGeneratorTest.class.getResourceAsStream("sidebar.yml"), StandardCharsets.UTF_8));
assertEquals(expected, yaml);
}
}