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()); } } }