### Question:
ReplayGame implements Game { public static boolean isReplay(String save) { try { return save != null && new JSONObject(save).has(REPLAY_NAME); } catch (Exception e) { return false; } } ReplayGame(JSONObject save); static boolean isReplay(String save); @Override Object getBoardAsString(); @Override void clearScore(); @Override HeroData getHero(); boolean noMoreTicks(); void tick(); @Override Joystick getJoystick(); @Override boolean isGameOver(); @Override boolean isWin(); @Override boolean shouldLeave(); @Override void newGame(); @Override void loadSave(JSONObject save); @Override JSONObject getSave(); @Override GamePlayer getPlayer(); @Override GameField getField(); @Override void on(GameField field); @Override void setProgress(LevelProgress progress); @Override LevelProgress getProgress(); @Override void close();  }### Answer:
@Test public void testIsReplayGame() { assertEquals(true, ReplayGame.isReplay("{'startFromTick':0,'replayName':'game-E@1e16c0aa-1','playerName':'P@57bc27f5'}")); assertEquals(false, ReplayGame.isReplay("{'total':10,'current':0,'lastPassed':9,'multiple':true}")); assertEquals(false, ReplayGame.isReplay("")); assertEquals(false, ReplayGame.isReplay(null)); }