Author: husted Date: Sun Nov 25 18:45:09 2007 New Revision: 598110 URL: http://svn.apache.org/viewvc?rev=598110&view=rev Log: WW-1399 Add count method to enhance testing. (Also test rollback using a level 1 test. Need to setup a separate test scaffold to automate a rollback test.)
Modified: struts/sandbox/trunk/jpa-mailreader/src/main/java/entity/EntityHelper.java struts/sandbox/trunk/jpa-mailreader/src/main/java/entity/subscription/SubscriptionHelperImpl.java struts/sandbox/trunk/jpa-mailreader/src/main/java/entity/user/User.java struts/sandbox/trunk/jpa-mailreader/src/main/java/entity/user/UserHelper.java struts/sandbox/trunk/jpa-mailreader/src/main/java/entity/user/UserHelperImpl.java struts/sandbox/trunk/jpa-mailreader/src/test/java/entity/EntityTestCase.java struts/sandbox/trunk/jpa-mailreader/src/test/java/entity/user/UserManagerTest.java Modified: struts/sandbox/trunk/jpa-mailreader/src/main/java/entity/EntityHelper.java URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/jpa-mailreader/src/main/java/entity/EntityHelper.java?rev=598110&r1=598109&r2=598110&view=diff ============================================================================== --- struts/sandbox/trunk/jpa-mailreader/src/main/java/entity/EntityHelper.java (original) +++ struts/sandbox/trunk/jpa-mailreader/src/main/java/entity/EntityHelper.java Sun Nov 25 18:45:09 2007 @@ -18,6 +18,7 @@ */ package entity; +import java.util.List; import javax.persistence.EntityManager; import javax.persistence.NoResultException; import javax.persistence.PersistenceException; @@ -47,12 +48,27 @@ manager.remove(value); } - public Object findEntity(String namedQuery, String parameterName, + @SuppressWarnings("unchecked") + public List resultList(String namedQuery, String parameterName, + String value) { + EntityManager manager = EntityManagerHelper.getEntityManager(); + List result = null; + Query query = manager.createNamedQuery(namedQuery); + if (parameterName!=null) query.setParameter(parameterName, value); + try { + result = query.getResultList(); + } catch (NoResultException e) { + result = null; + } + return result; + } + + public Object singleResult(String namedQuery, String parameterName, String value) { EntityManager manager = EntityManagerHelper.getEntityManager(); Object result = null; Query query = manager.createNamedQuery(namedQuery); - query.setParameter(parameterName, value); + if (parameterName!=null) query.setParameter(parameterName, value); try { result = query.getSingleResult(); } catch (NoResultException e) { Modified: struts/sandbox/trunk/jpa-mailreader/src/main/java/entity/subscription/SubscriptionHelperImpl.java URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/jpa-mailreader/src/main/java/entity/subscription/SubscriptionHelperImpl.java?rev=598110&r1=598109&r2=598110&view=diff ============================================================================== --- struts/sandbox/trunk/jpa-mailreader/src/main/java/entity/subscription/SubscriptionHelperImpl.java (original) +++ struts/sandbox/trunk/jpa-mailreader/src/main/java/entity/subscription/SubscriptionHelperImpl.java Sun Nov 25 18:45:09 2007 @@ -49,7 +49,7 @@ } public Subscription findByName(String value) { - Subscription result = (Subscription) findEntity( + Subscription result = (Subscription) singleResult( Subscription.FIND_BY_NAME, Subscription.NAME, value); return result; } Modified: struts/sandbox/trunk/jpa-mailreader/src/main/java/entity/user/User.java URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/jpa-mailreader/src/main/java/entity/user/User.java?rev=598110&r1=598109&r2=598110&view=diff ============================================================================== --- struts/sandbox/trunk/jpa-mailreader/src/main/java/entity/user/User.java (original) +++ struts/sandbox/trunk/jpa-mailreader/src/main/java/entity/user/User.java Sun Nov 25 18:45:09 2007 @@ -46,7 +46,9 @@ @Entity(name = "APP_USER") @NamedQueries( { @NamedQuery(name = User.FIND_ALL, query = User.FIND_ALL_QUERY), - @NamedQuery(name = User.FIND_BY_NAME, query = User.FIND_BY_NAME_QUERY) }) + @NamedQuery(name = User.FIND_BY_NAME, query = User.FIND_BY_NAME_QUERY), + @NamedQuery(name = User.COUNT, query = User.COUNT_QUERY) +}) public class User extends UuidEntity implements Serializable { // ---- STATICS ---- @@ -58,12 +60,7 @@ */ static final String FIND_ALL = "User.FIND_ALL"; - /** - * <p> - * Query for finding a <code>User</code> by username. - * </p> - */ - static final String FIND_ALL_QUERY = "SELECT u FROM APP_USER u"; + private static final String FIND_ALL_QUERY = "SELECT u FROM APP_USER u"; /** * <p> @@ -72,12 +69,11 @@ */ static final String FIND_BY_NAME = "User.FIND_BY_USERNAME"; - /** - * <p> - * Query for finding a <code>User</code> by username. - * </p> - */ - static final String FIND_BY_NAME_QUERY = "SELECT u FROM APP_USER u WHERE u.username = :username"; + private static final String FIND_BY_NAME_QUERY = "SELECT u FROM APP_USER u WHERE u.username = :username"; + + static final String COUNT = "User.COUNT"; + + private static final String COUNT_QUERY = "SELECT COUNT(*) FROM APP_USER"; /** * <p> Modified: struts/sandbox/trunk/jpa-mailreader/src/main/java/entity/user/UserHelper.java URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/jpa-mailreader/src/main/java/entity/user/UserHelper.java?rev=598110&r1=598109&r2=598110&view=diff ============================================================================== --- struts/sandbox/trunk/jpa-mailreader/src/main/java/entity/user/UserHelper.java (original) +++ struts/sandbox/trunk/jpa-mailreader/src/main/java/entity/user/UserHelper.java Sun Nov 25 18:45:09 2007 @@ -18,6 +18,8 @@ */ package entity.user; +import javax.persistence.PersistenceException; + /** * <p> * Custom operations involving the <code>User</code> object. @@ -25,7 +27,16 @@ * */ public interface UserHelper { - + + /** + * <p> + * Provide the current count of <p>User</p> objects. + * </p> + * @return current count of <p>User</p> objects + * @throws PersistenceException + */ + int count() throws PersistenceException; + /** * <p> * Insert the specified <code>User</code> into the persistent database. Modified: struts/sandbox/trunk/jpa-mailreader/src/main/java/entity/user/UserHelperImpl.java URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/jpa-mailreader/src/main/java/entity/user/UserHelperImpl.java?rev=598110&r1=598109&r2=598110&view=diff ============================================================================== --- struts/sandbox/trunk/jpa-mailreader/src/main/java/entity/user/UserHelperImpl.java (original) +++ struts/sandbox/trunk/jpa-mailreader/src/main/java/entity/user/UserHelperImpl.java Sun Nov 25 18:45:09 2007 @@ -28,6 +28,12 @@ */ public class UserHelperImpl extends EntityHelper implements UserHelper { + public int count() throws PersistenceException { + Long count = (Long) singleResult(User.COUNT, null, null); + int result = count.intValue(); + return result; + } + public void create(User value) throws PersistenceException { createEntity(value); } @@ -42,7 +48,7 @@ } public User findByName(String value) { - User result = (User) findEntity(User.FIND_BY_NAME, User.NAME, value); + User result = (User) singleResult(User.FIND_BY_NAME, User.NAME, value); return result; } Modified: struts/sandbox/trunk/jpa-mailreader/src/test/java/entity/EntityTestCase.java URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/jpa-mailreader/src/test/java/entity/EntityTestCase.java?rev=598110&r1=598109&r2=598110&view=diff ============================================================================== --- struts/sandbox/trunk/jpa-mailreader/src/test/java/entity/EntityTestCase.java (original) +++ struts/sandbox/trunk/jpa-mailreader/src/test/java/entity/EntityTestCase.java Sun Nov 25 18:45:09 2007 @@ -7,6 +7,7 @@ public class EntityTestCase extends TestCase { protected EntityManager manager; + protected boolean rollback = false; public void setUp() throws Exception { super.setUp(); @@ -16,6 +17,7 @@ public void tearDown() throws Exception { super.tearDown(); + if (rollback) EntityManagerHelper.rollback(); EntityManagerHelper.commit(); EntityManagerHelper.closeEntityManager(); } Modified: struts/sandbox/trunk/jpa-mailreader/src/test/java/entity/user/UserManagerTest.java URL: http://svn.apache.org/viewvc/struts/sandbox/trunk/jpa-mailreader/src/test/java/entity/user/UserManagerTest.java?rev=598110&r1=598109&r2=598110&view=diff ============================================================================== --- struts/sandbox/trunk/jpa-mailreader/src/test/java/entity/user/UserManagerTest.java (original) +++ struts/sandbox/trunk/jpa-mailreader/src/test/java/entity/user/UserManagerTest.java Sun Nov 25 18:45:09 2007 @@ -4,6 +4,11 @@ import java.util.List; import java.util.Random; +import javax.persistence.EntityManager; +import javax.persistence.NoResultException; +import javax.persistence.Query; + +import entity.EntityManagerHelper; import entity.EntityTestCase; import entity.protocol.Protocol; import entity.protocol.ProtocolHelperImpl; @@ -15,6 +20,7 @@ UserHelper helper; Random generator; String base; + int beforeCount = 0; private String nextBase() { int r = generator.nextInt(); @@ -26,6 +32,7 @@ helper = new UserHelperImpl(); generator = new Random(); base = nextBase(); + beforeCount = helper.count(); } private boolean isNotEmpty(String value) { @@ -36,6 +43,20 @@ return new User("user_" + base, "pass_" + base); } + public void testCount() throws Exception { + EntityManager manager = EntityManagerHelper.getEntityManager(); + Object result = null; + Query query = manager.createNamedQuery(User.COUNT); + try { + result = query.getSingleResult(); + } catch (NoResultException e) { + result = null; + } + assertNotNull(result); + Long count = (Long) result; + assertTrue(0<count.intValue()); + } + public void testCreate() throws Exception { User user = newUser(); String before = user.getId(); @@ -43,6 +64,8 @@ helper.create(user); String after = user.getId(); assertTrue("Initial ID changed on Create", before.equals(after)); + int afterCount = helper.count(); + assertTrue("Expected count to increase",afterCount>beforeCount); } private List<Subscription> getSubscriptions(User user) { @@ -75,11 +98,17 @@ } public void testCreateDelete() throws Exception { + // rollback = true; User user = new User(); user.setUsername("user_" + base); user.setPassword("pass_" + base); helper.create(user); + // throw new PersistenceException(); helper.delete(user); + int afterCount = helper.count(); + assertTrue(beforeCount == afterCount); + // rollback = false; } - + + }