Program: 12034
Project: 12034
Buggy source:
/** 
 * Get sample implementation source code of the test methods.
 * @param testMethod
 * @param testMethods
 * @param testTargetClassname
 * @return sample implementation source code
 */
public static String getNotBlankTestMethodSource(MethodInfo testMethod,ClassInfo testClassinfo,String testTargetClassname){
  PreferenceLoader pref=new PreferenceLoader();
  StringBuilder sb=new StringBuilder();
  String CRLF=StrConst.carriageReturn + StrConst.lineFeed;
  if (pref.isTestMethodGenEnabledSupportJMock2) {
    if (pref.isUsingJUnitHelperRuntime) {
      if (pref.isJUnitVersion4) {
        sb.append("String_Node_Str");
        sb.append("String_Node_Str");
        sb.append(CRLF);
      }
    }
 else {
      sb.append("String_Node_Str");
      sb.append("String_Node_Str");
      sb.append(CRLF);
      sb.append("String_Node_Str");
      sb.append("String_Node_Str");
      sb.append(CRLF);
      sb.append("String_Node_Str");
      sb.append("String_Node_Str");
      sb.append(CRLF);
    }
  }
  if (pref.isTestMethodGenEnabledSupportEasyMock) {
    sb.append("String_Node_Str");
    sb.append("String_Node_Str");
    sb.append(CRLF);
  }
  sb.append("String_Node_Str");
  String returnTypeName=testMethod.returnType.name;
  Object returnDefaultValue=null;
  if (!returnTypeName.equals("String_Node_Str")) {
    returnTypeName=returnTypeName.replaceAll(RegExp.generics,StrConst.empty);
    returnTypeName=getClassInSourceCode(returnTypeName,testTargetClassname,testClassinfo.importList);
    List<String> generics=testMethod.returnType.generics;
    int genericsLen=generics.size();
    if (genericsLen > 0) {
      returnTypeName+="String_Node_Str" + generics.get(0);
      for (int i=1; i < genericsLen; i++) {
        returnTypeName+=StrConst.comma + generics.get(i);
      }
      returnTypeName+="String_Node_Str";
    }
    if (PrimitiveTypeUtil.isPrimitive(returnTypeName)) {
      returnDefaultValue=PrimitiveTypeUtil.getTypeDefaultValue(returnTypeName);
    }
  }
  if (!testMethod.isStatic) {
    if (testClassinfo.constructors != null && testClassinfo.constructors.size() > 0) {
      ConstructorInfo constructor=testClassinfo.constructors.get(0);
      List<String> args=new ArrayList<String>();
      for (int i=0; i < constructor.argNames.size(); i++) {
        ArgType argType=constructor.argTypes.get(i);
        sb.append(argType.name);
        sb.append("String_Node_Str");
        sb.append(constructor.argNames.get(i));
        sb.append("String_Node_Str");
        if (PrimitiveTypeUtil.isPrimitive(argType.name)) {
          String primitiveDefault=PrimitiveTypeUtil.getTypeDefaultValue(argType.name);
          sb.append(primitiveDefault);
        }
 else {
          sb.append("String_Node_Str");
        }
        sb.append("String_Node_Str");
        sb.append(CRLF);
        sb.append("String_Node_Str");
        args.add(constructor.argNames.get(i));
      }
      sb.append(testTargetClassname);
      sb.append("String_Node_Str");
      sb.append(testTargetClassname);
      sb.append("String_Node_Str");
      sb.append(args.get(0));
      for (int i=1; i < args.size(); i++) {
        sb.append("String_Node_Str");
        sb.append(args.get(i));
      }
      sb.append("String_Node_Str");
    }
 else {
      sb.append(testTargetClassname);
      sb.append("String_Node_Str");
      sb.append(testTargetClassname);
      sb.append("String_Node_Str");
    }
    sb.append(CRLF);
    sb.append("String_Node_Str");
  }
  if (pref.isTestMethodGenEnabledSupportMockito) {
    sb.append("String_Node_Str");
    sb.append(CRLF);
    sb.append("String_Node_Str");
  }
  List<ArgType> argTypes=testMethod.argTypes;
  List<String> argNames=testMethod.argNames;
  List<String> args=new ArrayList<String>();
  int argTypesLen=argTypes.size();
  if (argTypesLen > 0 && argTypes.get(0).name != null && !argTypes.get(0).name.equals(StrConst.empty)) {
    for (int i=0; i < argTypesLen; i++) {
      ArgType argType=argTypes.get(i);
      if (argType.name.matches("String_Node_Str"))       argType.name=argType.name.replaceAll("String_Node_Str","String_Node_Str");
      String argTypeName=getClassInSourceCode(argType.name,testTargetClassname,testClassinfo.importList);
      boolean isJMock2=pref.isTestMethodGenEnabledSupportJMock2 && MockGenUtil.isMockableClassName(argTypeName,testClassinfo.importList);
      boolean isEasyMock=pref.isTestMethodGenEnabledSupportEasyMock && MockGenUtil.isMockableClassName(argTypeName,testClassinfo.importList);
      boolean isMockito=pref.isTestMethodGenEnabledSupportMockito && MockGenUtil.isMockableClassName(argTypeName,testClassinfo.importList);
      if (isJMock2) {
        sb.append("String_Node_Str");
      }
      sb.append(argTypeName);
      if (argType.generics.size() > 0) {
        sb.append("String_Node_Str");
        sb.append(argType.generics.get(0));
        if (argType.generics.size() > 1) {
          for (int j=1; j < argType.generics.size(); j++) {
            sb.append(StrConst.comma);
            sb.append(argType.generics.get(j));
          }
        }
        sb.append("String_Node_Str");
      }
      String argName=argNames.get(i);
      if (argName == null || argName.length() == 0) {
        argName="String_Node_Str" + i;
      }
      sb.append("String_Node_Str");
      sb.append(argName);
      sb.append("String_Node_Str");
      if (PrimitiveTypeUtil.isPrimitive(argType.name)) {
        String primitiveDefault=PrimitiveTypeUtil.getTypeDefaultValue(argType.name);
        sb.append(primitiveDefault);
      }
 else {
        if (isJMock2) {
          sb.append(pref.isUsingJUnitHelperRuntime ? "String_Node_Str" : "String_Node_Str");
          sb.append("String_Node_Str");
          sb.append(argTypeName);
          sb.append("String_Node_Str");
        }
 else         if (isEasyMock) {
          sb.append("String_Node_Str");
          sb.append(argTypeName);
          sb.append("String_Node_Str");
        }
 else         if (isMockito) {
          sb.append("String_Node_Str");
          sb.append(argTypeName);
          sb.append("String_Node_Str");
        }
 else {
          sb.append("String_Node_Str");
        }
      }
      sb.append("String_Node_Str");
      sb.append(CRLF);
      sb.append("String_Node_Str");
      args.add(argName);
    }
  }
  if (pref.isTestMethodGenEnabledSupportJMock2) {
    sb.append(pref.isUsingJUnitHelperRuntime ? "String_Node_Str" : "String_Node_Str");
    sb.append("String_Node_Str");
    sb.append(CRLF);
    sb.append("String_Node_Str");
    sb.append("String_Node_Str");
    sb.append(CRLF);
    sb.append("String_Node_Str");
    sb.append(CRLF);
    sb.append("String_Node_Str");
  }
  if (pref.isTestMethodGenEnabledSupportEasyMock) {
    sb.append("String_Node_Str");
    sb.append("String_Node_Str");
    sb.append(CRLF);
    sb.append("String_Node_Str");
    sb.append(CRLF);
    sb.append("String_Node_Str");
  }
  if (pref.isTestMethodGenEnabledSupportMockito) {
    sb.append("String_Node_Str");
    sb.append(CRLF);
    sb.append("String_Node_Str");
    sb.append(CRLF);
    sb.append("String_Node_Str");
  }
  if (pref.isTestMethodGenExceptions && testMethod.testingTargetException != null) {
    sb.append("String_Node_Str");
    sb.append(CRLF);
    sb.append("String_Node_Str");
  }
  if (!returnTypeName.equals("String_Node_Str")) {
    sb.append(returnTypeName);
    sb.append("String_Node_Str");
  }
  if (testMethod.isStatic) {
    sb.append(testTargetClassname);
  }
 else {
    sb.append("String_Node_Str");
  }
  sb.append(StrConst.dot);
  sb.append(testMethod.methodName);
  sb.append("String_Node_Str");
  if (args.size() > 0 && argTypesLen > 0 && argTypes.get(0).name != null && !argTypes.get(0).name.equals(StrConst.empty))   sb.append(args.get(0));
  for (int i=1; i < argTypes.size(); i++) {
    sb.append("String_Node_Str");
    sb.append(args.get(i));
  }
  sb.append("String_Node_Str");
  sb.append(CRLF);
  if (pref.isTestMethodGenExceptions && testMethod.testingTargetException != null) {
    sb.append("String_Node_Str");
    sb.append(StrConst.expectedExceptionNotThrownMessage);
    sb.append("String_Node_Str");
    sb.append(testMethod.testingTargetException.name);
    sb.append("String_Node_Str");
    sb.append("String_Node_Str");
    sb.append(CRLF);
    sb.append("String_Node_Str");
    sb.append(testMethod.testingTargetException.name);
    sb.append("String_Node_Str");
    sb.append(CRLF);
  }
 else {
    if (pref.isTestMethodGenEnabledSupportEasyMock) {
      sb.append("String_Node_Str");
      sb.append(CRLF);
    }
    if (pref.isTestMethodGenEnabledSupportMockito) {
      sb.append("String_Node_Str");
      sb.append(CRLF);
      sb.append("String_Node_Str");
      sb.append(CRLF);
    }
    if (!returnTypeName.equals("String_Node_Str")) {
      sb.append("String_Node_Str");
      sb.append(returnTypeName);
      sb.append("String_Node_Str");
      sb.append(returnDefaultValue);
      sb.append("String_Node_Str");
      sb.append(CRLF);
    }
    if (!returnTypeName.equals("String_Node_Str")) {
      sb.append("String_Node_Str");
      sb.append("String_Node_Str");
      sb.append(CRLF);
    }
  }
  return sb.toString();
}

Fixed version (ground truth):
/** 
 * Get sample implementation source code of the test methods.
 * @param testMethod
 * @param testMethods
 * @param testTargetClassname
 * @return sample implementation source code
 */
public static String getNotBlankTestMethodSource(MethodInfo testMethod,ClassInfo testClassinfo,String testTargetClassname){
  PreferenceLoader pref=new PreferenceLoader();
  StringBuilder sb=new StringBuilder();
  String CRLF=StrConst.carriageReturn + StrConst.lineFeed;
  if (pref.isTestMethodGenEnabledSupportJMock2) {
    if (pref.isUsingJUnitHelperRuntime) {
      if (pref.isJUnitVersion4) {
        sb.append("String_Node_Str");
        sb.append("String_Node_Str");
        sb.append(CRLF);
      }
    }
 else {
      sb.append("String_Node_Str");
      sb.append("String_Node_Str");
      sb.append(CRLF);
      sb.append("String_Node_Str");
      sb.append("String_Node_Str");
      sb.append(CRLF);
      sb.append("String_Node_Str");
      sb.append("String_Node_Str");
      sb.append(CRLF);
    }
  }
  if (pref.isTestMethodGenEnabledSupportEasyMock) {
    sb.append("String_Node_Str");
    sb.append("String_Node_Str");
    sb.append(CRLF);
  }
  sb.append("String_Node_Str");
  String returnTypeName=testMethod.returnType.name;
  Object returnDefaultValue=null;
  if (!returnTypeName.equals("String_Node_Str")) {
    returnTypeName=returnTypeName.replaceAll(RegExp.generics,StrConst.empty);
    returnTypeName=getClassInSourceCode(returnTypeName,testTargetClassname,testClassinfo.importList);
    List<String> generics=testMethod.returnType.generics;
    int genericsLen=generics.size();
    if (genericsLen > 0) {
      returnTypeName+="String_Node_Str" + generics.get(0);
      for (int i=1; i < genericsLen; i++) {
        returnTypeName+=StrConst.comma + generics.get(i);
      }
      returnTypeName+="String_Node_Str";
    }
    if (PrimitiveTypeUtil.isPrimitive(returnTypeName)) {
      returnDefaultValue=PrimitiveTypeUtil.getTypeDefaultValue(returnTypeName);
    }
  }
  if (!testMethod.isStatic) {
    if (testClassinfo.constructors.size() > 0) {
      ConstructorInfo constructor=testClassinfo.constructors.get(0);
      List<String> args=new ArrayList<String>();
      for (int i=0; i < constructor.argTypes.size(); i++) {
        ArgType argType=constructor.argTypes.get(i);
        if (argType.name != null && argType.name.length() > 0) {
          sb.append(argType.name);
          sb.append("String_Node_Str");
          sb.append(constructor.argNames.get(i));
          sb.append("String_Node_Str");
          if (PrimitiveTypeUtil.isPrimitive(argType.name)) {
            String primitiveDefault=PrimitiveTypeUtil.getTypeDefaultValue(argType.name);
            sb.append(primitiveDefault);
          }
 else {
            sb.append("String_Node_Str");
          }
          sb.append("String_Node_Str");
          sb.append(CRLF);
          sb.append("String_Node_Str");
          args.add(constructor.argNames.get(i));
        }
      }
      sb.append(testTargetClassname);
      sb.append("String_Node_Str");
      sb.append(testTargetClassname);
      sb.append("String_Node_Str");
      if (args.size() > 0) {
        sb.append(args.get(0));
        for (int i=1; i < args.size(); i++) {
          sb.append("String_Node_Str");
          sb.append(args.get(i));
        }
      }
      sb.append("String_Node_Str");
    }
 else {
      sb.append(testTargetClassname);
      sb.append("String_Node_Str");
      sb.append(testTargetClassname);
      sb.append("String_Node_Str");
    }
    sb.append(CRLF);
    sb.append("String_Node_Str");
  }
  if (pref.isTestMethodGenEnabledSupportMockito) {
    sb.append("String_Node_Str");
    sb.append(CRLF);
    sb.append("String_Node_Str");
  }
  List<ArgType> argTypes=testMethod.argTypes;
  List<String> argNames=testMethod.argNames;
  List<String> args=new ArrayList<String>();
  int argTypesLen=argTypes.size();
  if (argTypesLen > 0 && argTypes.get(0).name != null && !argTypes.get(0).name.equals(StrConst.empty)) {
    for (int i=0; i < argTypesLen; i++) {
      ArgType argType=argTypes.get(i);
      if (argType.name.matches("String_Node_Str"))       argType.name=argType.name.replaceAll("String_Node_Str","String_Node_Str");
      String argTypeName=getClassInSourceCode(argType.name,testTargetClassname,testClassinfo.importList);
      boolean isJMock2=pref.isTestMethodGenEnabledSupportJMock2 && MockGenUtil.isMockableClassName(argTypeName,testClassinfo.importList);
      boolean isEasyMock=pref.isTestMethodGenEnabledSupportEasyMock && MockGenUtil.isMockableClassName(argTypeName,testClassinfo.importList);
      boolean isMockito=pref.isTestMethodGenEnabledSupportMockito && MockGenUtil.isMockableClassName(argTypeName,testClassinfo.importList);
      if (isJMock2) {
        sb.append("String_Node_Str");
      }
      sb.append(argTypeName);
      if (argType.generics.size() > 0) {
        sb.append("String_Node_Str");
        sb.append(argType.generics.get(0));
        if (argType.generics.size() > 1) {
          for (int j=1; j < argType.generics.size(); j++) {
            sb.append(StrConst.comma);
            sb.append(argType.generics.get(j));
          }
        }
        sb.append("String_Node_Str");
      }
      String argName=argNames.get(i);
      if (argName == null || argName.length() == 0) {
        argName="String_Node_Str" + i;
      }
      sb.append("String_Node_Str");
      sb.append(argName);
      sb.append("String_Node_Str");
      if (PrimitiveTypeUtil.isPrimitive(argType.name)) {
        String primitiveDefault=PrimitiveTypeUtil.getTypeDefaultValue(argType.name);
        sb.append(primitiveDefault);
      }
 else {
        if (isJMock2) {
          sb.append(pref.isUsingJUnitHelperRuntime ? "String_Node_Str" : "String_Node_Str");
          sb.append("String_Node_Str");
          sb.append(argTypeName);
          sb.append("String_Node_Str");
        }
 else         if (isEasyMock) {
          sb.append("String_Node_Str");
          sb.append(argTypeName);
          sb.append("String_Node_Str");
        }
 else         if (isMockito) {
          sb.append("String_Node_Str");
          sb.append(argTypeName);
          sb.append("String_Node_Str");
        }
 else {
          sb.append("String_Node_Str");
        }
      }
      sb.append("String_Node_Str");
      sb.append(CRLF);
      sb.append("String_Node_Str");
      args.add(argName);
    }
  }
  if (pref.isTestMethodGenEnabledSupportJMock2) {
    sb.append(pref.isUsingJUnitHelperRuntime ? "String_Node_Str" : "String_Node_Str");
    sb.append("String_Node_Str");
    sb.append(CRLF);
    sb.append("String_Node_Str");
    sb.append("String_Node_Str");
    sb.append(CRLF);
    sb.append("String_Node_Str");
    sb.append(CRLF);
    sb.append("String_Node_Str");
  }
  if (pref.isTestMethodGenEnabledSupportEasyMock) {
    sb.append("String_Node_Str");
    sb.append("String_Node_Str");
    sb.append(CRLF);
    sb.append("String_Node_Str");
    sb.append(CRLF);
    sb.append("String_Node_Str");
  }
  if (pref.isTestMethodGenEnabledSupportMockito) {
    sb.append("String_Node_Str");
    sb.append(CRLF);
    sb.append("String_Node_Str");
    sb.append(CRLF);
    sb.append("String_Node_Str");
  }
  if (pref.isTestMethodGenExceptions && testMethod.testingTargetException != null) {
    sb.append("String_Node_Str");
    sb.append(CRLF);
    sb.append("String_Node_Str");
  }
  if (!returnTypeName.equals("String_Node_Str")) {
    sb.append(returnTypeName);
    sb.append("String_Node_Str");
  }
  if (testMethod.isStatic) {
    sb.append(testTargetClassname);
  }
 else {
    sb.append("String_Node_Str");
  }
  sb.append(StrConst.dot);
  sb.append(testMethod.methodName);
  sb.append("String_Node_Str");
  if (args.size() > 0 && argTypesLen > 0 && argTypes.get(0).name != null && !argTypes.get(0).name.equals(StrConst.empty))   sb.append(args.get(0));
  for (int i=1; i < argTypes.size(); i++) {
    sb.append("String_Node_Str");
    sb.append(args.get(i));
  }
  sb.append("String_Node_Str");
  sb.append(CRLF);
  if (pref.isTestMethodGenExceptions && testMethod.testingTargetException != null) {
    sb.append("String_Node_Str");
    sb.append(StrConst.expectedExceptionNotThrownMessage);
    sb.append("String_Node_Str");
    sb.append(testMethod.testingTargetException.name);
    sb.append("String_Node_Str");
    sb.append("String_Node_Str");
    sb.append(CRLF);
    sb.append("String_Node_Str");
    sb.append(testMethod.testingTargetException.name);
    sb.append("String_Node_Str");
    sb.append(CRLF);
  }
 else {
    if (pref.isTestMethodGenEnabledSupportEasyMock) {
      sb.append("String_Node_Str");
      sb.append(CRLF);
    }
    if (pref.isTestMethodGenEnabledSupportMockito) {
      sb.append("String_Node_Str");
      sb.append(CRLF);
      sb.append("String_Node_Str");
      sb.append(CRLF);
    }
    if (!returnTypeName.equals("String_Node_Str")) {
      sb.append("String_Node_Str");
      sb.append(returnTypeName);
      sb.append("String_Node_Str");
      sb.append(returnDefaultValue);
      sb.append("String_Node_Str");
      sb.append(CRLF);
    }
    if (!returnTypeName.equals("String_Node_Str")) {
      sb.append("String_Node_Str");
      sb.append("String_Node_Str");
      sb.append(CRLF);
    }
  }
  return sb.toString();
}