Print

Print


Author: [log in to unmask]
Date: Fri Sep  4 15:17:00 2015
New Revision: 3528

Log:
Check collection ID values in 'pass1' for a series of runs.

Modified:
    java/trunk/conditions/src/test/java/org/hps/conditions/api/ConditionsTagTest.java

Modified: java/trunk/conditions/src/test/java/org/hps/conditions/api/ConditionsTagTest.java
 =============================================================================
--- java/trunk/conditions/src/test/java/org/hps/conditions/api/ConditionsTagTest.java	(original)
+++ java/trunk/conditions/src/test/java/org/hps/conditions/api/ConditionsTagTest.java	Fri Sep  4 15:17:00 2015
@@ -1,7 +1,8 @@
 package org.hps.conditions.api;
 
-import java.util.HashSet;
-import java.util.Set;
+import java.util.LinkedHashMap;
+import java.util.Map;
+import java.util.logging.Level;
 
 import junit.framework.TestCase;
 
@@ -20,13 +21,18 @@
 import org.hps.conditions.svt.SvtT0Shift.SvtT0ShiftCollection;
 import org.hps.conditions.svt.SvtTimingConstants.SvtTimingConstantsCollection;
 
+/**
+ * Get conditions from the database for a series of runs using a tag.
+ * Then check that the correct collection IDs were returned.
+ * 
+ * @author Jeremy McCormick, SLAC
+ *
+ */
 public class ConditionsTagTest extends TestCase {
-
-    private static final int[] RUNS = { 5037, 5038, 5066, 5076, 5139, 5149, 5174, 5181, 5200, 5218, 5236, 5251, 5253,
-        5263, 5299, 5310, 5375, 5388, 5389, 5400, 5404, 5533, 5538, 5558, 5575, 5596, 5601, 5603, 5610, 5623, 5640,
-        5641, 5642, 5673, 5686, 5711, 5712, 5713, 5714, 5722, 5747, 5748, 5779
-    };
-    
+   
+    /**
+     * The table names of the conditions to check.
+     */
     private static final String[] CONDITIONS = {
         "ecal_calibrations",
         "ecal_channels",
@@ -42,12 +48,15 @@
         "svt_timing_constants"
     };
     
+    /**
+     * The conditions types.
+     */
     private static final Class<?> TYPES[] = {
         EcalCalibrationCollection.class,
         EcalChannelCollection.class,
         EcalGainCollection.class,
         EcalTimeShiftCollection.class,
-        SvtAlignmentConstantCollection.class,
+        SvtAlignmentConstantCollection.class, 
         SvtCalibrationCollection.class,
         SvtChannelCollection.class,
         SvtDaqMappingCollection.class,
@@ -57,63 +66,73 @@
         SvtTimingConstantsCollection.class
     };
     
+    /**
+     * Build an answer key mapping run numbers to the list of expected collection IDs.
+     */
+    static Map<Integer, int[]> buildCollectionMap() {
+        Map<Integer, int[]> collectionMap = new LinkedHashMap<Integer, int[]>();
+        collectionMap.put(4823, new int[] {26, 2, 1022, 2, 1014, 3, 2, 2, 2, 1003, 1009, 1023});
+        collectionMap.put(5037, new int[] {26, 2, 1022, 2, 1011, 4, 2, 2, 2, 1003, 1009, 1023});
+        collectionMap.put(5076, new int[] {1005, 2, 1022, 2, 1013, 4, 2, 2, 2, 1003, 1009, 1023});
+        collectionMap.put(5218, new int[] {1008, 2, 1022, 2, 1014, 4, 2, 2, 2, 1003, 1009, 1024});
+        collectionMap.put(5400, new int[] {1008, 2, 1022, 2, 1014, 5, 2, 2, 2, 1003, 1009, 1023});
+        collectionMap.put(5550, new int[] {1008, 2, 1022, 2, 1010, 5, 2, 2, 2, 1003, 1009, 1024});
+        collectionMap.put(5772, new int[] {1008, 2, 1022, 2, 1012, 7, 2, 2, 2, 1003, 1009, 1029});
+        collectionMap.put(5797, new int[] {1008, 2, 1022, 2, 1012, 7, 2, 2, 2, 1003, 1009, 1029});
+        return collectionMap;
+    }
+    
+    /**
+     * Conditions manager instance.
+     */
     private static DatabaseConditionsManager MANAGER;      
-    
+   
+    /**
+     * Perform setup.
+     */
     @Override
     public void setUp() {
         // Configure the conditions system.
-        MANAGER = DatabaseConditionsManager.getInstance();
-        MANAGER.setConnectionResource("/org/hps/conditions/config/jeremym_dev_connection.prop");
-        MANAGER.setXmlConfig("/org/hps/conditions/config/conditions_database_no_svt.xml");
-        //MANAGER.setLogLevel(Level.WARNING);
+        MANAGER = DatabaseConditionsManager.getInstance();        
+        MANAGER.setXmlConfig("/org/hps/conditions/config/conditions_database_no_svt.xml");        
     }
     
-    public void testConditionsTag() throws Exception {
+    /**
+     * Run test using the 'pass1' tag.
+     * 
+     * @throws Exception if there is any uncaught error when running the method
+     */
+    public void testPass1Tag() throws Exception {
+                
+        MANAGER.setLogLevel(Level.WARNING);
         MANAGER.addTag("pass1");
-        for (int run : RUNS) {
+        
+        Map<Integer, int[]> collectionMap = buildCollectionMap();
+        
+        for (int run : collectionMap.keySet()) {
+            
             MANAGER.setDetector("HPS-conditions-test", run);
+            
             ConditionsRecordCollection conditionsRecordCollection = MANAGER.getConditionsRecords();
             System.out.println("run " + run + " has " + conditionsRecordCollection.size() + " conditions records");
             System.out.println(conditionsRecordCollection);
+            
+            int[] expectedCollectionIds = collectionMap.get(run);
+            
+            System.out.println("run " + run + " conditions");
             for (int i = 0; i < CONDITIONS.length; i++) {
-                try {
-                    BaseConditionsObjectCollection<?> conditionsObjectCollection = 
-                            BaseConditionsObjectCollection.class.cast(
-                                    MANAGER.getCachedConditions(TYPES[i], CONDITIONS[i]).getCachedData());
-                System.out.println("got collection " + conditionsObjectCollection.getTableMetaData().getTableName() + ":" 
+                // Get the conditions from the db.
+                BaseConditionsObjectCollection<?> conditionsObjectCollection = BaseConditionsObjectCollection.class.cast(
+                                MANAGER.getCachedConditions(TYPES[i], CONDITIONS[i]).getCachedData());
+                    
+                // Print collection info.
+                System.out.println(conditionsObjectCollection.getTableMetaData().getTableName() + ":" 
                         + conditionsObjectCollection.getCollectionId()
-                        + " with type " + conditionsObjectCollection.getTableMetaData().getCollectionClass().getName() 
-                        + " and " + conditionsObjectCollection.size() + " objects");
-                } catch (Exception e) {
-                    e.printStackTrace();
-                }
-            }
-        }
-    }
-    
-    public void testMultipleConditionsTags() throws Exception {
-        Set<String> tags = new HashSet<String>();
-        tags.add("pass1");
-        tags.add("dev");
-        tags.add("eng_run");
-        tags.add("derp");
-        
-        for (int run : RUNS) {
-            MANAGER.setDetector("HPS-conditions-test", run);
-            ConditionsRecordCollection conditionsRecordCollection = MANAGER.getConditionsRecords();
-            System.out.println("run " + run + " has " + conditionsRecordCollection.size());
-            System.out.println(conditionsRecordCollection);
-            for (int i = 0; i < CONDITIONS.length; i++) {
-                try {
-                    BaseConditionsObjectCollection<?> conditionsObjectCollection = 
-                            BaseConditionsObjectCollection.class.cast(
-                                    MANAGER.getCachedConditions(TYPES[i], CONDITIONS[i]).getCachedData());
-                System.out.println("got collection " + conditionsObjectCollection.getTableMetaData().getTableName() 
-                        + " with type " + conditionsObjectCollection.getTableMetaData().getCollectionClass().getName() 
-                        + " and " + conditionsObjectCollection.size() + " objects");
-                } catch (Exception e) {
-                    e.printStackTrace();
-                }
+                        + " of type " + conditionsObjectCollection.getTableMetaData().getCollectionClass().getName() 
+                        + " and size " + conditionsObjectCollection.size());
+                
+                // Check that the collection ID is correct according to answer key.
+                TestCase.assertEquals("Wrong collection ID found for " + TYPES[i].getName() + " condition.", expectedCollectionIds[i], conditionsObjectCollection.getCollectionId());                
             }
         }
     }