1 16 package org.apache.jetspeed.test; 17 18 import java.io.File ; 19 import java.io.FileReader ; 20 21 import junit.framework.AssertionFailedError; 22 import junit.framework.TestResult; 23 24 import org.apache.commons.configuration.Configuration; 25 import org.apache.commons.configuration.PropertiesConfiguration; 26 import org.apache.commons.lang.exception.NestableRuntimeException; 27 import org.apache.jetspeed.om.profile.PSMLDocument; 28 import org.apache.jetspeed.om.profile.Portlets; 29 import org.apache.jetspeed.services.PsmlManager; 30 import org.apache.turbine.util.StringUtils; 31 import org.apache.turbine.util.TurbineConfig; 32 import org.exolab.castor.mapping.Mapping; 33 34 42 public abstract class HeadlessBaseTest extends JetspeedTestCase 43 { 44 45 public static final String WEBAPP_PATH = "webapp.path"; 46 public static final String TR_PROPS_PATH = "tr.props.path"; 47 public static final String TEST_CONF_RES = "org/apache/jetspeed/test/jetspeed_testconfig.properties"; 48 public static final String PSML_MAPPING = "psml.mapping"; 49 public static final String DIVIDER = "+=============================================================================+"; 50 52 53 57 private static TurbineConfig config = null; 58 private static final PropertiesConfiguration testConfig = new PropertiesConfiguration(); 59 60 protected TestResult testResult; 61 62 63 64 public HeadlessBaseTest( String name) 65 { 66 super(name); 67 } 68 69 70 74 public static Configuration getTestConfig() 75 { 76 return testConfig; 77 } 78 79 80 83 public void run(TestResult result) 84 { 85 result.startTest(this); 86 try 87 { 88 setUp(); 89 } 90 catch (Exception e) 91 { 92 throw new NestableRuntimeException("Error running TestCase setUp().", e); 93 } 94 try 95 { 96 runTest(); 97 } 98 catch (AssertionFailedError e) 99 { result.addFailure(this, e); 101 } 102 103 catch (Throwable e) 104 { result.addError(this, e); 106 } 107 finally 108 { 109 try 110 { 111 tearDown(); 112 } 113 catch (Exception e) 114 { 115 throw new NestableRuntimeException("Error running TestCase tearDown().", e); 116 } 117 } 118 } 119 120 121 122 123 129 130 protected void setUp() throws Exception 131 { 132 try 133 { 134 if(testConfig == null || config == null) 136 { 137 ClassLoader cl = Thread.currentThread().getContextClassLoader(); 138 System.out.println(cl.getResource(TEST_CONF_RES)); 139 testConfig.load(cl.getResourceAsStream(TEST_CONF_RES)); 140 System.out.println(testConfig.getString(WEBAPP_PATH)); 141 File webappUrl = new File (testConfig.getString(WEBAPP_PATH)); 142 System.out.println(webappUrl); 143 config = new TurbineConfig(webappUrl.getPath(), testConfig.getString(TR_PROPS_PATH)); 145 config.init(); 146 } 147 } 148 catch (Throwable e) 149 { 150 fail(StringUtils.stackTrace(e)); 151 } 152 153 super.setUp(); 154 } 155 156 public PSMLDocument getDocumentFromPath(String psmlFile) 157 { 158 print("Loading portlets from PSML file "+psmlFile); 159 160 Portlets rootset = null; 161 162 PSMLDocument doc = PsmlManager.getDocument(psmlFile); 163 rootset = doc.getPortlets(); 164 165 return doc; 166 } 167 168 public void saveDocument(PSMLDocument doc) 169 { 170 PsmlManager.saveDocument(doc); 171 } 172 173 174 175 public void savePortletsToPSML(String psmlFile, Portlets portlets) 176 { 177 print("Storing portlets to PSML file "+psmlFile); 178 179 Mapping mapping = null; 180 String mapFile = getProfileMappingFileName(); 181 print("Locating PSML file "+mapFile+"..."); 182 File map = new File (mapFile); 183 print("PSML file exists????: "+map.exists()); 184 Portlets rootset = null; 185 FileReader reader = null; 186 if (map.exists() && map.isFile() && map.canRead()) 187 { 188 189 try 190 { 191 } 192 catch(Exception e) 193 { 194 } 195 } 196 } 197 198 protected void print(Object obj) 199 { 200 if(testConfig.getBoolean("verbose")) 201 System.out.println("+ "+obj); 202 } 203 204 protected void printOk() 205 { 206 207 print("OK"); 208 209 } 210 211 protected void printOk(String linePrefix) 212 { 213 214 print(linePrefix+"OK"); 215 216 } 217 218 protected void printDivider() 219 { 220 if(testConfig.getBoolean("verbose")) 221 System.out.println(DIVIDER); 222 } 223 224 228 protected String getProfileMappingFileName() 229 { 230 return testConfig.getString(PSML_MAPPING); 231 } 232 233 } 234 | Popular Tags |