### Question:
RocksdbKVStore implements KVStore<K, V> { @Override public synchronized KVMulti<K, V> multi() { checkStoreOpen(); return new KVMultiImpl(); } RocksdbKVStore(); @VisibleForTesting synchronized RocksDB getDb(); @Override synchronized String name(); @Override synchronized void checkpoint(); @Override long getLastRevision(); @Override @SuppressWarnings("unchecked") synchronized void init(StateStoreSpec spec); @Override synchronized void flush(); @Override synchronized void close(); @Override synchronized V get(K key); @Override synchronized KVIterator<K, V> range(K from, K to); @Override synchronized void put(K key, V value); @Override V putIfAbsent(K key, V value); @Override synchronized KVMulti<K, V> multi(); @Override synchronized V delete(K key);  }### Answer:
@Test(expected = InvalidStateStoreException.class) public void testMultiBeforeInit() throws Exception { store.multi(); }
@Test(expected = InvalidStateStoreException.class) public void testMultiAfterClose() throws Exception { initThenClose(); store.multi(); }