public void TestFailedMigrationBroadcast() { TestMigrationContext context = new TestMigrationContext(); MigrationProcess process = new MigrationProcess(); MigrationTask2 task = new MigrationTask2(); task.ForceFail = true; process.MigrationStarted += new MigrationProcess.MigrationStatusEventHandler(process_MigrationStarted); process.MigrationSuccessful += new MigrationProcess.MigrationStatusEventHandler(process_MigrationSuccessful); process.MigrationFailed += new MigrationProcess.MigrationStatusEventHandler(process_MigrationFailed); try { process.ApplyPatch(context, task, true); } catch (MigrationException me) { Assert.IsTrue(started, "'started' should be true"); Assert.IsFalse(succeeded, "'succeeded' should be false"); Assert.IsTrue(failed, "'failed' should be true"); throw me; } }
public void DoMigrationsFromLevelOne() { TestMigrationContext context = new TestMigrationContext(); MigrationProcess process = new MigrationProcess(); //process.AddPatchResourceAssembly(typeof(MigrationTask1).Assembly.CodeBase); process.AddPatchResourceAssembly(typeof(MigrationTask1).Assembly.Location); process.DoMigrations(1, context); Assert.IsFalse(context.HasExecuted(new MigrationTask1().Name), "MigrationTask1 was not supposed to be run"); Assert.IsTrue(context.HasExecuted(new MigrationTask2().Name), "MigrationTask2 was supposed to be run"); }
public void DoMigrationsFromLevelOneHundred() { TestMigrationContext context = new TestMigrationContext(); MigrationProcess process = new MigrationProcess(); //process.AddPatchResourceAssembly(typeof(MigrationTask1).Assembly.CodeBase); process.AddPatchResourceAssembly(typeof(MigrationTask1).Assembly.Location); int count = process.DoMigrations(100, context); Assert.IsTrue(0 == count, "No migration tasks were supposed to be run on an up-to-date system"); Assert.IsFalse(context.HasExecuted(new MigrationTask1().Name), "MigrationTask1 was not supposed to be run"); Assert.IsFalse(context.HasExecuted(new MigrationTask2().Name), "MigrationTask2 was not supposed to be run"); }
public void DoMigrationsFromLevelOneHundredReadOnly() { TestMigrationContext context = new TestMigrationContext(); MigrationProcess process = new MigrationProcess(); //process.AddPatchResourceAssembly(typeof(MigrationTask1).Assembly.CodeBase); process.AddPatchResourceAssembly(typeof(MigrationTask1).Assembly.Location); process.ReadOnly = true; int count = process.DoMigrations(100, context); Assert.AreEqual(0, count, "No migration tasks were supposed to be run on an up-to-date system in readonly mode"); Assert.AreEqual(0, context.ExecutionLog.Count, "The execution log should not have recorded anything in readonly mode"); }
public void GetNextPatchLevelNoTasks() { TestMigrationContext context = new TestMigrationContext(); FakeSqlMigrationProcess process = new FakeSqlMigrationProcess(); SqlScriptMigrationTaskSource taskSource = new SqlScriptMigrationTaskSource(); process.AddPatchResourceDirectory(Directory.GetCurrentDirectory() + "\\..\\..\\sql\\empty-directory"); process.AddMigrationTaskSource(taskSource); int nextLevel = process.NextPatchLevel; Assert.AreEqual(nextLevel, 1); }
public void DoPostPatchMigrationsReadOnly() { TestMigrationContext context = new TestMigrationContext(); FakeSqlMigrationProcess process = new FakeSqlMigrationProcess(); SqlScriptMigrationTaskSource taskSource = new SqlScriptMigrationTaskSource(); process.AddPostPatchResourceAssembly(typeof(MigrationTask1).Assembly.Location); process.AddPostPatchResourceDirectory(Directory.GetCurrentDirectory() + "\\..\\.."); process.AddMigrationTaskSource(taskSource); process.ReadOnly = true; int count = process.DoPostPatchMigrations(context); Assert.AreEqual(0, count, "No post-patch tasks were supposed to be run in readonly mode"); Assert.AreEqual(0, context.ExecutionLog.Count, "The execution log should not have recorded anything in readonly mode"); }
public void DoPostPatchMigrationsNoTasks() { TestMigrationContext context = new TestMigrationContext(); FakeSqlMigrationProcess process = new FakeSqlMigrationProcess(); SqlScriptMigrationTaskSource taskSource = new SqlScriptMigrationTaskSource(); process.AddPostPatchResourceDirectory(Directory.GetCurrentDirectory() + "\\..\\..\\sql\\empty-directory"); process.AddMigrationTaskSource(taskSource); int tasksRun = process.DoPostPatchMigrations(context); Assert.AreEqual(0, tasksRun); }
public void DoPostPatchMigrationsFromSqlFileAndClasses() { TestMigrationContext context = new TestMigrationContext(); FakeSqlMigrationProcess process = new FakeSqlMigrationProcess(); SqlScriptMigrationTaskSource taskSource = new SqlScriptMigrationTaskSource(); process.AddPostPatchResourceAssembly(typeof(MigrationTask1).Assembly.Location); process.AddPostPatchResourceDirectory(Directory.GetCurrentDirectory() + "\\..\\.."); process.AddMigrationTaskSource(taskSource); process.DoPostPatchMigrations(context); // There currently are 2 .NET code and 3 SQL patches for tests Assert.IsTrue(context.HasExecuted(new MigrationTask1().Name), "MigrationTask1 was supposed to be run"); Assert.IsTrue(context.HasExecuted(new MigrationTask2().Name), "MigrationTask2 was supposed to be run"); Assert.IsTrue(context.HasExecuted("patch0003_dummy_SQL_file"), "patch0003_dummy_SQL_file was supposed to be run"); Assert.IsTrue(context.HasExecuted("patch0004_fourth_patch"), "patch0004_fourth_patch was supposed to be run"); Assert.IsTrue(context.HasExecuted("patch0005_fifth_patch"), "patch0005_fifth_patch was supposed to be run"); }
public void DoMigrationsFromSqlFile() { TestMigrationContext context = new TestMigrationContext(); FakeSqlMigrationProcess process = new FakeSqlMigrationProcess(); SqlScriptMigrationTaskSource taskSource = new SqlScriptMigrationTaskSource(); process.AddPatchResourceDirectory(Directory.GetCurrentDirectory() + "\\..\\.."); process.AddMigrationTaskSource(taskSource); process.DoMigrations(2, context); Assert.IsTrue(context.HasExecuted("patch0003_dummy_SQL_file"), "patch0003_dummy_SQL_file was supposed to be run"); Assert.IsTrue(context.HasExecuted("patch0004_fourth_patch"), "patch0004_fourth_patch was supposed to be run"); Assert.IsTrue(context.HasExecuted("patch0005_fifth_patch"), "patch0005_fifth_patch was supposed to be run"); }
public void DoMigrationsFromLevelOneReadOnly() { TestMigrationContext context = new TestMigrationContext(); MigrationProcess process = new MigrationProcess(); //process.AddPatchResourceAssembly(typeof(MigrationTask1).Assembly.CodeBase); process.AddPatchResourceAssembly(typeof(MigrationTask1).Assembly.Location); process.ReadOnly = true; int count = -1; try { count = process.DoMigrations(1, context); } catch (MigrationException me) { Assert.AreEqual(-1, count, "No migration tasks were supposed to be run in readonly mode"); Assert.AreEqual(0, context.ExecutionLog.Count, "The execution log should not have recorded anything in readonly mode"); throw me; } }
public void TestNoBroadcast() { TestMigrationContext context = new TestMigrationContext(); MigrationProcess process = new MigrationProcess(); MigrationTask1 task = new MigrationTask1(); process.MigrationStarted += new MigrationProcess.MigrationStatusEventHandler(process_MigrationStarted); process.MigrationSuccessful += new MigrationProcess.MigrationStatusEventHandler(process_MigrationSuccessful); process.MigrationFailed += new MigrationProcess.MigrationStatusEventHandler(process_MigrationFailed); process.ApplyPatch(context, task, false); Assert.IsFalse(started, "'started' should be false"); Assert.IsFalse(succeeded, "'succeeded' should be false"); Assert.IsFalse(failed, "'failed' should be false"); }
public void TestNoListeners() { TestMigrationContext context = new TestMigrationContext(); MigrationProcess process = new MigrationProcess(); MigrationTask1 task = new MigrationTask1(); process.ApplyPatch(context, task, true); Assert.IsFalse(started, "'started' should be false"); Assert.IsFalse(succeeded, "'succeeded' should be false"); Assert.IsFalse(failed, "'failed' should be false"); }