Program: 63001
Project: 63001
Buggy source:
@Test public void testEditEvaluation() throws Exception {
  ______TS("String_Node_Str");
  restoreTypicalDataInDatastore();
  String methodName="String_Node_Str";
  Class<?>[] paramTypes=new Class<?>[]{EvaluationData.class};
  EvaluationData evaluation=new EvaluationData();
  evaluation.course="String_Node_Str";
  evaluation.name="String_Node_Str";
  Object[] params=new Object[]{evaluation};
  verifyCannotAccess(USER_TYPE_NOT_LOGGED_IN,methodName,"String_Node_Str",paramTypes,params);
  verifyCannotAccess(USER_TYPE_UNREGISTERED,methodName,"String_Node_Str",paramTypes,params);
  verifyCannotAccess(USER_TYPE_STUDENT,methodName,"String_Node_Str",paramTypes,params);
  verifyCannotAccess(USER_TYPE_COORD,methodName,"String_Node_Str",paramTypes,params);
  verifyCanAccess(USER_TYPE_COORD,methodName,"String_Node_Str",paramTypes,params);
  ______TS("String_Node_Str");
  restoreTypicalDataInDatastore();
  loginAsAdmin("String_Node_Str");
  EvaluationData eval=dataBundle.evaluations.get("String_Node_Str");
  eval.gracePeriod=eval.gracePeriod + 1;
  eval.instructions=eval.instructions + "String_Node_Str";
  eval.p2pEnabled=(!eval.p2pEnabled);
  eval.startTime=Common.getDateOffsetToCurrentTime(-1);
  eval.endTime=Common.getDateOffsetToCurrentTime(2);
  logic.editEvaluation(eval);
  verifyPresentInDatastore(eval);
  ______TS("String_Node_Str");
  try {
    logic.editEvaluation(null);
    fail();
  }
 catch (  NullPointerException e) {
    verifyNullParameterDetectedCorrectly(e,"String_Node_Str");
  }
  ______TS("String_Node_Str");
  eval.course=null;
  try {
    logic.editEvaluation(eval);
    fail();
  }
 catch (  NullPointerException e) {
    verifyNullParameterDetectedCorrectly(e,"String_Node_Str");
  }
}

Fixed version (ground truth):
@Test public void testEditEvaluation() throws Exception {
  ______TS("String_Node_Str");
  restoreTypicalDataInDatastore();
  String methodName="String_Node_Str";
  Class<?>[] paramTypes=new Class<?>[]{String.class,String.class,String.class,Date.class,Date.class,Double.TYPE,Integer.TYPE,Boolean.TYPE};
  EvaluationData eval=new EvaluationData();
  eval.course="String_Node_Str";
  eval.name="String_Node_Str";
  eval.instructions="String_Node_Str";
  Date dummyTime=Calendar.getInstance().getTime();
  eval.startTime=dummyTime;
  eval.endTime=dummyTime;
  Object[] params=new Object[]{eval.course,eval.name,eval.instructions,eval.startTime,eval.endTime,eval.timeZone,eval.gracePeriod,eval.p2pEnabled};
  verifyCannotAccess(USER_TYPE_NOT_LOGGED_IN,methodName,"String_Node_Str",paramTypes,params);
  verifyCannotAccess(USER_TYPE_UNREGISTERED,methodName,"String_Node_Str",paramTypes,params);
  verifyCannotAccess(USER_TYPE_STUDENT,methodName,"String_Node_Str",paramTypes,params);
  verifyCannotAccess(USER_TYPE_COORD,methodName,"String_Node_Str",paramTypes,params);
  verifyCanAccess(USER_TYPE_COORD,methodName,"String_Node_Str",paramTypes,params);
  ______TS("String_Node_Str");
  restoreTypicalDataInDatastore();
  loginAsAdmin("String_Node_Str");
  eval=dataBundle.evaluations.get("String_Node_Str");
  eval.gracePeriod=eval.gracePeriod + 1;
  eval.instructions=eval.instructions + "String_Node_Str";
  eval.p2pEnabled=(!eval.p2pEnabled);
  eval.startTime=Common.getDateOffsetToCurrentTime(-1);
  eval.endTime=Common.getDateOffsetToCurrentTime(2);
  invokeEditEvaluation(eval);
  verifyPresentInDatastore(eval);
  ______TS("String_Node_Str");
  try {
    logic.editEvaluation(null,"String_Node_Str","String_Node_Str",dummyTime,dummyTime,0,0,false);
    fail();
  }
 catch (  NullPointerException e) {
    verifyNullParameterDetectedCorrectly(e,"String_Node_Str");
  }
  ______TS("String_Node_Str");
  eval.startTime=Common.getDateOffsetToCurrentTime(1);
  eval.endTime=Common.getDateOffsetToCurrentTime(0);
  try {
    invokeEditEvaluation(eval);
    fail();
  }
 catch (  InvalidParametersException e) {
    assertEquals(Common.ERRORCODE_END_BEFORE_START,e.errorCode);
  }
}