Esempio n. 1
0
        public void Drop()
        {
            this.createDrop.OleDB_Drop_tables();
            IDBMigrator migrator = new OleDBMigrator(this.db, new DefaultDBMigrationStepProvider(Enumerable.Empty <IDBMigrationStep>()));

            new Result(migrator.UnInstall);
        }
Esempio n. 2
0
        public void when_migrate_oledb_works_as_spected()
        {
            IDBMigrator migrator = new OleDBMigrator(this.db, new DefaultDBMigrationStepProvider(GetMigrations()));

            int version       = migrator.GetCurrentVersion();
            var migrationStep = migrator.GetLastMigration();

            Assert.AreEqual(0, version);
            Assert.AreEqual(new DateTime(0), migrationStep.MigrationDate);
            Assert.AreEqual(0, migrationStep.Version);

            IEnumerable <MigrationInfo> steps = migrator.Upgrade();

            version       = migrator.GetCurrentVersion();
            migrationStep = migrator.GetLastMigration();
            Assert.AreEqual(3, version);
            Assert.AreEqual(3, migrationStep.Version);
            Assert.AreEqual(_kMigration3, migrationStep.Description);
            Assert.AreEqual(2, steps.Count());

            steps = migrator.Upgrade();

            Assert.IsFalse(steps.Any());
            version       = migrator.GetCurrentVersion();
            migrationStep = migrator.GetLastMigration();
            Assert.AreEqual(3, version);
            Assert.AreEqual(3, migrationStep.Version);
            Assert.AreEqual(_kMigration3, migrationStep.Description);

            //simulating error on migration from 3 to 4
            migrator = new OleDBMigrator(this.db, new PrvBadMigrationProvider());

            steps = migrator.Upgrade();

            Assert.IsFalse(steps.Any());
            version       = migrator.GetCurrentVersion();
            migrationStep = migrator.GetLastMigration();
            Assert.AreEqual(3, version);
            Assert.AreEqual(3, migrationStep.Version);
            Assert.AreEqual(_kMigration3, migrationStep.Description);
        }