1 16 package scriptella.execution; 17 18 import scriptella.DBTestCase; 19 import scriptella.configuration.QueryEl; 20 import scriptella.configuration.ScriptEl; 21 22 import java.text.DecimalFormat ; 23 import java.util.Collection ; 24 import java.util.Map ; 25 26 27 33 public class ExecutionStatisticsTest extends DBTestCase { 34 public void test() throws EtlExecutorException { 35 final EtlExecutor se = newEtlExecutor(); 36 final ExecutionStatistics s = se.execute(); 37 Map <String , Integer > cats = s.getCategoriesStatistics(); 38 assertEquals(2, cats.size()); 39 assertEquals(3, cats.get(ScriptEl.TAG_NAME).intValue()); 40 assertEquals(2, cats.get(QueryEl.TAG_NAME).intValue()); 41 assertEquals(12, s.getExecutedStatementsCount()); 43 final Collection <ExecutionStatistics.ElementInfo> elements = s.getElements(); 44 45 for (ExecutionStatistics.ElementInfo info : elements) { 46 assertTrue("Negative working time: "+info.getWorkingTime(), info.getWorkingTime()>=0); 47 if ("/etl/script[1]".equals(info.getId())) { 48 assertEquals(1, info.getSuccessfulExecutionCount()); 49 assertEquals(0, info.getFailedExecutionCount()); 50 assertEquals(4, info.getStatementsCount()); 51 } else if ("/etl/query[1]/query[1]/script[1]".equals( 52 info.getId())) { 53 assertEquals(2, info.getSuccessfulExecutionCount()); 54 assertEquals(0, info.getFailedExecutionCount()); 55 assertEquals(2, info.getStatementsCount()); } else if ("/etl/query[1]/query[1]".equals(info.getId())) { 57 assertEquals(2, info.getSuccessfulExecutionCount()); 58 assertEquals(0, info.getFailedExecutionCount()); 59 assertEquals(2, info.getStatementsCount()); 60 } else if ("/etl/query[1]".equals(info.getId())) { 61 assertEquals(1, info.getSuccessfulExecutionCount()); 62 assertEquals(0, info.getFailedExecutionCount()); 63 assertEquals(1, info.getStatementsCount()); 64 } else if ("/etl/script[2]".equals(info.getId())) { 65 assertEquals(1, info.getSuccessfulExecutionCount()); 66 assertEquals(0, info.getFailedExecutionCount()); 67 assertEquals(3, info.getStatementsCount()); 68 } else { 69 fail("Unrecognized statistic element " + info.getId()); 70 } 71 } 72 } 73 74 public void test2() throws EtlExecutorException { 75 final EtlExecutor se = newEtlExecutor( 76 "ExecutionStatisticsTest2.xml"); 77 final ExecutionStatistics s = se.execute(); 78 Map <String , Integer > cats = s.getCategoriesStatistics(); 79 assertEquals(2, cats.size()); 80 assertEquals(4, cats.get("script").intValue()); 81 assertEquals(1, cats.get("query").intValue()); 82 83 final Collection <ExecutionStatistics.ElementInfo> elements = s.getElements(); 84 85 for (ExecutionStatistics.ElementInfo info : elements) { 86 if ("/etl/script[1]".equals(info.getId())) { 87 assertEquals(1, info.getSuccessfulExecutionCount()); 88 assertEquals(0, info.getFailedExecutionCount()); 89 } else if ("/etl/query[1]/script[1]".equals(info.getId())) { 90 assertEquals(0, info.getSuccessfulExecutionCount()); 91 assertEquals(2, info.getFailedExecutionCount()); 92 } else if ("/etl/query[1]/script[2]".equals(info.getId())) { 93 assertEquals(2, info.getSuccessfulExecutionCount()); 94 assertEquals(0, info.getFailedExecutionCount()); 95 } else if ("/etl/query[1]".equals(info.getId())) { 96 assertEquals(1, info.getSuccessfulExecutionCount()); 97 assertEquals(0, info.getFailedExecutionCount()); 98 } else if ("/etl/script[2]".equals(info.getId())) { 99 assertEquals(1, info.getSuccessfulExecutionCount()); 100 assertEquals(0, info.getFailedExecutionCount()); 101 } else { 102 fail("Unrecognized statistic element " + info.getId()); 103 } 104 } 105 } 106 107 public void test3() throws EtlExecutorException { 108 final EtlExecutor se = newEtlExecutor( 109 "ExecutionStatisticsTest3.xml"); 110 final ExecutionStatistics s = se.execute(); 111 Map <String , Integer > cats = s.getCategoriesStatistics(); 112 assertEquals(2, cats.size()); 113 assertEquals(2, cats.get("script").intValue()); 114 assertEquals(2, cats.get("query").intValue()); 115 assertEquals(9, s.getExecutedStatementsCount()); 117 final Collection <ExecutionStatistics.ElementInfo> elements = s.getElements(); 118 119 for (ExecutionStatistics.ElementInfo info : elements) { 120 if ("/etl/script[1]".equals(info.getId())) { 121 assertEquals(1, info.getSuccessfulExecutionCount()); 122 assertEquals(0, info.getFailedExecutionCount()); 123 assertEquals(4, info.getStatementsCount()); 124 } else if ("/etl/query[1]/query[1]/script[1]".equals( 125 info.getId())) { 126 assertEquals(2, info.getSuccessfulExecutionCount()); 127 assertEquals(0, info.getFailedExecutionCount()); 128 assertEquals(2, info.getStatementsCount()); } else if ("/etl/query[1]/query[1]".equals(info.getId())) { 130 assertEquals(2, info.getSuccessfulExecutionCount()); 131 assertEquals(0, info.getFailedExecutionCount()); 132 assertEquals(2, info.getStatementsCount()); 133 } else if ("/etl/query[1]".equals(info.getId())) { 134 assertEquals(1, info.getSuccessfulExecutionCount()); 135 assertEquals(0, info.getFailedExecutionCount()); 136 assertEquals(1, info.getStatementsCount()); 137 } else { 138 fail("Unrecognized statistic element " + info.getId()); 139 } 140 } 141 } 142 143 146 public void testTotalTime() throws EtlExecutorException { 147 DecimalFormat f = new DecimalFormat (ExecutionStatistics.DOUBLE_FORMAT_PTR); 148 char sep = f.getDecimalFormatSymbols().getDecimalSeparator(); 149 150 long time = 288727350; StringBuilder sb = new StringBuilder (); 152 ExecutionStatistics.appendTotalTimeDuration(time, sb, f); 153 assertEquals(" 3 days 8 hours 12 minutes 7"+sep+"35 seconds", sb.toString()); 154 time = 3605001; sb = new StringBuilder (); 156 ExecutionStatistics.appendTotalTimeDuration(time, sb, f); 157 assertEquals(" 1 hour 5 seconds", sb.toString()); 158 time = 800; sb = new StringBuilder (); 160 ExecutionStatistics.appendTotalTimeDuration(time, sb, f); 161 assertEquals(" 0,8 second", sb.toString()); 162 time = 1000; sb = new StringBuilder (); 164 ExecutionStatistics.appendTotalTimeDuration(time, sb, f); 165 assertEquals(" 1 second", sb.toString()); 166 } 167 168 } 169
| Popular Tags
|