Clover coverage report -
Coverage timestamp: Sat Jul 7 2007 16:41:13 CEST
file stats: LOC: 77   Methods: 8
NCLOC: 52   Classes: 1
 
 Source file Conditionals Statements Methods TOTAL
DefaultTestCompletionListener.java 83.3% 100% 100% 97%
coverage coverage
 1    /**
 2    * JTRunner is free software; you can redistribute it and/or modify it under the
 3    * terms of the GNU General Public License as published by the Free Software
 4    * Foundation; either version 2, or (at your option) any later version.
 5    */
 6   
 7    package jtr.test.impl;
 8   
 9    import java.util.HashMap;
 10    import java.util.HashSet;
 11    import java.util.Map;
 12    import java.util.Set;
 13    import jtr.config.RegisteredFactories;
 14    import jtr.remote.test.NodeInfo;
 15    import jtr.test.ITestCompletionListener;
 16    import jtr.test.ITestResultDisplayer;
 17    import jtr.test.TestOutcomeTable;
 18    import jtr.ui.swing.TestRunningFrame;
 19   
 20    /**
 21    * Default implementation of the <code>ITestCompletionListener</code> contract.
 22    * @author frusso
 23    * @version 4.0
 24    * @since 4.0
 25    */
 26    public class DefaultTestCompletionListener implements ITestCompletionListener {
 27   
 28    /** Creates a new instance of DefaultTestCompletionListener */
 29  2 public DefaultTestCompletionListener() {
 30  2 nodes = new HashSet<NodeInfo>();
 31    }
 32   
 33  2 public void notifyTestCompletion(NodeInfo node, TestOutcomeTable outcome) {
 34  2 nodes.remove(node);
 35  2 feedbacker.updateGlobalTests(++notificationCounter);
 36  2 showResults(node,outcome);
 37  2 if(nodes.isEmpty())
 38  1 feedbacker.dispose();
 39    }
 40   
 41  2 public void addNode(NodeInfo node) {
 42  2 if(!nodes.contains(node))
 43  2 nodes.add(node);
 44    }
 45   
 46  1 public void provideFeedback(int testRuns, int remoteNodesNumber, int totalRuns) {
 47  1 feedbacker = new TestRunningFrame(0,testRuns,0,remoteNodesNumber+1,0,totalRuns);
 48  1 feedbacker.setVisible(true);
 49    }
 50   
 51  50 public void updateLocalEpochs(int progress) {
 52  50 feedbacker.updateLocalEpochs(progress);
 53    }
 54   
 55  22178 public void updateLocalRuns() {
 56  22178 feedbacker.updateLocalRuns();
 57    }
 58   
 59  2 private void showResults(NodeInfo node, TestOutcomeTable outcome) {
 60  2 if(displayer==null) {
 61  1 displayer = (ITestResultDisplayer) RegisteredFactories.getFactory(RegisteredFactories.ITEST_RESULT_DISPLAYER);
 62    }
 63  2 Map<NodeInfo, TestOutcomeTable> data = purgeOutcomes(node,outcome);
 64  2 displayer.showResults(data);
 65    }
 66   
 67  2 private Map<NodeInfo, TestOutcomeTable> purgeOutcomes(NodeInfo node, TestOutcomeTable outcome) {
 68  2 Map<NodeInfo, TestOutcomeTable> res = new HashMap<NodeInfo,TestOutcomeTable>();
 69  2 res.put(node,outcome);
 70  2 return res;
 71    }
 72   
 73    private TestRunningFrame feedbacker;
 74    private int notificationCounter = 0;
 75    private ITestResultDisplayer displayer;
 76    private Set<NodeInfo> nodes;
 77    }