public async void MergeDefaultInputs() { //Arrange Setup(); var actionId = Guid.NewGuid(); var actionInputs = new MappingToken(null, null, null); actionInputs.Add(new StringToken(null, null, null, "input1"), new StringToken(null, null, null, "test1")); actionInputs.Add(new StringToken(null, null, null, "input2"), new StringToken(null, null, null, "test2")); var action = new Pipelines.ActionStep() { Name = "action", Id = actionId, Reference = new Pipelines.ContainerRegistryReference() { Image = "ubuntu:16.04" }, Inputs = actionInputs }; _actionRunner.Action = action; Dictionary <string, string> finialInputs = new Dictionary <string, string>(); _handlerFactory.Setup(x => x.Create(It.IsAny <IExecutionContext>(), It.IsAny <ActionStepDefinitionReference>(), It.IsAny <IStepHost>(), It.IsAny <ActionExecutionData>(), It.IsAny <Dictionary <string, string> >(), It.IsAny <Dictionary <string, string> >(), It.IsAny <Variables>(), It.IsAny <string>())) .Callback((IExecutionContext executionContext, Pipelines.ActionStepDefinitionReference actionReference, IStepHost stepHost, ActionExecutionData data, Dictionary <string, string> inputs, Dictionary <string, string> environment, Variables runtimeVariables, string taskDirectory) => { finialInputs = inputs; }) .Returns(new Mock <IHandler>().Object); //Act await _actionRunner.RunAsync(); foreach (var input in finialInputs) { _hc.GetTrace().Info($"Input: {input.Key}={input.Value}"); } //Assert Assert.Equal("test1", finialInputs["input1"]); Assert.Equal("test2", finialInputs["input2"]); Assert.Equal("github", finialInputs["input3"]); }