### Question:
SessionAttributeManager { public long createClientKey() { return (long) Math.floor(Math.random() * 9999999999999d); } SessionAttributeManager(); synchronized static SessionAttributeManager getInstance(); synchronized String getClientKeyAsString(Object requestObject); synchronized HttpSession getSession(Object requestObject); long createClientKey(); synchronized void setSessionAttribute(String name, Object obj, Object requestObject); @SuppressWarnings("unchecked") synchronized void setSessionAttribute(final String attrName, Object obj, Long clientKey, Object requestObject); synchronized Object getSessionAttribute(String name, Object requestObject); @SuppressWarnings("unchecked") synchronized Object getSessionAttribute(String name, Long clientKey, Object requestObject); void invalidateAttribute(String name, HttpSession session); void removeAttribute(String name, HttpSession session); void log(CacheEventType type, String name, Object obj, Object clientKey, HttpSession session, String details); static final String CLIENT_KEY; static final String MANAGED_ATTR_SUFFIX; static final String ATTRIBUTE_MANAGER_CACHE_SIZE_PARAM; static final String ATTRIBUTE_MANAGER_EXPIRE_AFTER_PARAM; static final long DEFAULT_KEY; static final int CACHE_SIZE; static final int EXPIRE_AFTER; }### Answer:
@Ignore @Test public void clientKeysUnique() { Set<Long> clientKeys = new HashSet<>(); for (int i = 0; i < LOTS_O_KEYS; i++) { clientKeys.add(sam.createClientKey()); } assertEquals(LOTS_O_KEYS, clientKeys.size()); }