Program: 12013
Project: 12013
Buggy source:
@Override public String getTestMethodSourceCode(TestMethodMeta testMethodMeta){
  StringBuilder buf=new StringBuilder();
  if (config.mockObjectFramework == MockObjectFramework.JMockit) {
    List<String> mockedFieldsForJMockit=getMockedFieldsForJMockit(testMethodMeta);
    for (    String mocked : mockedFieldsForJMockit) {
      appendTabs(buf,1);
      buf.append("String_Node_Str");
      appendCRLF(buf);
      appendTabs(buf,1);
      buf.append(mocked);
      buf.append(StringValue.Semicolon);
      appendCRLF(buf);
    }
    if (mockedFieldsForJMockit.size() > 0) {
      appendCRLF(buf);
    }
  }
  if (config.junitVersion == JUnitVersion.version3) {
    appendTabs(buf,1);
    buf.append("String_Node_Str");
    buf.append(StringValue.JUnit.TestMethodNamePrefixForJUnitVersion3);
    buf.append(config.testMethodName.basicDelimiter);
  }
 else {
    appendTabs(buf,1);
    buf.append("String_Node_Str");
    appendCRLF(buf);
    appendTabs(buf,1);
    buf.append("String_Node_Str");
  }
  buf.append(getTestMethodNamePrefix(testMethodMeta,testMethodMeta.testingTargetException));
  boolean isThrowableRequired=false;
  if (testMethodMeta.methodMeta != null && testMethodMeta.methodMeta.throwsExceptions != null) {
    for (    ExceptionMeta ex : testMethodMeta.methodMeta.throwsExceptions) {
      if (ex.name.equals("String_Node_Str")) {
        isThrowableRequired=true;
        break;
      }
    }
  }
  buf.append("String_Node_Str");
  buf.append(isThrowableRequired ? "String_Node_Str" : "String_Node_Str");
  buf.append("String_Node_Str");
  appendCRLF(buf);
  appendTabs(buf,2);
  buf.append("String_Node_Str");
  buf.append(messageValue.getAutoGeneratedTODOMessage());
  appendCRLF(buf);
  if (testMethodMeta.isTypeTest) {
    appendTabs(buf,2);
    buf.append("String_Node_Str");
    buf.append(testMethodMeta.classMeta.name);
    buf.append("String_Node_Str");
    appendCRLF(buf);
  }
 else   if (testMethodMeta.isInstantiationTest) {
    String instantiation=constructorGenerator.getFirstInstantiationSourceCode(testMethodMeta.classMeta);
    buf.append(instantiation);
    appendTabs(buf,2);
    buf.append("String_Node_Str");
    appendCRLF(buf);
  }
 else   if (config.isTemplateImplementationRequired) {
    appendTestingPatternExplicitComment(buf,"String_Node_Str",2);
    if (config.mockObjectFramework == MockObjectFramework.JMock2) {
      appendTabs(buf,2);
      buf.append("String_Node_Str");
      appendCRLF(buf);
      appendTabs(buf,3);
      buf.append("String_Node_Str");
      appendCRLF(buf);
      appendTabs(buf,2);
      buf.append("String_Node_Str");
      appendCRLF(buf);
    }
    if (config.mockObjectFramework == MockObjectFramework.EasyMock) {
      appendTabs(buf,2);
      buf.append("String_Node_Str");
      appendCRLF(buf);
    }
    if (!testMethodMeta.methodMeta.isStatic) {
      String instantiation=constructorGenerator.getFirstInstantiationSourceCode(testMethodMeta.classMeta);
      buf.append(instantiation);
    }
    appendBDDMockitoComment(buf,"String_Node_Str",2);
    if (testMethodMeta.testingTargetException == null) {
      appendPreparingArgs(buf,testMethodMeta);
      appendMockChecking(buf,2);
      appendTestingPatternExplicitComment(buf,"String_Node_Str",2);
      appendBDDMockitoComment(buf,"String_Node_Str",2);
      if (testMethodMeta.methodMeta.returnType != null && testMethodMeta.methodMeta.returnType.name != null) {
        appendTabs(buf,2);
        buf.append(testMethodMeta.methodMeta.returnType.name);
        buf.append("String_Node_Str");
      }
 else {
        appendTabs(buf,2);
      }
      appendExecutingTargetMethod(buf,testMethodMeta);
      appendTestingPatternExplicitComment(buf,"String_Node_Str",2);
      appendBDDMockitoComment(buf,"String_Node_Str",2);
      appendMockVerifying(buf,2);
      if (testMethodMeta.methodMeta.returnType != null && testMethodMeta.methodMeta.returnType.name != null) {
        appendTabs(buf,2);
        buf.append(testMethodMeta.methodMeta.returnType.name);
        buf.append("String_Node_Str");
        if (PrimitiveTypeUtil.isPrimitive(testMethodMeta.methodMeta.returnType.name)) {
          buf.append(PrimitiveTypeUtil.getTypeDefaultValue(testMethodMeta.methodMeta.returnType.name));
        }
 else {
          buf.append("String_Node_Str");
        }
        buf.append(StringValue.Semicolon);
        appendCRLF(buf);
        appendTabs(buf,2);
        buf.append("String_Node_Str");
        buf.append(StringValue.Semicolon);
        appendCRLF(buf);
      }
    }
 else {
      appendPreparingArgs(buf,testMethodMeta);
      appendMockChecking(buf,2);
      appendTabs(buf,2);
      buf.append("String_Node_Str");
      appendCRLF(buf);
      appendTestingPatternExplicitComment(buf,"String_Node_Str",3);
      appendBDDMockitoComment(buf,"String_Node_Str",3);
      appendTabs(buf,3);
      appendExecutingTargetMethod(buf,testMethodMeta);
      appendTabs(buf,3);
      buf.append("String_Node_Str");
      buf.append(StringValue.Semicolon);
      appendCRLF(buf);
      appendTabs(buf,2);
      buf.append("String_Node_Str");
      buf.append(testMethodMeta.testingTargetException.name);
      buf.append("String_Node_Str");
      appendCRLF(buf);
      appendBDDMockitoComment(buf,"String_Node_Str",3);
      appendTabs(buf,2);
      buf.append("String_Node_Str");
      appendCRLF(buf);
    }
  }
  appendTabs(buf,1);
  buf.append("String_Node_Str");
  appendCRLF(buf);
  return buf.toString();
}

Fixed version (ground truth):
@Override public String getTestMethodSourceCode(TestMethodMeta testMethodMeta){
  StringBuilder buf=new StringBuilder();
  if (config.mockObjectFramework == MockObjectFramework.JMockit) {
    List<String> mockedFieldsForJMockit=getMockedFieldsForJMockit(testMethodMeta);
    for (    String mocked : mockedFieldsForJMockit) {
      appendTabs(buf,1);
      buf.append("String_Node_Str");
      appendCRLF(buf);
      appendTabs(buf,1);
      buf.append(mocked);
      buf.append(StringValue.Semicolon);
      appendCRLF(buf);
    }
    if (mockedFieldsForJMockit.size() > 0) {
      appendCRLF(buf);
    }
  }
  if (config.junitVersion == JUnitVersion.version3) {
    appendTabs(buf,1);
    buf.append("String_Node_Str");
    buf.append(StringValue.JUnit.TestMethodNamePrefixForJUnitVersion3);
    buf.append(config.testMethodName.basicDelimiter);
  }
 else {
    appendTabs(buf,1);
    buf.append("String_Node_Str");
    appendCRLF(buf);
    appendTabs(buf,1);
    buf.append("String_Node_Str");
  }
  buf.append(getTestMethodNamePrefix(testMethodMeta,testMethodMeta.testingTargetException));
  boolean isThrowableRequired=false;
  if (testMethodMeta.methodMeta != null && testMethodMeta.methodMeta.throwsExceptions != null) {
    for (    ExceptionMeta ex : testMethodMeta.methodMeta.throwsExceptions) {
      if (ex.name.equals("String_Node_Str")) {
        isThrowableRequired=true;
        break;
      }
    }
  }
  buf.append("String_Node_Str");
  buf.append(isThrowableRequired ? "String_Node_Str" : "String_Node_Str");
  buf.append("String_Node_Str");
  appendCRLF(buf);
  appendTabs(buf,2);
  buf.append("String_Node_Str");
  buf.append(messageValue.getAutoGeneratedTODOMessage());
  appendCRLF(buf);
  if (testMethodMeta.isTypeTest) {
    appendTabs(buf,2);
    if (config.junitVersion == JUnitVersion.version3) {
      buf.append("String_Node_Str");
      buf.append(testMethodMeta.classMeta.name);
      buf.append("String_Node_Str");
    }
 else {
      buf.append("String_Node_Str");
      buf.append(testMethodMeta.classMeta.name);
      buf.append("String_Node_Str");
    }
    appendCRLF(buf);
  }
 else   if (testMethodMeta.isInstantiationTest) {
    String instantiation=constructorGenerator.getFirstInstantiationSourceCode(testMethodMeta.classMeta);
    buf.append(instantiation);
    appendTabs(buf,2);
    if (config.junitVersion == JUnitVersion.version3) {
      buf.append("String_Node_Str");
    }
 else {
      buf.append("String_Node_Str");
    }
    appendCRLF(buf);
  }
 else   if (config.isTemplateImplementationRequired) {
    appendTestingPatternExplicitComment(buf,"String_Node_Str",2);
    if (config.mockObjectFramework == MockObjectFramework.JMock2) {
      appendTabs(buf,2);
      buf.append("String_Node_Str");
      appendCRLF(buf);
      appendTabs(buf,3);
      buf.append("String_Node_Str");
      appendCRLF(buf);
      appendTabs(buf,2);
      buf.append("String_Node_Str");
      appendCRLF(buf);
    }
    if (config.mockObjectFramework == MockObjectFramework.EasyMock) {
      appendTabs(buf,2);
      buf.append("String_Node_Str");
      appendCRLF(buf);
    }
    if (!testMethodMeta.methodMeta.isStatic) {
      String instantiation=constructorGenerator.getFirstInstantiationSourceCode(testMethodMeta.classMeta);
      buf.append(instantiation);
    }
    appendBDDMockitoComment(buf,"String_Node_Str",2);
    if (testMethodMeta.testingTargetException == null) {
      appendPreparingArgs(buf,testMethodMeta);
      appendMockChecking(buf,2);
      appendTestingPatternExplicitComment(buf,"String_Node_Str",2);
      appendBDDMockitoComment(buf,"String_Node_Str",2);
      if (testMethodMeta.methodMeta.returnType != null && testMethodMeta.methodMeta.returnType.name != null) {
        appendTabs(buf,2);
        buf.append(testMethodMeta.methodMeta.returnType.name);
        buf.append("String_Node_Str");
      }
 else {
        appendTabs(buf,2);
      }
      appendExecutingTargetMethod(buf,testMethodMeta);
      appendTestingPatternExplicitComment(buf,"String_Node_Str",2);
      appendBDDMockitoComment(buf,"String_Node_Str",2);
      appendMockVerifying(buf,2);
      if (testMethodMeta.methodMeta.returnType != null && testMethodMeta.methodMeta.returnType.name != null) {
        appendTabs(buf,2);
        buf.append(testMethodMeta.methodMeta.returnType.name);
        buf.append("String_Node_Str");
        if (PrimitiveTypeUtil.isPrimitive(testMethodMeta.methodMeta.returnType.name)) {
          buf.append(PrimitiveTypeUtil.getTypeDefaultValue(testMethodMeta.methodMeta.returnType.name));
        }
 else {
          buf.append("String_Node_Str");
        }
        buf.append(StringValue.Semicolon);
        appendCRLF(buf);
        appendTabs(buf,2);
        if (config.junitVersion == JUnitVersion.version3) {
          buf.append("String_Node_Str");
        }
 else {
          buf.append("String_Node_Str");
        }
        buf.append(StringValue.Semicolon);
        appendCRLF(buf);
      }
    }
 else {
      appendPreparingArgs(buf,testMethodMeta);
      appendMockChecking(buf,2);
      appendTabs(buf,2);
      buf.append("String_Node_Str");
      appendCRLF(buf);
      appendTestingPatternExplicitComment(buf,"String_Node_Str",3);
      appendBDDMockitoComment(buf,"String_Node_Str",3);
      appendTabs(buf,3);
      appendExecutingTargetMethod(buf,testMethodMeta);
      appendTabs(buf,3);
      buf.append("String_Node_Str");
      buf.append(StringValue.Semicolon);
      appendCRLF(buf);
      appendTabs(buf,2);
      buf.append("String_Node_Str");
      buf.append(testMethodMeta.testingTargetException.name);
      buf.append("String_Node_Str");
      appendCRLF(buf);
      appendBDDMockitoComment(buf,"String_Node_Str",3);
      appendTabs(buf,2);
      buf.append("String_Node_Str");
      appendCRLF(buf);
    }
  }
  appendTabs(buf,1);
  buf.append("String_Node_Str");
  appendCRLF(buf);
  return buf.toString();
}