void testStoredProcedure_with_IN_OUT_parameters(JDBCApi jdbcApi) throws Exception {
        final String param1 = "a";
        final String param2 = "b";
        final String storedProcedureQuery = "{ call concatCharacters(?, ?, ?) }";

        final Driver driverClass = jdbcApi.getJDBCDriverClass().newDriver();
        try (Connection conn = connect(driverClass)) {
            try (CallableStatement cs = conn.prepareCall(storedProcedureQuery)) {
                cs.setString(1, param1);
                cs.setString(2, param2);
                cs.registerOutParameter(3, Types.VARCHAR);
                cs.execute();
                Assertions.assertEquals(param1.concat(param2), cs.getString(3));
            }
        }
        PluginTestVerifier verifier = PluginTestVerifierHolder.getInstance();

        verifier.printCache();
        verifier.verifyTraceCount(4);

        // NonRegisteringDriver#connect(String, Properties)
        Method connect = jdbcApi.getDriver().getConnect();
        verifier.verifyTrace(event(MYSQL, connect, null, databaseAddress, databaseName, cachedArgs(jdbcUrl)));

        // Connection#prepareCall(String)
        final JDBCApi.ConnectionClass connectionClass = jdbcApi.getConnection();
        Method prepareCall = connectionClass.getPrepareCall();
        verifier.verifyTrace(event(MYSQL, prepareCall, null, databaseAddress, databaseName, sql(storedProcedureQuery, null)));

        // CallableStatement#registerOutParameter(int, int)
        final JDBCApi.CallableStatementClass callableStatementClass = jdbcApi.getCallableStatement();
        Method registerOutParameter = callableStatementClass.getRegisterOutParameter();
        verifier.verifyTrace(event(MYSQL, registerOutParameter, null, databaseAddress, databaseName, args(3, Types.VARCHAR)));

        // CallableStatement#execute
        Method execute = callableStatementClass.getExecute();
        verifier.verifyTrace(event(MYSQL_EXECUTE_QUERY, execute, null, databaseAddress, databaseName, Expectations.sql(storedProcedureQuery, null, param1 + ", " + param2)));
    }
@author Jongho Moon
@author HyunGil Jeong
agent-module/plugins-it/mysql-jdbc-driver-plugin-it/src/test/java/com/navercorp/pinpoint/it/plugin/jdbc/mysql/MySqlItHelper.java