You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@struts.apache.org by hu...@apache.org on 2007/11/26 03:45:11 UTC

svn commit: r598110 - in /struts/sandbox/trunk/jpa-mailreader/src: main/java/entity/ main/java/entity/subscription/ main/java/entity/user/ test/java/entity/ test/java/entity/user/

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;
     }
-
+    
+    
 }