package xapi.source.read;
import java.util.Iterator;
import org.junit.Assert;
import org.junit.Test;
import xapi.source.read.JavaModel.AnnotationMember;
import xapi.source.read.JavaModel.IsAnnotation;
import xapi.source.read.JavaModel.IsParameter;
public class JavaModelTest {
@Test
public void testSimpleParam () {
IsParameter param = JavaLexer.lexParam("@NotNull String param");
Assert.assertEquals("String", param.getType());
Assert.assertEquals("param", param.getName());
Iterator<IsAnnotation> annos = param.annotations.getAnnotations().iterator();
Assert.assertTrue(annos.hasNext());
Assert.assertEquals("NotNull", annos.next().qualifiedName);
}
@Test
public void testArrayParam () {
IsParameter param = JavaLexer.lexParam("Class<?>[] param");
Assert.assertEquals("Class<?>[]", param.getType());
Assert.assertEquals("param", param.getName());
}
@Test
public void testComplexParam () {
IsParameter param = JavaLexer.lexParam("final @Named(\"param\") @NotNull String param");
Assert.assertEquals("String", param.getType());
Assert.assertEquals("param", param.getName());
Iterator<IsAnnotation> annos = param.annotations.getAnnotations().iterator();
Assert.assertTrue(annos.hasNext());
IsAnnotation anno = annos.next();
Assert.assertEquals("Named", anno.qualifiedName);
Iterator<AnnotationMember> members = anno.members.iterator();
Assert.assertTrue(members.hasNext());
Assert.assertEquals("\"param\"", members.next().value);
Assert.assertTrue(annos.hasNext());
Assert.assertEquals("NotNull", annos.next().qualifiedName);
}
}