public async Task CheckAndBuildForExecute_SkipUpToDate() { using (var executionDep = new ProjectWithExecutionDeps("Dependency")) using (var executing = new ProjectWithExecutionDeps("Executing")) using (var sln = CreateSimpleSolutionWithItems(executionDep, executing)) { executing.IsBuildUpToDate = true; executing.OverrideExecutionDependencies = new [] { executionDep }; executionDep.ItemDependencies.Add(executing); var success = await IdeApp.ProjectOperations.CheckAndBuildForExecute(new [] { executing }, ConfigurationSelector.Default); Assert.IsTrue(success); Assert.IsTrue(executionDep.WasBuilt); // this is kinda hacky but until the tests ignore user prefs when run locally it's necessary Assert.AreEqual(!Runtime.Preferences.SkipBuildingUnmodifiedProjects, executing.WasBuilt); executionDep.WasBuilt = executing.WasBuilt = false; success = await IdeApp.ProjectOperations.CheckAndBuildForExecute(new [] { executing }, ConfigurationSelector.Default); Assert.IsTrue(success); Assert.IsFalse(executionDep.WasBuilt); Assert.IsFalse(executing.WasBuilt); } }
public void GetBuildTargetsForExecution_ProjectIsExecutionTarget() { using (var project = new ProjectWithExecutionDeps("Executing")) { var targets = ProjectOperations.GetBuildTargetsForExecution(project, null); Assert.AreEqual(project, targets.Single()); } }
public void GetBuildTargetsForExecution_Solution_SingleItemRunConfiguration() { using (var project = new ProjectWithExecutionDeps("Executing")) using (var sln = CreateSimpleSolutionWithItems(project)) { var runConfig = new SingleItemSolutionRunConfiguration(project, null); var targets = ProjectOperations.GetBuildTargetsForExecution(sln, runConfig); Assert.AreEqual(project, targets.Single()); } }
public void GetBuildTargetsForExecution_Solution_NoStartupItem_NoRunConfigurationPassed() { using (var project = new ProjectWithExecutionDeps("Executing")) using (var sln = CreateSimpleSolutionWithItems(project)) { sln.StartupConfiguration = null; var targets = ProjectOperations.GetBuildTargetsForExecution(sln, null); Assert.IsNull(sln.StartupItem); Assert.AreEqual(sln, targets.Single()); } }
public async Task CheckAndBuildForExecute_ProjectOnly() { using (var other = new ProjectWithExecutionDeps("Other")) using (var executing = new ProjectWithExecutionDeps("Executing")) using (var sln = CreateSimpleSolutionWithItems(other, executing)) { var success = await IdeApp.ProjectOperations.CheckAndBuildForExecute(new [] { executing }, ConfigurationSelector.Default); Assert.IsTrue(success); Assert.IsFalse(other.WasBuilt); Assert.IsTrue(executing.WasBuilt); } }
public async Task CheckAndBuildForExecute_DependencyButNotSelf() { using (var executionDep = new ProjectWithExecutionDeps("Dependency")) using (var executing = new ProjectWithExecutionDeps("Executing")) using (var sln = CreateSimpleSolutionWithItems(executionDep, executing)) { executing.OverrideExecutionDependencies = new [] { executionDep }; var success = await IdeApp.ProjectOperations.CheckAndBuildForExecute(new [] { executing }, ConfigurationSelector.Default); Assert.IsTrue(success); Assert.IsTrue(executionDep.WasBuilt); Assert.False(executing.WasBuilt); } }
public void GetBuildTargetsForExecution_Solution_MultiItemRunConfiguration() { using (var executionDep = new ProjectWithExecutionDeps("Dependency")) using (var executing = new ProjectWithExecutionDeps("Executing")) using (var sln = CreateSimpleSolutionWithItems(executionDep, executing)) { var runConfig = new MultiItemSolutionRunConfiguration(); runConfig.Items.Add(new StartupItem(executing, null)); runConfig.Items.Add(new StartupItem(executionDep, null)); var targets = ProjectOperations.GetBuildTargetsForExecution(sln, runConfig); Assert.AreEqual(2, targets.Length); Assert.AreEqual(executing, targets [0]); Assert.AreEqual(executionDep, targets [1]); } }