public async Task JobExtensionIntraTaskState() { using (var tokenSource = new CancellationTokenSource()) using (TestHostContext hc = CreateTestContext(tokenSource)) { TestJobExtension testExtension = new TestJobExtension(); testExtension.Initialize(hc); List <IStep> result = await testExtension.InitializeJob(_jobEc, _message); var trace = hc.GetTrace(); trace.Info(string.Join(", ", result.Select(x => x.DisplayName))); Assert.Equal(12, result.Count); result[0].ExecutionContext.TaskVariables.Set("state1", "value1", false); Assert.Equal("value1", result[5].ExecutionContext.TaskVariables.Get("state1")); Assert.Equal("value1", result[11].ExecutionContext.TaskVariables.Get("state1")); Assert.Null(result[4].ExecutionContext.TaskVariables.Get("state1")); Assert.Null(result[1].ExecutionContext.TaskVariables.Get("state1")); Assert.Null(result[2].ExecutionContext.TaskVariables.Get("state1")); Assert.Null(result[10].ExecutionContext.TaskVariables.Get("state1")); Assert.Null(result[6].ExecutionContext.TaskVariables.Get("state1")); Assert.Null(result[7].ExecutionContext.TaskVariables.Get("state1")); } }
public async Task JobExtensioBuildStepsList() { using (var tokenSource = new CancellationTokenSource()) using (TestHostContext hc = CreateTestContext(tokenSource)) { TestJobExtension testExtension = new TestJobExtension(); testExtension.Initialize(hc); List <IStep> result = await testExtension.InitializeJob(_jobEc, _message); var trace = hc.GetTrace(); trace.Info(string.Join(", ", result.Select(x => x.DisplayName))); Assert.Equal(12, result.Count); Assert.Equal("task2", result[0].DisplayName); Assert.Equal("task3", result[1].DisplayName); Assert.Equal("task4", result[2].DisplayName); Assert.Equal("task6", result[3].DisplayName); Assert.Equal("task1", result[4].DisplayName); Assert.Equal("task2", result[5].DisplayName); Assert.Equal("task6", result[6].DisplayName); Assert.Equal("task7", result[7].DisplayName); Assert.Equal("task7", result[8].DisplayName); Assert.Equal("task5", result[9].DisplayName); Assert.Equal("task3", result[10].DisplayName); Assert.Equal("task2", result[11].DisplayName); } }
public async Task JobExtensionIntraTaskState() { using (TestHostContext hc = CreateTestContext()) { TestJobExtension testExtension = new TestJobExtension(); testExtension.Initialize(hc); JobInitializeResult result = await testExtension.InitializeJob(_jobEc, _message); var trace = hc.GetTrace(); trace.Info(string.Join(", ", result.PreJobSteps.Select(x => x.DisplayName))); trace.Info(string.Join(", ", result.JobSteps.Select(x => x.DisplayName))); trace.Info(string.Join(", ", result.PostJobStep.Select(x => x.DisplayName))); Assert.Equal(4, result.PreJobSteps.Count); Assert.Equal(4, result.JobSteps.Count); Assert.Equal(4, result.PostJobStep.Count); result.PreJobSteps[0].ExecutionContext.TaskVariables.Set("state1", "value1", false); Assert.Equal("value1", result.JobSteps[1].ExecutionContext.TaskVariables.Get("state1")); Assert.Equal("value1", result.PostJobStep[3].ExecutionContext.TaskVariables.Get("state1")); Assert.Null(result.JobSteps[0].ExecutionContext.TaskVariables.Get("state1")); Assert.Null(result.PreJobSteps[1].ExecutionContext.TaskVariables.Get("state1")); Assert.Null(result.PreJobSteps[2].ExecutionContext.TaskVariables.Get("state1")); Assert.Null(result.PostJobStep[2].ExecutionContext.TaskVariables.Get("state1")); Assert.Null(result.JobSteps[2].ExecutionContext.TaskVariables.Get("state1")); Assert.Null(result.JobSteps[3].ExecutionContext.TaskVariables.Get("state1")); } }
public async Task JobExtensioBuildStepsList() { using (TestHostContext hc = CreateTestContext()) { TestJobExtension testExtension = new TestJobExtension(); testExtension.Initialize(hc); JobInitializeResult result = await testExtension.InitializeJob(_jobEc, _message); var trace = hc.GetTrace(); trace.Info(string.Join(", ", result.PreJobSteps.Select(x => x.DisplayName))); trace.Info(string.Join(", ", result.JobSteps.Select(x => x.DisplayName))); trace.Info(string.Join(", ", result.PostJobStep.Select(x => x.DisplayName))); Assert.Equal(4, result.PreJobSteps.Count); Assert.Equal(4, result.JobSteps.Count); Assert.Equal(4, result.PostJobStep.Count); Assert.Equal("task2", result.PreJobSteps[0].DisplayName); Assert.Equal("task3", result.PreJobSteps[1].DisplayName); Assert.Equal("task4", result.PreJobSteps[2].DisplayName); Assert.Equal("task6", result.PreJobSteps[3].DisplayName); Assert.Equal("task1", result.JobSteps[0].DisplayName); Assert.Equal("task2", result.JobSteps[1].DisplayName); Assert.Equal("task6", result.JobSteps[2].DisplayName); Assert.Equal("task7", result.JobSteps[3].DisplayName); Assert.Equal("task7", result.PostJobStep[0].DisplayName); Assert.Equal("task5", result.PostJobStep[1].DisplayName); Assert.Equal("task3", result.PostJobStep[2].DisplayName); Assert.Equal("task2", result.PostJobStep[3].DisplayName); } }
public async Task JobExtensionManagementScriptStep() { using (TestHostContext hc = CreateTestContext()) { hc.EnqueueInstance <IPagingLogger>(_logger.Object); hc.EnqueueInstance <IPagingLogger>(_logger.Object); Environment.SetEnvironmentVariable("VSTS_AGENT_INIT_INTERNAL_TEMP_HACK", "C:\\init.ps1"); Environment.SetEnvironmentVariable("VSTS_AGENT_CLEANUP_INTERNAL_TEMP_HACK", "C:\\clenup.ps1"); try { TestJobExtension testExtension = new TestJobExtension(); testExtension.Initialize(hc); List <IStep> result = await testExtension.InitializeJob(_jobEc, _message); var trace = hc.GetTrace(); trace.Info(string.Join(", ", result.Select(x => x.DisplayName))); Assert.Equal(14, result.Count); Assert.True(result[0] is ManagementScriptStep); Assert.True(result[13] is ManagementScriptStep); Assert.Equal(result[0].DisplayName, "Agent Initialization"); Assert.Equal(result[13].DisplayName, "Agent Cleanup"); } finally { Environment.SetEnvironmentVariable("VSTS_AGENT_INIT_INTERNAL_TEMP_HACK", ""); Environment.SetEnvironmentVariable("VSTS_AGENT_CLEANUP_INTERNAL_TEMP_HACK", ""); } } }
public async Task JobExtensionSetupInfo() { using (var tokenSource = new CancellationTokenSource()) using (TestHostContext hc = CreateTestContext(tokenSource)) { var config = hc.GetService <IConfigurationStore>(); var setupInfo = (List <SetupInfo>)config.GetSetupInfo(); setupInfo.Add(new SetupInfo() { Group = "Test Group", Detail = "Test Detail" }); setupInfo.Add(new SetupInfo() { Detail = "Environment: test\nVersion: 123" }); TestJobExtension testExtension = new TestJobExtension(); testExtension.Initialize(hc); await testExtension.InitializeJob(_jobEc, _message); _jobServerQueue.Verify(x => x.QueueWebConsoleLine(It.IsAny <Guid>(), "##[group]Test Group", It.IsAny <long>()), Times.Exactly(1)); _jobServerQueue.Verify(x => x.QueueWebConsoleLine(It.IsAny <Guid>(), "Test Detail", It.IsAny <long>()), Times.Exactly(1)); _jobServerQueue.Verify(x => x.QueueWebConsoleLine(It.IsAny <Guid>(), "##[group]Machine Setup Info", It.IsAny <long>()), Times.Exactly(1)); _jobServerQueue.Verify(x => x.QueueWebConsoleLine(It.IsAny <Guid>(), "Environment: test", It.IsAny <long>()), Times.Exactly(1)); _jobServerQueue.Verify(x => x.QueueWebConsoleLine(It.IsAny <Guid>(), "Version: 123", It.IsAny <long>()), Times.Exactly(1)); } }