@Before
 public void setup() {
   questionDatabase = QuestionDatabaseFactory.aQuestionDatabaseWithOnlyCustomQuestions();
   questionManager = QuestionDatabaseFactory.aQuestionManager();
   question =
       QuestionBuilder.aQuestion()
           .asking("What has four sides?")
           .ofType(QuestionType.TEXT)
           .withChoices("Square", "Circle", "Triangle", "Oval")
           .withAnswer("Square")
           .withExplaination("A square has four equal sides")
           .ofLevel(QuestionLevel.LEVEL_1)
           .inCategory(QuestionCategory.SHAPES)
           .build();
   oldNumberOfQuestions = questionDatabase.getNumberOfQuestions(question.getLevel());
 }
  /*
      @Test
      public void canDeleteQuestion() {
          canAddQuestion();
          questionManager.deleteQuestion(question);
          questionDatabase = QuestionDatabaseFactory.aQuestionDatabaseWithOnlyCustomQuestions();
          int number = questionDatabase.getNumberOfQuestions(question.getLevel());
          assertEquals(oldNumberOfQuestions, number);
      }
  */
  @Test
  public void canEditQuestion() {
    final String newQuestionString = "HELLO THIS IS ME";

    questionManager.addQuestion(question);
    questionDatabase = QuestionDatabaseFactory.aQuestionDatabaseWithOnlyCustomQuestions();
    Question newQuestion = QuestionBuilder.aQuestion().copiedFrom(question).build();
    newQuestion.setQuestion(newQuestionString);
    questionManager.editQuestion(question, newQuestion);
    questionDatabase = QuestionDatabaseFactory.aQuestionDatabaseWithOnlyCustomQuestions();

    int number = questionDatabase.getNumberOfQuestions(question.getLevel()) - 1;
    Question loadedQuestion =
        questionDatabase.getQuestion(question.getLevel(), question.getCategory(), number);

    assertEquals("Question not edited", newQuestion, loadedQuestion);
  }
 @After
 public void cleanup() {
   questionDatabase = QuestionDatabaseFactory.aQuestionDatabaseWithOnlyCustomQuestions();
   int numberToDelete =
       questionDatabase.getNumberOfQuestions(question.getLevel()) - oldNumberOfQuestions;
   for (int ii = 0; ii < numberToDelete; ii++) {
     Question questionToDelete =
         questionDatabase.getQuestion(
             question.getLevel(), question.getCategory(), oldNumberOfQuestions + ii);
     questionManager.deleteQuestion(questionToDelete);
   }
 }