### Question:
JavaCode extends Code { public Collection<String> imports() { return collectPatterns(IMPORT_PATTERN, 1, new ImportComparator()); } JavaCode(); String typeName(); boolean isClass(); Collection<String> typeAnnotations(); Collection<String> imports(); Collection<String> methods(); Collection<String> methodAnnotations(String method); String methodReturns(String method); String methodArguments(String method); String packageName(); String fullyQualifiedName(); String methodBody(String method); Collection<String> fieldNames(); String fieldType(String fieldName); Iterable<String> fieldAnnotations(String fieldName); String fieldValue(String fieldName); Iterable<String> fileComments(); String superTypeName(); Iterable<String> implementedInterfaces(); boolean isType(String type); boolean fieldIsContant(String fieldName); Iterable<String> fieldComments(String fieldName); String constructorBody(); void ensureImport(String packageName, String typeName); String simpleTypeName(); static final String TYPE_PATTERN; static final String NAME_PATTERN; }### Answer:
@Test public void extractsEmptyImports() { code.add("public class %s {", randomJavaId()); code.add("}"); TestUtil.assertCollectionEquals("Imports", Collections.<String>emptyList(), code.imports()); }
@Test public void extractsImports() { String import1 = 'Z' + someValue(); String import2 = 'A' + someValue(); code.add("import %s;", import1); code.add("import %s;", import2); code.add("public class %s {", randomJavaId()); code.add("}"); TestUtil.assertCollectionEquals("Imports", Arrays.asList(import2, import1), code.imports()); }