package hudson.plugins.analysis.util;
import static org.junit.Assert.*;
import java.io.IOException;
import java.io.InputStream;
import org.junit.Test;
/**
* Tests the class {@link JavaPackageDetector}.
*/
public class JavaPackageDetectorTest {
/** The classifier under test. */
private final JavaPackageDetector classifier = new JavaPackageDetector();
/**
* Checks whether we could identify a java package name.
*
* @throws IOException
* in case of an error
*/
@Test
public void checkPackage() throws IOException {
InputStream stream;
stream = JavaPackageDetectorTest.class.getResourceAsStream("MavenJavaTest.txt");
String packageName = classifier.detectPackageName(stream);
assertEquals("Wrong package name guessed.", "hudson.plugins.tasks.util", packageName);
}
/**
* Checks whether we do not detect a namespace in a text file.
*
* @throws IOException
* in case of an error
*/
@Test
public void checkEmptyPackageName() throws IOException {
String fileName = "pom.xml";
InputStream stream = JavaPackageDetectorTest.class.getResourceAsStream(fileName);
assertEquals("Wrong namespace name guessed.", "-", classifier.detectPackageName(stream));
}
/**
* Checks whether we detect package names that use some different formatting.
*
* @throws IOException
* in case of an error
*/
@Test
public void checkComplicatedPackageName() throws IOException {
String fileName = "complicated-package-declaration.txt";
InputStream stream = JavaPackageDetectorTest.class.getResourceAsStream(fileName);
assertEquals("Wrong namespace name guessed.", "hudson.plugins.findbugs.util", classifier.detectPackageName(stream));
}
/**
* Checks whether we correctly accept C# files.
*/
@Test
public void testFileSuffix() {
assertTrue("Does not accept a Java file.", classifier.accepts("Action.java"));
assertFalse("Accepts a non-Java file.", classifier.accepts("Action.java.old"));
}
}