### Question:
CallConverter { public Argument.Invocation convert(Rule rule, Expression.Invocation invocation) { List<Argument> arguments = new ArrayList<>(invocation.getArguments().size() + 1); return Argument.invocationOf(invocation.getName(), convertType(invocation.getType()), invocation.getCall(), invocation.getArguments().stream() .map(param -> convertExpression(rule, param)) .collect(Collectors.toCollection(() -> arguments))); } CallConverter(); Argument.Invocation convert(Rule rule, Expression.Invocation invocation);  }### Answer:
@Test void shouldConvertMultipleExpressions() { Argument.Invocation invocation = callConverter.convert( createRule(), ExpressionFactory.functionOf("functionName", Expression.UNDEFINED, "functionCall", ExpressionFactory.valueOf("string", "value"), ExpressionFactory.valueOf("reference", "${fact.field}"), ExpressionFactory.valueOf("boolean", false) )); assertThat(invocation).isEqualTo( ArgumentFactory.invocationOf("functionName", Argument.UNKNOWN, "functionCall", Argument.valueOf("string", "value"), Argument.referenceOf("reference", UserFact.class, String.class, "fact.field"), Argument.valueOf("boolean", Boolean.FALSE) )); }