### Question:
FunctionEncoder { static String buildMethodSignature(String methodName, List<Type> parameters) { StringBuilder result = new StringBuilder(); result.append(methodName); result.append("("); StringBuilder params = new StringBuilder(); for (int i = 0; i < parameters.size(); i++) { params.append(parameters.get(i).getTypeAsString()); if (i + 1 < parameters.size()) { params.append(","); } } result.append(params.toString()); result.append(")"); return result.toString(); } private  FunctionEncoder(); static String encode(Function function); static String encodeConstructor(List<Type> parameters); static String buildMethodId(String methodSignature);  }### Answer:
@Test public void testBuildMessageSignature() { assertThat( FunctionEncoder.buildMethodSignature( "baz", Arrays.asList( new Uint32(BigInteger.valueOf(69)), new Bool(true)) ), is("baz(uint32,bool)")); }
@Test public void testBuildEmptyMethodSignature() { assertThat( FunctionEncoder.buildMethodSignature("empty", Collections.emptyList()), is("empty()")); }