OPENJPA-2861 add unit tests for select sum(case..)
diff --git a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/jira1794/TestAggregateFunctions.java b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/jira1794/TestAggregateFunctions.java
index 13a6b0d..b1cb054 100644
--- a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/jira1794/TestAggregateFunctions.java
+++ b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/jira1794/TestAggregateFunctions.java
@@ -22,6 +22,7 @@
 

 import javax.persistence.EntityManager;

 import javax.persistence.Query;

+import javax.persistence.TypedQuery;

 import javax.persistence.criteria.CriteriaBuilder;

 import javax.persistence.criteria.CriteriaQuery;

 import javax.persistence.criteria.Expression;

@@ -92,6 +93,40 @@
         em.close();

     }

 

+    /**

+     * if a SUM(CASE statement is used, then the effective type might be different

+     */

+    public void testAggregateWithCase() {

+        EntityManager em = emf.createEntityManager();

+

+        // Add a row to the table and re-test

+        em.getTransaction().begin();

+        AggEntity ae = new AggEntity();

+        ae.init();

+        ae.setStringVal("bare");

+        em.persist(ae);

+        AggEntity ae2 = new AggEntity();

+        ae2.init();

+        ae2.setStringVal("foot");

+        em.persist(ae2);

+        em.getTransaction().commit();

+

+/*X

+        em.getTransaction().begin();

+        final TypedQuery<Long> q2 = em.createQuery("select SUM(ae.intVal) from AggEntity AS ae", Long.class);

+        final Long sum = q2.getSingleResult();

+        assertEquals(2L, (long) sum);

+*/

+

+        final TypedQuery<Long> q = em.createQuery("select SUM(CASE ae.stringVal WHEN 'bare' THEN 1 ELSE 0 END) from AggEntity AS ae", Long.class);

+        final Long sumC = q.getSingleResult();

+        assertEquals(1L, (long) sumC);

+

+        em.getTransaction().commit();

+

+        em.close();

+    }

+

     public void testAggregateCriteria() {

         EntityManager em = emf.createEntityManager();

         Metamodel mm = emf.getMetamodel();

diff --git a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/query/TestAggregateQueryWithNoResult.java b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/query/TestAggregateQueryWithNoResult.java
index 104a32f..febefb0 100644
--- a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/query/TestAggregateQueryWithNoResult.java
+++ b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/jdbc/query/TestAggregateQueryWithNoResult.java
@@ -37,15 +37,15 @@
  */
 public class TestAggregateQueryWithNoResult extends SingleEMFTestCase {
     EntityManager em;
-	@Override
+
+    @Override
     public void setUp() {
         super.setUp(CLEAR_TABLES,
                 "openjpa.Compatibility", "ReturnNullOnAggregateResult=false",  //OPENJPA-1794
-                Game.class, IndoorGame.class, Scrabble.class,
-				Chess.class);
+                Game.class, IndoorGame.class, Scrabble.class, Chess.class);
         em = emf.createEntityManager();
         assertTrue(em.createQuery("select p from Scrabble p").getResultList().isEmpty());
-	}
+    }
 
 
     public void testSumWithNoResult() {