### Question:
V_000002 implements Migrateable { @Override public void executeMigration(Datastore datastore) throws IOException { BufferedReader in = getBufferedReader(); String line; List<PlzCityState> plzCityStateList = new LinkedList<>(); while ((line = in.readLine()) != null) { final String[] strings = line.split("\\t"); PlzCityState plzCityState = new PlzCityState(strings[1], strings[2], strings[0]); plzCityStateList.add(plzCityState); } datastore.save(plzCityStateList); }  @Override void executeMigration(Datastore datastore);  }### Answer:
@Test public void testExecuteMigration() throws Exception { V_000002 cut = new V_000002(); final V_000002 spyCut = Mockito.spy(cut); InputStream is = getInputStream(); Mockito.doReturn(is).when(spyCut).getInputStream(); spyCut.executeMigration(getDatastore()); final List<PlzCityState> cities = getDatastore().createQuery(PlzCityState.class).asList(); assertThat(cities, notNullValue()); assertThat(cities.size(), is(6)); assertThat(cities.get(3).getCity(), is("Ratzeburg")); assertThat(cities.get(3).getCityCode(), is("23909")); assertThat(cities.get(3).getState(), is("Schleswig-Holstein")); }