/** Test method for {@link JavadocBlockParserUtil#fetchType(JavadocScanner, java.util.Set)}. */ @Test public void testFetchType() { { DefaultJavadocScanner scanner = string("double"); IrDocType type = JavadocBlockParserUtil.fetchType(scanner, null); assertNotNull(type); assertEquals(IrDocElementKind.BASIC_TYPE, type.getKind()); IrDocBasicType elem = (IrDocBasicType) type; assertEquals(IrBasicTypeKind.DOUBLE, elem.getTypeKind()); assertSameLocation(0, "double".length(), elem.getLocation()); assertEquals(EOF, scanner.lookahead(0).getKind()); } { DefaultJavadocScanner scanner = string("float[]"); IrDocType type = JavadocBlockParserUtil.fetchType(scanner, null); assertNotNull(type); assertEquals(IrDocElementKind.ARRAY_TYPE, type.getKind()); IrDocArrayType array = (IrDocArrayType) type; assertSameLocation(0, "float[]".length(), array.getLocation()); IrDocBasicType elem = (IrDocBasicType) array.getComponentType(); assertEquals(IrBasicTypeKind.FLOAT, elem.getTypeKind()); assertSameLocation(0, "float".length(), elem.getLocation()); assertEquals(EOF, scanner.lookahead(0).getKind()); } { DefaultJavadocScanner scanner = string("char[][]"); IrDocType type = JavadocBlockParserUtil.fetchType(scanner, null); assertNotNull(type); assertEquals(IrDocElementKind.ARRAY_TYPE, type.getKind()); IrDocArrayType array = (IrDocArrayType) type; assertSameLocation(0, "char[][]".length(), array.getLocation()); IrDocType component = array.getComponentType(); assertEquals(IrDocElementKind.ARRAY_TYPE, component.getKind()); IrDocArrayType array2 = (IrDocArrayType) component; assertSameLocation(0, "char[]".length(), array2.getLocation()); IrDocBasicType elem = (IrDocBasicType) array2.getComponentType(); assertEquals(IrBasicTypeKind.CHAR, elem.getTypeKind()); assertSameLocation(0, "char".length(), elem.getLocation()); assertEquals(EOF, scanner.lookahead(0).getKind()); } { DefaultJavadocScanner scanner = string("java.lang.String"); IrDocType type = JavadocBlockParserUtil.fetchType(scanner, null); assertNotNull(type); assertEquals(IrDocElementKind.NAMED_TYPE, type.getKind()); IrDocNamedType elem = (IrDocNamedType) type; assertEquals("java.lang.String", elem.getName().asString()); assertSameLocation(0, "java.lang.String".length(), elem.getLocation()); assertEquals(EOF, scanner.lookahead(0).getKind()); } { DefaultJavadocScanner scanner = string("java.lang.String[]"); IrDocType type = JavadocBlockParserUtil.fetchType(scanner, null); assertNotNull(type); assertEquals(IrDocElementKind.ARRAY_TYPE, type.getKind()); IrDocArrayType array = (IrDocArrayType) type; assertSameLocation(0, "java.lang.String[]".length(), array.getLocation()); IrDocNamedType elem = (IrDocNamedType) array.getComponentType(); assertEquals("java.lang.String", elem.getName().asString()); assertSameLocation(0, "java.lang.String".length(), elem.getLocation()); assertEquals(EOF, scanner.lookahead(0).getKind()); } }