@Test public void testNoInputSpecified() throws Exception { JavadocPropertiesGenerator.main("--destfile", DESTFILE.getAbsolutePath()); final String expected = String.format(Locale.ROOT, "Missing required parameter: <inputFile>%n") + USAGE; assertEquals("Unexpected error log", expected, systemErr.getLog()); assertEquals("Unexpected output log", "", systemOut.getLog()); }
@Test public void testNonExistentArgument() throws Exception { JavadocPropertiesGenerator.main("--nonexistent-argument"); final String expected = String.format(Locale.ROOT, "Missing required options " + "[--destfile=<outputFile>, params[0]=<inputFile>]%n") + USAGE; assertEquals("Unexpected error log", expected, systemErr.getLog()); assertEquals("Unexpected output log", "", systemOut.getLog()); }
@Test public void testNoDestfileSpecified() throws Exception { JavadocPropertiesGenerator.main(getPath("InputMain.java")); final String expected = String.format(Locale.ROOT, "Missing required option '--destfile=<outputFile>'%n") + USAGE; assertEquals("Unexpected error log", expected, systemErr.getLog()); assertEquals("Unexpected output log", "", systemOut.getLog()); }
@Test public void testNotClass() throws Exception { JavadocPropertiesGenerator.main("--destfile", DESTFILE.getAbsolutePath(), getPath("InputJavadocPropertiesGeneratorNotClass.java")); assertEquals("Unexpected error log", "", systemErr.getLog()); assertEquals("Unexpected output log", "", systemOut.getLog()); }
@Test public void testNonExistentTargetFile() throws Exception { exit.expectSystemExitWithStatus(-1); exit.checkAssertionAfterwards(() -> { assertEquals("Unexpected output log", "Files to process must be specified, found 0." + System.lineSeparator(), systemOut.getLog()); assertEquals("Unexpected system error log", "", systemErr.getLog()); }); Main.main("-c", "/google_checks.xml", "NonExistentFile.java"); }
@Test public void testPrintSuppressionConflictingOptionsTvsO() throws Exception { final File file = temporaryFolder.newFile("file.output"); exit.expectSystemExitWithStatus(-1); exit.checkAssertionAfterwards(() -> { assertEquals("Unexpected output log", "Option '-s' cannot be used with other options." + System.lineSeparator(), systemOut.getLog()); assertEquals("Unexpected system error log", "", systemErr.getLog()); }); Main.main("-o", file.getCanonicalPath(), "-s", "2:4", getPath("")); }
@Test public void testZeroCheckerThreadsNumber() throws Exception { exit.expectSystemExitWithStatus(-1); exit.checkAssertionAfterwards(() -> { assertEquals("Unexpected output log", "Checker threads number must be greater than zero" + System.lineSeparator(), systemOut.getLog()); assertEquals("Unexpected system error log", "", systemErr.getLog()); }); Main.main("-C", "0", "-c", "/google_checks.xml", getPath("InputMain.java")); }
@Test public void testEmptyJavadoc() throws Exception { JavadocPropertiesGenerator.main(getPath("InputJavadocPropertiesGeneratorEmptyJavadoc.java"), "--destfile", DESTFILE.getAbsolutePath()); assertEquals("Unexpected error log", "", systemErr.getLog()); assertEquals("Unexpected output log", "", systemOut.getLog()); assertEquals("File '" + DESTFILE + "' must be empty", 0, FileUtils.sizeOf(DESTFILE)); }
@Test public void testAntlrError() throws Exception { final DefaultConfiguration checkConfig = createModuleConfig(TempCheck.class); final String[] expected = { "4: " + getCheckMessage(MSG_JAVADOC_PARSE_RULE_ERROR, 78, "mismatched input '(' expecting <EOF>", "JAVADOC"), }; verify(checkConfig, getPath("InputAbstractJavadocInvalidAtSeeReference.java"), expected); assertEquals("Error is unexpected", "", systemErr.getLog()); }
@Test public void testPrintSuppressionOnMoreThanOneFile() throws Exception { exit.expectSystemExitWithStatus(-1); exit.checkAssertionAfterwards(() -> { assertEquals("Unexpected output log", "Printing xpath suppressions is allowed for " + "only one file." + System.lineSeparator(), systemOut.getLog()); assertEquals("Unexpected system error log", "", systemErr.getLog()); }); Main.main("-s", "2:4", getPath(""), getPath("")); }
@Test public void testExcludeOption() throws Exception { exit.expectSystemExitWithStatus(-1); exit.checkAssertionAfterwards(() -> { assertEquals("Unexpected output log", "Files to process must be specified, found 0." + System.lineSeparator(), systemOut.getLog()); assertEquals("Unexpected system error log", "", systemErr.getLog()); }); Main.main("-c", "/google_checks.xml", getFilePath(""), "-e", getFilePath("")); }
@Test public void testMissingFiles() throws Exception { exit.expectSystemExitWithStatus(-1); exit.checkAssertionAfterwards(() -> { final String usage = "Missing required parameter: <files>" + EOL + SHORT_USAGE; assertEquals("Unexpected output log", "", systemOut.getLog()); assertEquals("Unexpected system error log", usage, systemErr.getLog()); }); Main.main(); }
@Test public void testParsingErrors() throws Exception { final DefaultConfiguration checkConfig = createModuleConfig(TempCheck.class); final String[] expected = { "4: " + getCheckMessage(MSG_JAVADOC_MISSED_HTML_CLOSE, 4, "unclosedTag"), "8: " + getCheckMessage(MSG_JAVADOC_WRONG_SINGLETON_TAG, 35, "img"), }; verify(checkConfig, getPath("InputAbstractJavadocParsingErrors.java"), expected); assertEquals("Error is unexpected", "", systemErr.getLog()); }
@Test public void testInvalidTreeWalkerThreadsNumber() throws Exception { exit.expectSystemExitWithStatus(-1); exit.checkAssertionAfterwards(() -> { assertEquals("Unexpected output log", "", systemOut.getLog()); assertEquals("Unexpected system error log", "Invalid value for option '--tree-walker-threads-number': " + "'invalid' is not an int" + EOL + SHORT_USAGE, systemErr.getLog()); }); Main.main("-W", "invalid", "-c", "/google_checks.xml", getPath("InputMain.java")); }
@Test public void testGenerateXpathSuppressionOptionEmptyConfig() throws Exception { final String expected = ""; exit.checkAssertionAfterwards(() -> { assertEquals("Unexpected output log", expected, systemOut.getLog()); assertEquals("Unexpected system error log", "", systemErr.getLog()); }); Main.main("-c", getPath("InputMainConfig-empty.xml"), "--generate-xpath-suppression", getPath("InputMainComplexityOverflow.java")); }
@Test public void testInvalidCheckerThreadsNumber() throws Exception { exit.expectSystemExitWithStatus(-1); exit.checkAssertionAfterwards(() -> { assertEquals("Unexpected output log", "", systemOut.getLog()); assertEquals("Unexpected system error log", "Invalid value for option '--checker-threads-number': 'invalid' is not an int" + EOL + SHORT_USAGE, systemErr.getLog()); }); Main.main("-C", "invalid", "-c", "/google_checks.xml", getPath("InputMain.java")); }
@Test public void testExistingTargetFile() throws Exception { exit.checkAssertionAfterwards(() -> { assertEquals("Unexpected output log", auditStartMessage.getMessage() + EOL + auditFinishMessage.getMessage() + EOL, systemOut.getLog()); assertEquals("Unexpected system error log", "", systemErr.getLog()); }); Main.main("-c", getPath("InputMainConfig-classname.xml"), getPath("InputMain.java")); }
@Test public void testExistingTargetFilePlainOutput() throws Exception { exit.checkAssertionAfterwards(() -> { assertEquals("Unexpected output log", auditStartMessage.getMessage() + EOL + auditFinishMessage.getMessage() + EOL, systemOut.getLog()); assertEquals("Unexpected system error log", "", systemErr.getLog()); }); Main.main("-c", getPath("InputMainConfig-classname.xml"), "-f", "plain", getPath("InputMain.java")); }
@Test public void testExistingTargetFilePlainOutputProperties() throws Exception { //exit.expectSystemExitWithStatus(0); exit.checkAssertionAfterwards(() -> { assertEquals("Unexpected output log", auditStartMessage.getMessage() + EOL + auditFinishMessage.getMessage() + EOL, systemOut.getLog()); assertEquals("Unexpected system error log", "", systemErr.getLog()); }); Main.main("-c", getPath("InputMainConfig-classname-prop.xml"), "-p", getPath("InputMainMycheckstyle.properties"), getPath("InputMain.java")); }
@Test public void testCustomRootModule() throws Exception { TestRootModuleChecker.reset(); exit.checkAssertionAfterwards(() -> { assertEquals("Unexpected output log", "", systemOut.getLog()); assertEquals("Unexpected system error log", "", systemErr.getLog()); assertTrue("Invalid Checker state", TestRootModuleChecker.isProcessed()); }); Main.main("-c", getPath("InputMainConfig-custom-root-module.xml"), getPath("InputMain.java")); assertTrue("RootModule should be destroyed", TestRootModuleChecker.isDestroyed()); }