### Question:
XMLStorage implements IStorage { @Override public ExerciseList readExerciseList(String source, SportTypeList sportTypeList) throws STException { return xmlExerciseList.readExerciseList(source, sportTypeList); } XMLStorage(); @Override SportTypeList readSportTypeList(String source, SpeedMode defaultSpeedMode); @Override void storeSportTypeList(SportTypeList sportTypeList, String destination); @Override ExerciseList readExerciseList(String source, SportTypeList sportTypeList); @Override void storeExerciseList(ExerciseList exerciseList, String destination); @Override NoteList readNoteList(String source); @Override void storeNoteList(NoteList noteList, String destination); @Override WeightList readWeightList(String source); @Override void storeWeightList(WeightList weightList, String destination);  }### Answer:
@Test public void testReadExerciseList() throws STException { SportTypeList sportTypeList = createSportTypeList(); ExerciseList exercises = storage.readExerciseList("misc/testdata/exercises-valid.xml", sportTypeList); checkExerciseListContent(exercises); ExerciseList exercisesEmpty = storage.readExerciseList("misc/testdata/exercises-xyz.xml", sportTypeList); assertEquals(0, exercisesEmpty.size()); assertThrows(STException.class, () -> storage.readExerciseList("misc/testdata/exercises-invalid.xml", sportTypeList)); sportTypeList.getByID(1).getEquipmentList().removeByID(2); assertThrows(STException.class, () -> storage.readExerciseList("misc/testdata/exercises-valid.xml", sportTypeList)); }