public static Imports importsFrom(CharSequence source) { if (source.length() != 0) { return PostprocessingMachine.collectImports(source); } return Imports.empty(); }
@Test public void importsHaveUnderscores() { SourceExtraction.Imports imports = PostprocessingMachine.collectImports( LINES.join("package start;", "import b.PAYMENT_STATUS_TYPE;", "final class B {", "}")); check(imports.classes.values()).hasContentInAnyOrder("b.PAYMENT_STATUS_TYPE"); }
@Test public void onlyCollectImports() { SourceExtraction.Imports imports = PostprocessingMachine.collectImports( LINES.join("package start;", "import java.util.List;", "import org.junit.*;", "import static org.junit.My.*;", "import some.Some.Nested;", "final class My extends java.util.Set {", " private java.util.Map<java.lang.String, Integer> map = com.google.common.collect.Maps.newHashMap();", "}")); check(imports.classes.keySet()).hasContentInAnyOrder("List", "Nested"); check(imports.classes.values()).hasContentInAnyOrder("java.util.List", "some.Some.Nested"); }
@Test public void safelySkipImportStartsWithUnderscore() { SourceExtraction.Imports imports = PostprocessingMachine.collectImports( LINES.join( "import b._TYPE;", "class B { _TYPE b; }")); check(imports.all).has("b._TYPE"); check(PostprocessingMachine.rewrite( "class B { b._STATUS_TYPE s; }")) .hasToString( "class B { b._STATUS_TYPE s; }"); }