package edu.amc.sakai.user; import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; import org.sakaiproject.memory.api.Cache; import org.sakaiproject.memory.api.DerivedCache; /** * Quickly hacked up cache which just uses a map so we can run the tests. * @author buckett * */ public class TestCache implements Cache { Map map = Collections.synchronizedMap(new HashMap()); // ============ Delegate to the map ======= // public void clear() { map.clear(); } public boolean containsKey(Object key) { return map.containsKey(key); } public boolean equals(Object o) { return map.equals(o); } public Object get(Object key) { return map.get(key); } public int hashCode() { return map.hashCode(); } public void put(Object key, Object value) { map.put(key, value); } public void remove(Object key) { map.remove(key); } // ============ All the extra Cache API crap ======= // public void attachDerivedCache(DerivedCache cache) { throw new UnsupportedOperationException(); } public boolean containsKeyExpiredOrNot(Object key) { return containsKey(key); } public void destroy() { } public void disable() { } public boolean disabled() { return false; } public void enable() { } public void expire(Object key) { map.remove(key); } public List getAll() { return Collections.list(Collections.enumeration(map.values())); } public List getAll(String path) { throw new UnsupportedOperationException(); } public Object getExpiredOrNot(Object key) { return get(key); } public List getIds() { throw new UnsupportedOperationException(); } public List getKeys() { return Collections.list(Collections.enumeration(map.keySet())); } public void holdEvents() { } public boolean isComplete() { return false; } public boolean isComplete(String path) { return false; } public void processEvents() { } public void put(Object key, Object payload, int duration) { put(key, payload); } public void setComplete() { } public void setComplete(String path) { } public String getDescription() { return getClass().getName(); } public long getSize() { return map.size(); } public void resetCache() { map.clear(); } }