test_class.declarator: FUNCTION_ID_ERROR = new ObjectId()
test_class.modifier: private static final
test_class.original_string: private static final ObjectId FUNCTION_ID_ERROR = new ObjectId();
test_class.type: ObjectId
test_class.var_name: FUNCTION_ID_ERROR
test_class.declarator: FUNCTION_ID_SUCCESS = new ObjectId()
test_class.modifier: private static final
test_class.original_string: private static final ObjectId FUNCTION_ID_SUCCESS = new ObjectId();
test_class.type: ObjectId
test_class.var_name: FUNCTION_ID_SUCCESS
test_class.file: step-plans/step-plans-base-artefacts/src/test/java/step/artefacts/handlers/CallFunctionHandlerTest.java
test_class.identifier: CallFunctionHandlerTest
test_class.superclass: extends AbstractArtefactHandlerTest
test_case.body: @Test
  	public void test() {
  		ExecutionContext executionContext = buildExecutionContext();
  		
  		Function function = newFunction(FUNCTION_ID_SUCCESS);
  		((InMemoryFunctionAccessorImpl)executionContext.get(FunctionAccessor.class)).save(function);
  		
  		CallFunctionHandler handler = new CallFunctionHandler();
  		handler.init(executionContext);
  		
  		CallFunction callFunction = new CallFunction();
  		callFunction.setFunctionId(function.getId().toString());
  		
  		CallFunctionReportNode node = (CallFunctionReportNode) execute(callFunction);
  
  		Assert.assertEquals(1, node.getAttachments().size());
  		AttachmentMeta attachment = node.getAttachments().get(0);
  		Assert.assertEquals("Attachment1", attachment.getName());
  		
  		Assert.assertEquals(1, node.getMeasures().size());
  		
  		Assert.assertEquals("{\"Output1\":\"Value1\"}", node.getOutput());
  		Assert.assertEquals(ReportNodeStatus.PASSED, node.getStatus());
  	}
test_case.class_method_signature: CallFunctionHandlerTest.test()
test_case.full_signature: @Test public void test()
test_case.identifier: test
test_case.invocations: buildExecutionContext newFunction save get init setFunctionId toString getId execute assertEquals size getAttachments get getAttachments assertEquals getName assertEquals size getMeasures assertEquals getOutput assertEquals getStatus
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void test()
focal_class.declarator: functionExecutionService
focal_class.modifier: protected
focal_class.original_string: protected FunctionExecutionService functionExecutionService;
focal_class.type: FunctionExecutionService
focal_class.var_name: functionExecutionService
focal_class.declarator: functionAccessor
focal_class.modifier: protected
focal_class.original_string: protected FunctionAccessor functionAccessor;
focal_class.type: FunctionAccessor
focal_class.var_name: functionAccessor
focal_class.declarator: reportNodeAttachmentManager
focal_class.modifier: protected
focal_class.original_string: protected ReportNodeAttachmentManager reportNodeAttachmentManager;
focal_class.type: ReportNodeAttachmentManager
focal_class.var_name: reportNodeAttachmentManager
focal_class.declarator: dynamicJsonObjectResolver
focal_class.modifier: protected
focal_class.original_string: protected DynamicJsonObjectResolver dynamicJsonObjectResolver;
focal_class.type: DynamicJsonObjectResolver
focal_class.var_name: dynamicJsonObjectResolver
focal_class.declarator: selectorHelper
focal_class.modifier: private
focal_class.original_string: private SelectorHelper selectorHelper;
focal_class.type: SelectorHelper
focal_class.var_name: selectorHelper
focal_class.declarator: functionRouter
focal_class.modifier: private
focal_class.original_string: private FunctionRouter functionRouter;
focal_class.type: FunctionRouter
focal_class.var_name: functionRouter
focal_class.declarator: functionLocator
focal_class.modifier: protected
focal_class.original_string: protected FunctionLocator functionLocator;
focal_class.type: FunctionLocator
focal_class.var_name: functionLocator
focal_class.file: step-plans/step-plans-base-artefacts/src/main/java/step/artefacts/handlers/CallFunctionHandler.java
focal_class.identifier: CallFunctionHandler
focal_class.class_method_signature: CallFunctionHandler.init(ExecutionContext context)
focal_class.full_signature: @Override public void init(ExecutionContext context)
focal_class.identifier: init
focal_class.modifiers: @Override public
focal_class.parameters: (ExecutionContext context)
focal_class.return: void
focal_class.signature: void init(ExecutionContext context)
focal_class.class_method_signature: CallFunctionHandler.createReportSkeleton_(CallFunctionReportNode parentNode, CallFunction testArtefact)
focal_class.full_signature: @Override protected void createReportSkeleton_(CallFunctionReportNode parentNode, CallFunction testArtefact)
focal_class.identifier: createReportSkeleton_
focal_class.modifiers: @Override protected
focal_class.parameters: (CallFunctionReportNode parentNode, CallFunction testArtefact)
focal_class.return: void
focal_class.signature: void createReportSkeleton_(CallFunctionReportNode parentNode, CallFunction testArtefact)
focal_class.class_method_signature: CallFunctionHandler.execute_(CallFunctionReportNode node, CallFunction testArtefact)
focal_class.full_signature: @Override protected void execute_(CallFunctionReportNode node, CallFunction testArtefact)
focal_class.identifier: execute_
focal_class.modifiers: @Override protected
focal_class.parameters: (CallFunctionReportNode node, CallFunction testArtefact)
focal_class.return: void
focal_class.signature: void execute_(CallFunctionReportNode node, CallFunction testArtefact)
focal_class.class_method_signature: CallFunctionHandler.validateInput(FunctionInput<JsonObject> input, Function function)
focal_class.full_signature: private void validateInput(FunctionInput<JsonObject> input, Function function)
focal_class.identifier: validateInput
focal_class.modifiers: private
focal_class.parameters: (FunctionInput<JsonObject> input, Function function)
focal_class.return: void
focal_class.signature: void validateInput(FunctionInput<JsonObject> input, Function function)
focal_class.class_method_signature: CallFunctionHandler.getFunction(CallFunction testArtefact)
focal_class.full_signature: private Function getFunction(CallFunction testArtefact)
focal_class.identifier: getFunction
focal_class.modifiers: private
focal_class.parameters: (CallFunction testArtefact)
focal_class.return: Function
focal_class.signature: Function getFunction(CallFunction testArtefact)
focal_class.class_method_signature: CallFunctionHandler.drainOutput(String drainOutputValue, Output<JsonObject> output)
focal_class.full_signature: @SuppressWarnings("unchecked") private void drainOutput(String drainOutputValue, Output<JsonObject> output)
focal_class.identifier: drainOutput
focal_class.modifiers: @SuppressWarnings("unchecked") private
focal_class.parameters: (String drainOutputValue, Output<JsonObject> output)
focal_class.return: void
focal_class.signature: void drainOutput(String drainOutputValue, Output<JsonObject> output)
focal_class.class_method_signature: CallFunctionHandler.jsonToMap(JsonObject jsonOutput)
focal_class.full_signature: private Map<String, String> jsonToMap(JsonObject jsonOutput)
focal_class.identifier: jsonToMap
focal_class.modifiers: private
focal_class.parameters: (JsonObject jsonOutput)
focal_class.return: Map<String, String>
focal_class.signature: Map<String, String> jsonToMap(JsonObject jsonOutput)
focal_class.class_method_signature: CallFunctionHandler.callChildrenArtefacts(CallFunctionReportNode node, CallFunction testArtefact)
focal_class.full_signature: protected void callChildrenArtefacts(CallFunctionReportNode node, CallFunction testArtefact)
focal_class.identifier: callChildrenArtefacts
focal_class.modifiers: protected
focal_class.parameters: (CallFunctionReportNode node, CallFunction testArtefact)
focal_class.return: void
focal_class.signature: void callChildrenArtefacts(CallFunctionReportNode node, CallFunction testArtefact)
focal_class.class_method_signature: CallFunctionHandler.buildInput(String argumentStr)
focal_class.full_signature: private FunctionInput<JsonObject> buildInput(String argumentStr)
focal_class.identifier: buildInput
focal_class.modifiers: private
focal_class.parameters: (String argumentStr)
focal_class.return: FunctionInput<JsonObject>
focal_class.signature: FunctionInput<JsonObject> buildInput(String argumentStr)
focal_class.class_method_signature: CallFunctionHandler.parseAndResolveJson(String functionStr)
focal_class.full_signature: private JsonObject parseAndResolveJson(String functionStr)
focal_class.identifier: parseAndResolveJson
focal_class.modifiers: private
focal_class.parameters: (String functionStr)
focal_class.return: JsonObject
focal_class.signature: JsonObject parseAndResolveJson(String functionStr)
focal_class.class_method_signature: CallFunctionHandler.createReportNode_(ReportNode parentNode, CallFunction testArtefact)
focal_class.full_signature: @Override public CallFunctionReportNode createReportNode_(ReportNode parentNode, CallFunction testArtefact)
focal_class.identifier: createReportNode_
focal_class.modifiers: @Override public
focal_class.parameters: (ReportNode parentNode, CallFunction testArtefact)
focal_class.return: CallFunctionReportNode
focal_class.signature: CallFunctionReportNode createReportNode_(ReportNode parentNode, CallFunction testArtefact)
focal_class.superclass: extends ArtefactHandler<CallFunction, CallFunctionReportNode>
focal_method.body: @Override
  	public void init(ExecutionContext context) {
  		super.init(context);
  		functionExecutionService = context.get(FunctionExecutionService.class);
  		functionAccessor = context.get(FunctionAccessor.class);
  		functionRouter = context.get(FunctionRouter.class);
  		reportNodeAttachmentManager = new ReportNodeAttachmentManager(context);
  		dynamicJsonObjectResolver = new DynamicJsonObjectResolver(new DynamicJsonValueResolver(context.getExpressionHandler()));
  		this.selectorHelper = new SelectorHelper(dynamicJsonObjectResolver);
  		this.functionLocator = new FunctionLocator(functionAccessor, selectorHelper, context);
  	}
focal_method.class_method_signature: CallFunctionHandler.init(ExecutionContext context)
focal_method.full_signature: @Override public void init(ExecutionContext context)
focal_method.identifier: init
focal_method.invocations: init get get get getExpressionHandler
focal_method.modifiers: @Override public
focal_method.parameters: (ExecutionContext context)
focal_method.return: void
focal_method.signature: void init(ExecutionContext context)