async Task <SolutionItem> LoadProject(CustomProjectLoadProgressMonitor m) { string solFile = Util.GetSampleProject("flavor-migration", "ConsoleProject.sln"); Solution sol = (Solution)await Services.ProjectService.ReadWorkspaceItem(m, solFile); return(sol.GetAllItems <SolutionItem>().FirstOrDefault()); }
public async Task OptionalMigration_NoPrompt_MonitorMigrate() { // It should migrate migrationHandler.CanPromptForMigrationResult = false; var m = new CustomProjectLoadProgressMonitor { ShouldMigrateValue = MigrationType.Migrate }; var p = await LoadProject(m); Assert.IsInstanceOf <Project> (p); Assert.IsTrue(((Project)p).HasFlavor <NewFlavor> ()); Assert.IsFalse(((Project)p).HasFlavor <ObsoleteFlavor> ()); }
public async Task MigrationFails() { // Project load should fail migrationHandler.CanPromptForMigrationResult = false; try { migrationHandler.MigrationResult = false; var m = new CustomProjectLoadProgressMonitor { ShouldMigrateValue = MigrationType.Migrate }; var p = await LoadProject(m); Assert.IsInstanceOf <UnknownSolutionItem> (p); } finally { migrationHandler.MigrationResult = true; } }
public async Task MandatoryMigration_NoPrompt_MonitorIgnore() { // Project load should fail migrationHandler.CanPromptForMigrationResult = false; migrator.IsMigrationRequired = true; try { var m = new CustomProjectLoadProgressMonitor { ShouldMigrateValue = MigrationType.Ignore }; var p = await LoadProject(m); Assert.IsInstanceOf <UnknownSolutionItem> (p); } finally { migrator.IsMigrationRequired = false; } }
public async Task MandatoryMigration_PromptMigrate_MonitorIgnore() { // It should migrate migrationHandler.CanPromptForMigrationResult = true; migrationHandler.PromptForMigrationResult = MigrationType.Migrate; migrator.IsMigrationRequired = true; try { var m = new CustomProjectLoadProgressMonitor { ShouldMigrateValue = MigrationType.Ignore }; var p = await LoadProject(m); Assert.IsTrue(((Project)p).HasFlavor <NewFlavor> ()); Assert.IsFalse(((Project)p).HasFlavor <ObsoleteFlavor> ()); } finally { migrator.IsMigrationRequired = false; } }