public void testGoodAnswer() {
    GameMaster master = new GameMaster(generateTargetCombination());
    
    Combination<Colors> attempt = generateAttemptCombination1();
    assertEquals(5, master.answer(attempt).getBlackCount());
    assertEquals(0, master.answer(attempt).getWhiteCount());
    assertEquals(true, master.correctCombination(master.answer(attempt)));
    
    attempt = generateAttemptCombination2();
    assertEquals(3, master.answer(attempt).getBlackCount());
    assertEquals(2, master.answer(attempt).getWhiteCount());
    assertEquals(false, master.correctCombination(master.answer(attempt)));
    
    attempt = generateAttemptCombination3();
    assertEquals(1, master.answer(attempt).getBlackCount());
    assertEquals(1, master.answer(attempt).getWhiteCount());
    assertEquals(false, master.correctCombination(master.answer(attempt)));
    
    attempt = generateAttemptCombination4();
    assertEquals(0, master.answer(attempt).getBlackCount());
    assertEquals(3, master.answer(attempt).getWhiteCount());
    assertEquals(false, master.correctCombination(master.answer(attempt)));
    
    attempt = generateAttemptCombination5();
    assertEquals(0, master.answer(attempt).getBlackCount());
    assertEquals(5, master.answer(attempt).getWhiteCount());
    assertEquals(false, master.correctCombination(master.answer(attempt)));
    
    attempt = generateAttemptCombination6();
    assertEquals(2, master.answer(attempt).getBlackCount());
    assertEquals(2, master.answer(attempt).getWhiteCount());
    assertEquals(false, master.correctCombination(master.answer(attempt)));
    
    attempt = generateAttemptCombination7();
    assertEquals(1, master.answer(attempt).getBlackCount());
    assertEquals(2, master.answer(attempt).getWhiteCount());
    assertEquals(false, master.correctCombination(master.answer(attempt)));
    
    attempt = generateAttemptCombination8();
    assertEquals(1, master.answer(attempt).getBlackCount());
    assertEquals(0, master.answer(attempt).getWhiteCount());
    assertEquals(false, master.correctCombination(master.answer(attempt)));
    
    attempt = generateAttemptCombination9();
    assertEquals(1, master.answer(attempt).getBlackCount());
    assertEquals(2, master.answer(attempt).getWhiteCount());
    assertEquals(false, master.correctCombination(master.answer(attempt)));
    
    attempt = generateAttemptCombination10();
    assertEquals(0, master.answer(attempt).getBlackCount());
    assertEquals(1, master.answer(attempt).getWhiteCount());
    assertEquals(false, master.correctCombination(master.answer(attempt)));
  }