### Question:
V_000001 implements Migrateable { @Override public void executeMigration(Datastore datastore) throws IOException { final BufferedReader in = getBufferedReaderForFile(); String line; String lastBic = ""; List<Bank> bankList = new LinkedList<>(); while ((line = in.readLine()) != null) { String bic = line.substring(139, 150).trim(); if (bic.length() == 0) { bic = lastBic; } else { lastBic = bic; } Bank bank = new Bank(line.substring(0, 8), line.substring(9, 67).trim(), line.substring(67, 72).trim(), line.substring(72, 107).trim(), line.substring(107, 134).trim(), bic); bankList.add(bank); } datastore.save(bankList); }  @Override void executeMigration(Datastore datastore);  }### Answer:
@Test public void testExecuteMigration() throws Exception { V_000001 cut = new V_000001(); final V_000001 spyCut = Mockito.spy(cut); InputStream is = getInputStream(); Mockito.doReturn(is).when(spyCut).getInputStream(); spyCut.executeMigration(getDatastore()); final List<Bank> banks = getDatastore().createQuery(Bank.class).asList(); assertThat(banks, notNullValue()); assertThat(banks.size(), is(4)); assertThat(banks.get(0).getBlz(), is("10000000")); assertThat(banks.get(0).getDescription(), is("Bundesbank")); assertThat(banks.get(0).getPlz(), is("10591")); assertThat(banks.get(0).getCity(), is("Berlin")); assertThat(banks.get(0).getShortDescription(), is("BBk Berlin")); assertThat(banks.get(0).getBic(), is("MARKDEF1100")); }