1 28 29 package com.idaremedia.antx.feedback.tests; 30 31 import java.text.DateFormat ; 32 33 import org.apache.log4j.Logger; 34 import org.apache.log4j.LogManager; 35 import org.apache.log4j.spi.RendererSupport; 36 37 import com.idaremedia.antx.ErrorSnapshot; 38 import com.idaremedia.antx.feedback.ErrorSnapshotRenderer; 39 import com.idaremedia.antx.helpers.DateTimeFormat; 40 import com.idaremedia.antx.ut.HTC; 41 42 43 52 53 public abstract class EmitTestSkeleton extends HTC 54 { 55 58 public EmitTestSkeleton(String grpId,String methodName) 59 { 60 super(grpId,methodName); 61 } 62 63 64 68 protected DateFormat m_dateFormatter; 69 protected EchoAppender m_testAppender=null; 70 protected String m_testLoggerCategory=null; 71 72 73 protected final Logger whichLogger(String grpId) 74 { 75 return (grpId==null) ? Logger.getRootLogger() : Logger.getLogger(grpId); 76 } 77 78 protected final EchoAppender testAppender() 79 { 80 assertNotNil(m_testAppender,"Attached Test Appender"); 81 return m_testAppender; 82 } 83 84 protected final int getIntegerProperty(String pn) 85 { 86 String s = getProject().getProperty(pn); 87 try { 88 return Integer.parseInt(s); 89 } catch(Exception anyX) { 90 fail("Unable to parse number-property("+pn+" = "+s+")"); 91 } 92 return 0; } 94 95 protected final String getTodayString() 96 { 97 return m_dateFormatter.format(new java.util.Date ()); 98 } 99 100 protected void attachTestAppender(String grpId) 101 { 102 Logger l = whichLogger(grpId); 103 EchoAppender echo = new EchoAppender(); 104 l.addAppender(echo); 105 m_testAppender = echo; 106 m_testLoggerCategory = grpId; 107 } 108 109 protected String runEchoedTarget(String target) 110 { 111 attachTestAppender("jware"); 112 String antLog= runTarget(target); 113 println("\nLog4J's Appender LLLOOOGGG: ----",testAppender().getLog()); 114 return antLog; 115 } 116 117 protected String runEchoedTarget(String target, String grpId) 118 { 119 attachTestAppender(grpId); 120 String antLog= runTarget(target); 121 println("\nLog4J's Appender LLLOOOGGG: ----",testAppender().getLog()); 122 return antLog; 123 } 124 125 protected final void ensureErrorSnapshotRendererInstalled() 126 { 127 131 Logger lgr= LogManager.getRootLogger(); 132 if (lgr.getLoggerRepository() instanceof RendererSupport) { 133 RendererSupport api = (RendererSupport)lgr.getLoggerRepository(); 134 Object r = api.getRendererMap().get(ErrorSnapshot.class); 135 if (!(r instanceof ErrorSnapshotRenderer)) { 136 println("[***] Installing ErrorSnapshot ObjectRenderer!"); 137 api.setRenderer(ErrorSnapshot.class, new ErrorSnapshotRenderer()); 138 } 139 } 140 } 141 142 protected void setUp() throws Exception 143 { 144 super.setUp(); 145 ensureErrorSnapshotRendererInstalled(); 146 configureProjectFromResource(getDefaultConfigureXMLFileName()); 147 m_dateFormatter = (DateFormat )DateTimeFormat.ABBREV_DATE.clone(); 148 } 149 150 protected void tearDown() throws Exception 151 { 152 if (m_testAppender!=null) { 153 Logger l= whichLogger(m_testLoggerCategory); 154 l.removeAppender(m_testAppender); 155 } 156 super.tearDown(); 157 } 158 159 protected abstract String getDefaultConfigureXMLFileName(); 160 161 165 public void checkBaseline() 166 { 167 } 169 170 public void testBaseline() 171 { 172 checkBaseline(); 173 } 174 } 175 176 177 | Popular Tags |