@Test
void verifyMigrationNonApplicableFileIDs() throws Exception {

    byte[] mediumAddressBookBytes = addressBook(5).toByteArray();
    int mediumIndex = mediumAddressBookBytes.length / 2;
    byte[] mediumAddressBookBytes1 = Arrays.copyOfRange(mediumAddressBookBytes, 0, mediumIndex);
    byte[] mediumAddressBookBytes2 = Arrays
            .copyOfRange(mediumAddressBookBytes, mediumIndex, mediumAddressBookBytes.length);
    byte[] largeAddressBookBytes = addressBook(10).toByteArray();
    int largeIndex = largeAddressBookBytes.length / 3;
    byte[] largeAddressBookBytes1 = Arrays.copyOfRange(largeAddressBookBytes, 0, largeIndex);
    byte[] largeAddressBookBytes2 = Arrays.copyOfRange(largeAddressBookBytes, largeIndex, largeIndex * 2);
    byte[] largeAddressBookBytes3 = Arrays
            .copyOfRange(largeAddressBookBytes, largeIndex * 2, largeAddressBookBytes.length);
    // inserts fileData
    List<FileData> fileDataList = new ArrayList<>();
    // 100 create w 3 nodes
    fileDataList.add(fileData(1L, 3, 100, TransactionTypeEnum.FILECREATE.getProtoId()));
    // 103 update -> append w 5 nodes
    fileDataList.add(fileData(2L, mediumAddressBookBytes1, 103, TransactionTypeEnum.FILEUPDATE.getProtoId()));
    fileDataList.add(fileData(3L, mediumAddressBookBytes2, 103, TransactionTypeEnum.FILEAPPEND.getProtoId()));
    // 104 update -> append -> append w 10 nodes
    fileDataList.add(fileData(4L, largeAddressBookBytes1, 104, TransactionTypeEnum.FILEUPDATE.getProtoId()));
    fileDataList.add(fileData(5L, largeAddressBookBytes2, 104, TransactionTypeEnum.FILEAPPEND.getProtoId()));
    fileDataList.add(fileData(6L, largeAddressBookBytes3, 104, TransactionTypeEnum.FILEAPPEND.getProtoId()));
    fileDataRepository.saveAll(fileDataList);
    // migration
    migration.migrate(new FlywayContext());
    assertEquals(6, fileDataRepository.count());
    // only bootstrap address book
    assertEquals(1, addressBookRepository.count());
    assertEquals(4, addressBookEntryRepository.count());
}