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(); } }
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(); } }
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(); } }
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(); } }
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(); } }
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(); } }
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(); } }
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(); } }