blob: 880ac67f3498c48c42705d5ba9761a96271bc87c [file] [log] [blame]
import unittest
from pkg_resources import resource_string
from .. import parse
# From my reading of the spec (http://docs.oracle.com/javase/specs/jls/se7/html/jls-7.html) the
# allowed order is javadoc, optional annotation, package declaration
class PackageInfo(unittest.TestCase):
def testPackageDeclarationOnly(self):
source_file = "source/package-info/NoAnnotationNoJavadoc.java"
ast = self.get_ast(source_file)
self.failUnless(ast.package.name == "org.javalang.test")
self.failIf(ast.package.annotations)
self.failIf(ast.package.documentation)
def testAnnotationOnly(self):
source_file = "source/package-info/AnnotationOnly.java"
ast = self.get_ast(source_file)
self.failUnless(ast.package.name == "org.javalang.test")
self.failUnless(ast.package.annotations)
self.failIf(ast.package.documentation)
def testJavadocOnly(self):
source_file = "source/package-info/JavadocOnly.java"
ast = self.get_ast(source_file)
self.failUnless(ast.package.name == "org.javalang.test")
self.failIf(ast.package.annotations)
self.failUnless(ast.package.documentation)
def testAnnotationThenJavadoc(self):
source_file = "source/package-info/AnnotationJavadoc.java"
ast = self.get_ast(source_file)
self.failUnless(ast.package.name == "org.javalang.test")
self.failUnless(ast.package.annotations)
self.failIf(ast.package.documentation)
def testJavadocThenAnnotation(self):
source_file = "source/package-info/JavadocAnnotation.java"
ast = self.get_ast(source_file)
self.failUnless(ast.package.name == "org.javalang.test")
self.failUnless(ast.package.annotations)
self.failUnless(ast.package.documentation)
def get_ast(self, filename):
source = resource_string(__name__, filename)
ast = parse.parse(source)
return ast
def main():
unittest.main()
if __name__ == '__main__':
main()