    @Test( expected = IllegalArgumentException.class )
    public void testResetToInvalidVersions() {

        final String name = "plugin1";
        final int version = 10;

        //linked hash set is intentional here.  For iteration order we can boostrap to come second so we can
        //verify it was actually run first
        final Set<MigrationPlugin> plugins = new LinkedHashSet<>();

        MigrationPlugin plugin1 = mock( MigrationPlugin.class );
        when( plugin1.getPhase() ).thenReturn( PluginPhase.MIGRATE );


        when( plugin1.getName() ).thenReturn( name );
        when( plugin1.getMaxVersion() ).thenReturn( version );

        plugins.add( plugin1 );


        final MigrationInfoSerialization migrationInfoSerialization = mock( MigrationInfoSerialization.class );

        final MigrationInfoCache migrationInfoCache = mock(MigrationInfoCache.class);


        DataMigrationManagerImpl migrationManager = new DataMigrationManagerImpl( plugins, migrationInfoSerialization, migrationInfoCache );

        migrationManager.resetToVersion( name, version + 1 );
    }