public synchronized int executeUpdate(final String queryString) {
        responseCallback = new DefaultPromise<>(eventLoopGroup.next());
        MySQLComQueryPacket comQueryPacket = new MySQLComQueryPacket(queryString);
        resetSequenceID();
        channel.writeAndFlush(comQueryPacket);
        Optional<MySQLOKPacket> packet = waitExpectedResponse(MySQLOKPacket.class);
        if (!packet.isPresent()) {
            throw new PipelineInternalException("Could not get MySQL OK packet");
        }
        return (int) packet.get().getAffectedRows();
    }
@Test
    void assertExecuteUpdate() throws ReflectiveOperationException {
        MySQLOKPacket expected = new MySQLOKPacket(10L, 0L, 0);
        Plugins.getMemberAccessor().set(MySQLOKPacket.class.getDeclaredField("affectedRows"), expected, 10L);
        mockChannelResponse(expected);
        Plugins.getMemberAccessor().set(MySQLBinlogClient.class.getDeclaredField("channel"), client, channel);
        Plugins.getMemberAccessor().set(MySQLBinlogClient.class.getDeclaredField("eventLoopGroup"), client, new NioEventLoopGroup(1));
        assertThat(client.executeUpdate(""), is(10));
        verify(channel).writeAndFlush(ArgumentMatchers.any(MySQLComQueryPacket.class));
    }