@Test
 public void testMemberMethod() throws Exception {
   HintTest.create()
       .input(
           "package example;\n"
               + "public class Test {\n"
               + "    int variable=42;\n"
               + "    static void staticMember() {};\n"
               + "    void getMember(){\n"
               + "         staticMember();\n"
               + "         getMember();\n"
               + "         this.getMember();\n"
               + "         variable = 43;\n"
               + "    };\n"
               + "}")
       .run(AddThisToMember.class)
       .assertWarnings(
           "6:9-6:18:warning:" + Bundle.ERR_AddThisToMember(),
           "7:9-7:17:warning:" + Bundle.ERR_AddThisToMember())
       .findWarning("6:9-6:18:warning:" + Bundle.ERR_AddThisToMember())
       .applyFix()
       .assertCompilable()
       .assertOutput(
           "package example;\n"
               + "public class Test {\n"
               + "    int variable=42;\n"
               + "    static void staticMember() {};\n"
               + "    void getMember(){\n"
               + "         staticMember();\n"
               + "         this.getMember();\n"
               + "         this.getMember();\n"
               + "         variable = 43;\n"
               + "    };\n"
               + "}");
 }
 @Test
 public void testSingleLiteral() throws Exception {
   HintTest.create()
       .setCaretMarker('|')
       .input(
           "package test;\n"
               + "public class Test {\n"
               + "    public static void main(String[] args) {\n"
               + "        String foo=\"A|\";\n"
               + "    }\n"
               + "}\n")
       .run(ReplacePlusHint.class)
       .assertNotContainsWarnings(Bundle.DN_ReplacePlus());
 }
 @Test
 public void testFixWorkingLiteralPrefix() throws Exception {
   HintTest.create()
       .setCaretMarker('|')
       .input(
           "package test;\n"
               + "public class Test {\n"
               + "    public static void main(String[] args) {\n"
               + "        String foo=\"A\"|+4;\n"
               + "    }\n"
               + "}\n")
       .run(ReplacePlusHint.class)
       .findWarning("3:22-3:22:hint:" + Bundle.DN_ReplacePlus())
       .applyFix(Bundle.LBL_ReplaceWithStringBuilderFix())
       .assertCompilable()
       .assertOutput(
           "package test;\n"
               + "public class Test {\n"
               + "    public static void main(String[] args) {\n"
               + "        String foo=new StringBuilder().append(\"A\").append(4).toString();\n"
               + "    }\n"
               + "}\n");
 }
 @Test
 public void testFixWorkingMixedB() throws Exception {
   HintTest.create()
       .setCaretMarker('|')
       .input(
           "package test;\n"
               + "public class Test {\n"
               + "    public static void main(String[] args) {\n"
               + "        String foo=\"Output contains \"| + 4 + \" entries\" + \" and more at \" + new java.util.Date();\n"
               + "    }\n"
               + "}\n")
       .run(ReplacePlusHint.class)
       .findWarning("3:37-3:37:hint:" + Bundle.DN_ReplacePlus())
       .applyFix(Bundle.LBL_ReplaceWithStringBuilderFix())
       .assertCompilable()
       .assertOutput(
           "package test;\n"
               + "import java.util.Date;\n"
               + "public class Test {\n"
               + "    public static void main(String[] args) {\n"
               + "        String foo=new StringBuilder().append(\"Output contains \").append(4).append(\" entries and more at \").append(new Date()).toString();\n"
               + "    }\n"
               + "}\n");
 }