Exemple #1
0
        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"));
                }
        }
Exemple #2
0
        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", "");
                }
            }
        }
Exemple #6
0
        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));
                }
        }