コード例 #1
0
        public void Load_PluginAction()
        {
            try
            {
                //Arrange
                Setup();

                var actionManifest = new ActionManifestManager();
                actionManifest.Initialize(_hc);

                //Act
                var result = actionManifest.Load(_ec.Object, Path.Combine(TestUtil.GetTestDataPath(), "pluginaction.yml"));

                //Assert
                Assert.Equal("Hello World", result.Name);
                Assert.Equal("Greet the world and record the time", result.Description);
                Assert.Equal(2, result.Inputs.Count);
                Assert.Equal("greeting", result.Inputs[0].Key.AssertString("key").Value);
                Assert.Equal("Hello", result.Inputs[0].Value.AssertString("value").Value);
                Assert.Equal("entryPoint", result.Inputs[1].Key.AssertString("key").Value);
                Assert.Equal("", result.Inputs[1].Value.AssertString("value").Value);

                Assert.Equal(ActionExecutionType.Plugin, result.Execution.ExecutionType);

                var pluginAction = result.Execution as PluginActionExecutionData;

                Assert.Equal("someplugin", pluginAction.Plugin);
            }
            finally
            {
                Teardown();
            }
        }
コード例 #2
0
        public void Evaluate_ContainerAction_Env()
        {
            try
            {
                //Arrange
                Setup();

                var actionManifest = new ActionManifestManager();
                actionManifest.Initialize(_hc);

                var environment = new MappingToken(null, null, null);
                environment.Add(new StringToken(null, null, null, "hello"), new BasicExpressionToken(null, null, null, "inputs.greeting"));
                environment.Add(new StringToken(null, null, null, "test"), new StringToken(null, null, null, "test"));

                var inputsContext = new DictionaryContextData();
                inputsContext.Add("greeting", new StringContextData("hello"));

                var evaluateContext = new Dictionary <string, PipelineContextData>(StringComparer.OrdinalIgnoreCase);
                evaluateContext["inputs"] = inputsContext;

                //Act
                var result = actionManifest.EvaluateContainerEnvironment(_ec.Object, environment, evaluateContext);

                //Assert
                Assert.Equal("hello", result["hello"]);
                Assert.Equal("test", result["test"]);
                Assert.Equal(2, result.Count);
            }
            finally
            {
                Teardown();
            }
        }
コード例 #3
0
        public void Load_ContainerAction_NoArgsNoEnv()
        {
            try
            {
                //Arrange
                Setup();

                var actionManifest = new ActionManifestManager();
                actionManifest.Initialize(_hc);

                //Act
                var result = actionManifest.Load(_ec.Object, Path.Combine(TestUtil.GetTestDataPath(), "dockerfileaction_noargs_noenv_noentrypoint.yml"));

                //Assert
                Assert.Equal("Hello World", result.Name);
                Assert.Equal("Greet the world and record the time", result.Description);
                Assert.Equal(2, result.Inputs.Count);
                Assert.Equal("greeting", result.Inputs[0].Key.AssertString("key").Value);
                Assert.Equal("Hello", result.Inputs[0].Value.AssertString("value").Value);
                Assert.Equal("entryPoint", result.Inputs[1].Key.AssertString("key").Value);
                Assert.Equal("", result.Inputs[1].Value.AssertString("value").Value);

                Assert.Equal(ActionExecutionType.Container, result.Execution.ExecutionType);

                var containerAction = result.Execution as ContainerActionExecutionData;

                Assert.Equal("Dockerfile", containerAction.Image);
            }
            finally
            {
                Teardown();
            }
        }
コード例 #4
0
        public void Load_ContainerAction_Dockerfile_Pre()
        {
            try
            {
                //Arrange
                Setup();

                var actionManifest = new ActionManifestManager();
                actionManifest.Initialize(_hc);

                //Act
                var result = actionManifest.Load(_ec.Object, Path.Combine(TestUtil.GetTestDataPath(), "dockerfileaction_init.yml"));

                //Assert

                Assert.Equal("Hello World", result.Name);
                Assert.Equal("Greet the world and record the time", result.Description);
                Assert.Equal(2, result.Inputs.Count);
                Assert.Equal("greeting", result.Inputs[0].Key.AssertString("key").Value);
                Assert.Equal("Hello", result.Inputs[0].Value.AssertString("value").Value);
                Assert.Equal("entryPoint", result.Inputs[1].Key.AssertString("key").Value);
                Assert.Equal("", result.Inputs[1].Value.AssertString("value").Value);

                Assert.Equal(ActionExecutionType.Container, result.Execution.ExecutionType);

                var containerAction = result.Execution as ContainerActionExecutionData;

                Assert.Equal("Dockerfile", containerAction.Image);
                Assert.Equal("main.sh", containerAction.EntryPoint);
                Assert.Equal("init.sh", containerAction.Pre);
                Assert.Equal("success()", containerAction.InitCondition);
                Assert.Equal("bzz", containerAction.Arguments[0].ToString());
                Assert.Equal("Token", containerAction.Environment[0].Key.ToString());
                Assert.Equal("foo", containerAction.Environment[0].Value.ToString());
                Assert.Equal("Url", containerAction.Environment[1].Key.ToString());
                Assert.Equal("bar", containerAction.Environment[1].Value.ToString());
            }
            finally
            {
                Teardown();
            }
        }
コード例 #5
0
        public void Load_NodeAction_Cleanup_DefaultCondition()
        {
            try
            {
                //Arrange
                Setup();

                var actionManifest = new ActionManifestManager();
                actionManifest.Initialize(_hc);

                //Act
                var result = actionManifest.Load(_ec.Object, Path.Combine(TestUtil.GetTestDataPath(), "nodeaction_cleanup_default.yml"));

                //Assert
                Assert.Equal("Hello World", result.Name);
                Assert.Equal("Greet the world and record the time", result.Description);
                Assert.Equal(2, result.Inputs.Count);
                Assert.Equal("greeting", result.Inputs[0].Key.AssertString("key").Value);
                Assert.Equal("Hello", result.Inputs[0].Value.AssertString("value").Value);
                Assert.Equal("entryPoint", result.Inputs[1].Key.AssertString("key").Value);
                Assert.Equal("", result.Inputs[1].Value.AssertString("value").Value);
                Assert.Equal(1, result.Deprecated.Count);

                Assert.True(result.Deprecated.ContainsKey("greeting"));
                result.Deprecated.TryGetValue("greeting", out string value);
                Assert.Equal("This property has been deprecated", value);

                Assert.Equal(ActionExecutionType.NodeJS, result.Execution.ExecutionType);

                var nodeAction = result.Execution as NodeJSActionExecutionData;

                Assert.Equal("main.js", nodeAction.Script);
                Assert.Equal("cleanup.js", nodeAction.Post);
                Assert.Equal("always()", nodeAction.CleanupCondition);
            }
            finally
            {
                Teardown();
            }
        }
コード例 #6
0
        public void Evaluate_Default_Input()
        {
            try
            {
                //Arrange
                Setup();

                var actionManifest = new ActionManifestManager();
                actionManifest.Initialize(_hc);

                _ec.Object.ExpressionValues["github"] = new DictionaryContextData
                {
                    { "ref", new StringContextData("refs/heads/main") },
                };
                _ec.Object.ExpressionValues["strategy"] = new DictionaryContextData();
                _ec.Object.ExpressionValues["matrix"]   = new DictionaryContextData();
                _ec.Object.ExpressionValues["steps"]    = new DictionaryContextData();
                _ec.Object.ExpressionValues["job"]      = new DictionaryContextData();
                _ec.Object.ExpressionValues["runner"]   = new DictionaryContextData();
                _ec.Object.ExpressionValues["env"]      = new DictionaryContextData();
                _ec.Object.ExpressionFunctions.Add(new FunctionInfo <HashFilesFunction>("hashFiles", 1, 255));

                //Act
                var result = actionManifest.EvaluateDefaultInput(_ec.Object, "testInput", new StringToken(null, null, null, "defaultValue"));

                //Assert
                Assert.Equal("defaultValue", result);

                //Act
                result = actionManifest.EvaluateDefaultInput(_ec.Object, "testInput", new BasicExpressionToken(null, null, null, "github.ref"));

                //Assert
                Assert.Equal("refs/heads/main", result);
            }
            finally
            {
                Teardown();
            }
        }
コード例 #7
0
        public void Load_ConditionalCompositeAction()
        {
            try
            {
                //Arrange
                Setup();

                var actionManifest = new ActionManifestManager();
                actionManifest.Initialize(_hc);

                //Act
                var result = actionManifest.Load(_ec.Object, Path.Combine(TestUtil.GetTestDataPath(), "conditional_composite_action.yml"));

                //Assert
                Assert.Equal("Conditional Composite", result.Name);
                Assert.Equal(ActionExecutionType.Composite, result.Execution.ExecutionType);
            }
            finally
            {
                Teardown();
            }
        }
コード例 #8
0
        public void Evaluate_Default_Input()
        {
            try
            {
                //Arrange
                Setup();

                var actionManifest = new ActionManifestManager();
                actionManifest.Initialize(_hc);

                var githubContext = new DictionaryContextData();
                githubContext.Add("ref", new StringContextData("refs/heads/master"));

                var evaluateContext = new Dictionary <string, PipelineContextData>(StringComparer.OrdinalIgnoreCase);
                evaluateContext["github"]   = githubContext;
                evaluateContext["strategy"] = new DictionaryContextData();
                evaluateContext["matrix"]   = new DictionaryContextData();
                evaluateContext["steps"]    = new DictionaryContextData();
                evaluateContext["job"]      = new DictionaryContextData();
                evaluateContext["runner"]   = new DictionaryContextData();
                evaluateContext["env"]      = new DictionaryContextData();

                //Act
                var result = actionManifest.EvaluateDefaultInput(_ec.Object, "testInput", new StringToken(null, null, null, "defaultValue"), evaluateContext);

                //Assert
                Assert.Equal("defaultValue", result);

                //Act
                result = actionManifest.EvaluateDefaultInput(_ec.Object, "testInput", new BasicExpressionToken(null, null, null, "github.ref"), evaluateContext);

                //Assert
                Assert.Equal("refs/heads/master", result);
            }
            finally
            {
                Teardown();
            }
        }