Search in sources :

Example 21 with ResolvedMigration

use of org.flywaydb.core.api.resolver.ResolvedMigration in project flyway by flyway.

the class CompositeMigrationResolverSmallTest method collectMigrations.

/**
     * Checks that migrations are properly collected, eliminating all exact duplicates.
     */
@Test
public void collectMigrations() {
    MigrationResolver migrationResolver = new MigrationResolver() {

        public List<ResolvedMigration> resolveMigrations() {
            List<ResolvedMigration> migrations = new ArrayList<ResolvedMigration>();
            migrations.add(createTestMigration(MigrationType.SPRING_JDBC, "1", "Description", "Migration1", 123));
            migrations.add(createTestMigration(MigrationType.SPRING_JDBC, "1", "Description", "Migration1", 123));
            migrations.add(createTestMigration(MigrationType.SQL, "2", "Description2", "Migration2", 1234));
            return migrations;
        }
    };
    Collection<MigrationResolver> migrationResolvers = new ArrayList<MigrationResolver>();
    migrationResolvers.add(migrationResolver);
    Collection<ResolvedMigration> migrations = CompositeMigrationResolver.collectMigrations(migrationResolvers);
    assertEquals(2, migrations.size());
}
Also used : ResolvedMigration(org.flywaydb.core.api.resolver.ResolvedMigration) MigrationResolver(org.flywaydb.core.api.resolver.MigrationResolver) Test(org.junit.Test)

Example 22 with ResolvedMigration

use of org.flywaydb.core.api.resolver.ResolvedMigration in project flyway by flyway.

the class CompositeMigrationResolverSmallTest method resolveMigrationsMultipleLocations.

@Test
public void resolveMigrationsMultipleLocations() {
    FlywayConfigurationForTests config = FlywayConfigurationForTests.create();
    PlaceholderReplacer placeholderReplacer = new PlaceholderReplacer(new HashMap<String, String>(), "${", "}");
    MigrationResolver migrationResolver = new CompositeMigrationResolver(null, new Scanner(Thread.currentThread().getContextClassLoader()), config, new Locations("migration/subdir/dir2", "migration.outoforder", "migration/subdir/dir1"), placeholderReplacer, new MyCustomMigrationResolver());
    Collection<ResolvedMigration> migrations = migrationResolver.resolveMigrations();
    List<ResolvedMigration> migrationList = new ArrayList<ResolvedMigration>(migrations);
    assertEquals(4, migrations.size());
    assertEquals("First", migrationList.get(0).getDescription());
    assertEquals("Late arrivals", migrationList.get(1).getDescription());
    assertEquals("Virtual Migration", migrationList.get(2).getDescription());
    assertEquals("Add foreign key", migrationList.get(3).getDescription());
}
Also used : Scanner(org.flywaydb.core.internal.util.scanner.Scanner) PlaceholderReplacer(org.flywaydb.core.internal.util.PlaceholderReplacer) Locations(org.flywaydb.core.internal.util.Locations) ResolvedMigration(org.flywaydb.core.api.resolver.ResolvedMigration) MigrationResolver(org.flywaydb.core.api.resolver.MigrationResolver) Test(org.junit.Test)

Example 23 with ResolvedMigration

use of org.flywaydb.core.api.resolver.ResolvedMigration in project flyway by flyway.

the class CompositeMigrationResolverSmallTest method collectMigrationsExactDuplicatesInDifferentLocations.

/**
     * Checks that migrations are properly collected, eliminating all exact duplicates.
     */
@Test
public void collectMigrationsExactDuplicatesInDifferentLocations() {
    MigrationResolver migrationResolver = new MigrationResolver() {

        public List<ResolvedMigration> resolveMigrations() {
            ResolvedMigrationImpl testMigration = createTestMigration(MigrationType.SQL, "2", "Description2", "Migration2", 1234);
            testMigration.setPhysicalLocation("abc");
            ResolvedMigrationImpl testMigration2 = createTestMigration(MigrationType.SQL, "2", "Description2", "Migration2", 1234);
            testMigration2.setPhysicalLocation("xyz");
            List<ResolvedMigration> migrations = new ArrayList<ResolvedMigration>();
            migrations.add(testMigration);
            migrations.add(testMigration2);
            return migrations;
        }
    };
    MigrationResolver migrationResolver2 = new MigrationResolver() {

        public List<ResolvedMigration> resolveMigrations() {
            List<ResolvedMigration> migrations = new ArrayList<ResolvedMigration>();
            ResolvedMigrationImpl testMigration = createTestMigration(MigrationType.SQL, "2", "Description2", "Migration2", 1234);
            testMigration.setPhysicalLocation("def");
            migrations.add(testMigration);
            return migrations;
        }
    };
    Collection<MigrationResolver> migrationResolvers = Arrays.asList(migrationResolver, migrationResolver2);
    Collection<ResolvedMigration> migrations = CompositeMigrationResolver.collectMigrations(migrationResolvers);
    assertEquals(1, migrations.size());
}
Also used : ResolvedMigration(org.flywaydb.core.api.resolver.ResolvedMigration) MigrationResolver(org.flywaydb.core.api.resolver.MigrationResolver) Test(org.junit.Test)

Example 24 with ResolvedMigration

use of org.flywaydb.core.api.resolver.ResolvedMigration in project flyway by flyway.

the class DB2zOSMigrationMediumTest method assertChecksum.

@Override
protected void assertChecksum(MigrationInfo migrationInfo) {
    SqlMigrationResolver sqlMigrationResolver = new SqlMigrationResolver(dbSupport, new Scanner(Thread.currentThread().getContextClassLoader()), new Location(getBasedir() + "/default"), PlaceholderReplacer.NO_PLACEHOLDERS, FlywayConfigurationForTests.create());
    List<ResolvedMigration> migrations = sqlMigrationResolver.resolveMigrations();
    for (ResolvedMigration migration : migrations) {
        if (migration.getVersion().toString().equals(migrationInfo.getVersion().toString())) {
            assertEquals("Wrong checksum for " + migrationInfo.getScript(), migration.getChecksum(), migrationInfo.getChecksum());
        }
    }
}
Also used : Scanner(org.flywaydb.core.internal.util.scanner.Scanner) SqlMigrationResolver(org.flywaydb.core.internal.resolver.sql.SqlMigrationResolver) ResolvedMigration(org.flywaydb.core.api.resolver.ResolvedMigration) Location(org.flywaydb.core.internal.util.Location)

Aggregations

ResolvedMigration (org.flywaydb.core.api.resolver.ResolvedMigration)24 Test (org.junit.Test)13 ArrayList (java.util.ArrayList)10 Location (org.flywaydb.core.internal.util.Location)7 Scanner (org.flywaydb.core.internal.util.scanner.Scanner)5 FlywayException (org.flywaydb.core.api.FlywayException)4 MigrationResolver (org.flywaydb.core.api.resolver.MigrationResolver)4 MigrationVersion (org.flywaydb.core.api.MigrationVersion)3 ResolvedMigrationComparator (org.flywaydb.core.internal.resolver.ResolvedMigrationComparator)3 ResolvedMigrationImpl (org.flywaydb.core.internal.resolver.ResolvedMigrationImpl)3 Connection (java.sql.Connection)2 MigrationType (org.flywaydb.core.api.MigrationType)2 MigrationExecutor (org.flywaydb.core.api.resolver.MigrationExecutor)2 AppliedMigration (org.flywaydb.core.internal.metadatatable.AppliedMigration)2 SqlMigrationResolver (org.flywaydb.core.internal.resolver.sql.SqlMigrationResolver)2 Locations (org.flywaydb.core.internal.util.Locations)2 PlaceholderReplacer (org.flywaydb.core.internal.util.PlaceholderReplacer)2 Hashing (com.google.common.hash.Hashing)1 ByteSource (com.google.common.io.ByteSource)1 File (java.io.File)1