@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 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 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 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 testConflictingOptionsTvsS() throws Exception { final File file = temporaryFolder.newFile("file.output"); exit.expectSystemExitWithStatus(-1); exit.checkAssertionAfterwards(() -> { assertEquals("Unexpected output log", "Option '-t' cannot be used with other options." + System.lineSeparator(), systemOut.getLog()); assertEquals("Unexpected system error log", "", systemErr.getLog()); }); Main.main("-s", file.getCanonicalPath(), "-t", 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 testNoConfigSpecified() throws Exception { exit.expectSystemExitWithStatus(-1); exit.checkAssertionAfterwards(() -> { assertEquals("Unexpected output log", "Must specify a config XML file." + System.lineSeparator(), systemOut.getLog()); assertEquals("Unexpected system error log", "", systemErr.getLog()); }); Main.main(getPath("InputMain.java")); }
@Test public void testPrintSuppressionConflictingOptionsTvsC() throws Exception { 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("-c", "/google_checks.xml", getPath(""), "-s", "2:4"); }
@Test public void testZeroTreeWalkerThreadsNumber() throws Exception { exit.expectSystemExitWithStatus(-1); exit.checkAssertionAfterwards(() -> { assertEquals("Unexpected output log", "TreeWalker threads number must be greater than zero" + System.lineSeparator(), systemOut.getLog()); assertEquals("Unexpected system error log", "", systemErr.getLog()); }); Main.main("-W", "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 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 testPrintSuppressionConflictingOptionsTvsP() throws Exception { 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("-p", getPath("InputMainMycheckstyle.properties"), "-s", "2:4", getPath("")); }
@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 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 testNonExistentOutputFormat() throws Exception { exit.expectSystemExitWithStatus(-1); exit.checkAssertionAfterwards(() -> { assertEquals("Unexpected output log", "", systemOut.getLog()); assertEquals("Unexpected system error log", "Invalid value for option '-f': expected one of [xml, plain] but was 'xmlp'" + EOL + SHORT_USAGE, systemErr.getLog()); }); Main.main("-c", "/google_checks.xml", "-f", "xmlp", getPath("InputMain.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 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()); }