@Test
    public void batchPutIfAbsentTest() {
        final KVStateOutputList kvStates = KVStateOutputList.newInstance();
        final int batchWriteSize = RocksRawKVStore.MAX_BATCH_WRITE_SIZE + 1;
        for (int i = 1; i <= batchWriteSize; i++) {
            final byte[] key = makeKey("put_test" + i);
            final byte[] value = makeValue("put_test_value" + i);
            KVStoreClosure kvStoreClosure = new BaseKVStoreClosure() {
                @Override
                public void run(Status status) {
                    assertEquals(status, Status.OK());
                }
            };
            kvStates.add(KVState.of(KVOperation.createPutIfAbsent(key, value), kvStoreClosure));
        }
        this.kvStore.batchPutIfAbsent(kvStates);
        kvStates.forEach(kvState -> assertNull(kvState.getDone().getData()));
        kvStates.clear();

        for (int i = 1; i <= batchWriteSize; i++) {
            final byte[] key = makeKey("put_test" + i);
            final byte[] value = makeValue("put_test_value" + i);
            KVStoreClosure kvStoreClosure = new BaseKVStoreClosure() {
                @Override
                public void run(Status status) {
                    assertEquals(status, Status.OK());
                }
            };
            kvStates.add(KVState.of(KVOperation.createPutIfAbsent(key, value), kvStoreClosure));
        }
        this.kvStore.batchPutIfAbsent(kvStates);
        kvStates.forEach(kvState -> assertArrayEquals(kvState.getOp().getValue(), (byte[]) kvState.getDone().getData()));
    }
Test method: {@link RocksRawKVStore#batchPutIfAbsent(KVStateOutputList)}
jraft-rheakv/rheakv-core/src/test/java/com/alipay/sofa/jraft/rhea/storage/rocksdb/RocksKVStoreTest.java