package hudson.plugins.warnings.parser;
import static junit.framework.Assert.*;
import hudson.plugins.analysis.util.model.FileAnnotation;
import hudson.plugins.analysis.util.model.Priority;
import java.io.IOException;
import java.util.Collection;
import java.util.Iterator;
import org.junit.Test;
/**
* Tests the class {@link JavacParser}.
*/
public class JavacParserTest extends ParserTester {
/** Error message. */
private static final String WRONG_NUMBER_OF_WARNINGS_DETECTED = "Wrong number of warnings detected.";
/**
* Parses a file with two deprecation warnings.
*
* @throws IOException
* if the file could not be read
*/
@Test
public void parseDeprecation() throws IOException {
Collection<FileAnnotation> warnings = new JavacParser().parse(openFile());
assertEquals(WRONG_NUMBER_OF_WARNINGS_DETECTED, 2, warnings.size());
Iterator<FileAnnotation> iterator = warnings.iterator();
FileAnnotation annotation = iterator.next();
checkWarning(annotation,
12,
"org.eclipse.jface.contentassist.SubjectControlContentAssistant in org.eclipse.jface.contentassist has been deprecated",
"C:/Build/Results/jobs/ADT-Base/workspace/com.avaloq.adt.ui/src/main/java/com/avaloq/adt/ui/elements/AvaloqDialog.java",
JavacParser.WARNING_TYPE, RegexpParser.DEPRECATION, Priority.NORMAL);
annotation = iterator.next();
checkWarning(annotation,
40,
"org.eclipse.ui.contentassist.ContentAssistHandler in org.eclipse.ui.contentassist has been deprecated",
"C:/Build/Results/jobs/ADT-Base/workspace/com.avaloq.adt.ui/src/main/java/com/avaloq/adt/ui/elements/AvaloqDialog.java",
JavacParser.WARNING_TYPE, RegexpParser.DEPRECATION, Priority.NORMAL);
}
/**
* Verifies that arrays in deprecated methods are correctly handled.
*
* @throws IOException Signals that an I/O exception has occurred.
*/
@Test
public void parseArrayInDeprecatedMethod() throws IOException {
Collection<FileAnnotation> warnings = new JavacParser().parse(openFile("issue5868.txt"));
assertEquals(WRONG_NUMBER_OF_WARNINGS_DETECTED, 1, warnings.size());
Iterator<FileAnnotation> iterator = warnings.iterator();
checkWarning(iterator.next(),
14,
"loadAvailable(java.lang.String,int,int,java.lang.String[]) in my.OtherClass has been deprecated",
"D:/path/to/my/Class.java",
AntJavacParser.WARNING_TYPE, "Deprecation", Priority.NORMAL);
}
/** {@inheritDoc} */
@Override
protected String getWarningsFile() {
return "javac.txt";
}
}