### Question:
CachedSpawnDataStore implements SpawnDataStore { @Override public void put(String path, String value) throws Exception { dataStore.put(path, value); cache.put(defaultKey(path), value); } CachedSpawnDataStore(SpawnDataStore dataStore, long dataStoreCacheSize); @Override String getDescription(); @Override String get(String path); @Override Map<String, String> get(String[] paths); @Override void put(String path, String value); @Override void putAsChild(String parent, String childId, String value); @Override String getChild(String parent, String childId); @Override void deleteChild(String parent, String childId); @Override void delete(String path); @Override List<String> getChildrenNames(String path); @Override Map<String, String> getAllChildren(String path); @Override void close();  }### Answer:
@Test public void testPut() throws Exception { final String key = "key"; PreparedStatement insertPreparedStatement = doPut(key, "value"); Mockito.verify(insertPreparedStatement).setString(Mockito.eq(1), Mockito.eq(key)); Mockito.verify(insertPreparedStatement).setBlob(Mockito.eq(2), Mockito.any(Blob.class)); Mockito.verify(insertPreparedStatement).setString(Mockito.eq(3), Mockito.eq("_root")); Mockito.verify(insertPreparedStatement, Mockito.atLeastOnce()).execute(); }