@Test public void testFindMigrationPath_shouldReturnNullIfMigrationNotFound() { MigrationContainer migrationContainer = new MigrationContainer(); assertNull(migrationContainer.findMigrationPath(1, 2)); }
@Nullable public List<Migration> findMigrationPath(int start, int end) { if (start == end) { return Collections.emptyList(); } boolean migrateUp = end > start; List<Migration> result = new ArrayList<>(); return findUpMigrationPath(result, migrateUp, start, end); }
MigrationContainer { @Nullable public List<Migration> findMigrationPath(int start, int end) { if (start == end) { return Collections.emptyList(); } boolean migrateUp = end > start; List<Migration> result = new ArrayList<>(); return findUpMigrationPath(result, migrateUp, start, end); } }
MigrationContainer { @Nullable public List<Migration> findMigrationPath(int start, int end) { if (start == end) { return Collections.emptyList(); } boolean migrateUp = end > start; List<Migration> result = new ArrayList<>(); return findUpMigrationPath(result, migrateUp, start, end); }  }
MigrationContainer { @Nullable public List<Migration> findMigrationPath(int start, int end) { if (start == end) { return Collections.emptyList(); } boolean migrateUp = end > start; List<Migration> result = new ArrayList<>(); return findUpMigrationPath(result, migrateUp, start, end); }  void addMigrations(Migration... migrations); @Nullable List<Migration> findMigrationPath(int start, int end); }
MigrationContainer { @Nullable public List<Migration> findMigrationPath(int start, int end) { if (start == end) { return Collections.emptyList(); } boolean migrateUp = end > start; List<Migration> result = new ArrayList<>(); return findUpMigrationPath(result, migrateUp, start, end); }  void addMigrations(Migration... migrations); @Nullable List<Migration> findMigrationPath(int start, int end);  }