package org.jboss.test.capedwarf.jpa.support; import org.jboss.capedwarf.jpa.Entity; import javax.persistence.*; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; /** * @author <a href="mailto:ales.justin@jboss.org">Ales Justin</a> */ public class MockEM implements EntityManager { static Map<Class<?>, Map<Object, Object>> db = new ConcurrentHashMap<Class<?>, Map<Object, Object>>(); public void persist(Object o) { Class<?> clazz = o.getClass(); Map<Object, Object> map = db.get(clazz); Entity entity = (Entity) o; if (map == null) { map = new ConcurrentHashMap<Object, Object>(); db.put(clazz, map); } map.put(entity.getId(), o); } public <T> T merge(T t) { return t; } public void remove(Object o) { } @SuppressWarnings({"unchecked"}) public <T> T find(Class<T> tClass, Object o) { Map<Object, Object> map = db.get(tClass); return (map != null) ? (T) map.get(o) : null; } public <T> T getReference(Class<T> tClass, Object o) { return null; } public void flush() { } public void setFlushMode(FlushModeType flushModeType) { } public FlushModeType getFlushMode() { return null; } public void lock(Object o, LockModeType lockModeType) { } public void refresh(Object o) { } public void clear() { } public boolean contains(Object o) { return false; } public Query createQuery(String s) { return new MockQuery(s); } public Query createNamedQuery(String s) { return new MockQuery(s); } public Query createNativeQuery(String s) { return new MockQuery(s); } public Query createNativeQuery(String s, Class aClass) { return new MockQuery(s); } public Query createNativeQuery(String s, String s1) { return new MockQuery(s); } public void close() { } public boolean isOpen() { return false; } public EntityTransaction getTransaction() { return null; } public void joinTransaction() { } public Object getDelegate() { return null; } }