@Bean("MigrationSteps")
  public MigrationSteps provide(InternalMigrationStepRegistry migrationStepRegistry, DbVersion... dbVersions) {
    Arrays.stream(dbVersions).forEach(dbVersion -> dbVersion.addSteps(migrationStepRegistry));
    return migrationStepRegistry.build();
  }
@Test
  public void provide_calls_DbVersion_addStep_in_order() {
    DbVersion dbVersion1 = newMockFailingOnSecondBuildCall();
    DbVersion dbVersion2 = newMockFailingOnSecondBuildCall();
    DbVersion dbVersion3 = newMockFailingOnSecondBuildCall();
    InOrder inOrder = inOrder(dbVersion1, dbVersion2, dbVersion3);
    MigrationSteps expected = mock(MigrationSteps.class);
    when(internalMigrationStepRegistry.build()).thenReturn(expected);

    assertThat(underTest.provide(internalMigrationStepRegistry, dbVersion1, dbVersion2, dbVersion3))
      .isSameAs(expected);

    inOrder.verify(dbVersion1).addSteps(internalMigrationStepRegistry);
    inOrder.verify(dbVersion2).addSteps(internalMigrationStepRegistry);
    inOrder.verify(dbVersion3).addSteps(internalMigrationStepRegistry);
    inOrder.verifyNoMoreInteractions();
  }