forked from phoedos/pmd
Merge branch 'pr-1621'
This commit is contained in:
@ -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
|
||||
|
@ -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();
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
@ -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());
|
||||
}
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user