1 19 package za.org.coefficient.util.testing; 20 21 import java.io.IOException ; 22 import java.io.Serializable ; 23 24 import java.util.HashMap ; 25 import java.util.Map ; 26 27 import org.apache.commons.collections.ExtendedProperties; 28 import org.apache.commons.fileupload.FileUploadException; 29 30 import za.org.coefficient.authentication.CoefficientUser; 31 import za.org.coefficient.core.BaseCoefficientContext; 32 import za.org.coefficient.core.Constants; 33 import za.org.coefficient.util.common.BaseMultipartRequest; 34 import za.org.coefficient.util.common.InvokerFactory; 35 36 47 public class CoefficientTestingContext extends BaseCoefficientContext 48 implements Serializable 49 { 50 51 private static final String REQUEST_DATA_KEY = "request.data"; 52 private static final String REQUEST_ATTR_KEY = "request.attribute"; 53 private static final String SESSION_KEY = "session.data"; 54 private static final String USERNAME_KEY = "user.username"; 55 56 61 public CoefficientTestingContext(String filename) throws IOException { 62 this(new ExtendedProperties(filename)); 63 } 64 65 71 public CoefficientTestingContext(String filename, Map fileUploadData) throws IOException { 72 this(new ExtendedProperties(filename), fileUploadData); 73 } 74 75 79 public CoefficientTestingContext(ExtendedProperties properties){ 80 this(properties.subset(SESSION_KEY), properties.subset(REQUEST_DATA_KEY), properties.subset(REQUEST_ATTR_KEY), new HashMap ()); 81 setupUser(properties); 82 } 83 84 89 public CoefficientTestingContext(ExtendedProperties properties, Map fileUploadData){ 90 this(properties.subset(SESSION_KEY), properties.subset(REQUEST_DATA_KEY), properties.subset(REQUEST_ATTR_KEY), fileUploadData); 91 setupUser(properties); 92 } 93 94 101 public CoefficientTestingContext(Map session, Map requestData, Map requestAttributes){ 102 this(session, requestData, requestAttributes, new HashMap ()); 103 } 104 105 112 public CoefficientTestingContext(Map session, Map requestData, Map requestAttributes, Map fileUploadData){ 113 super(); 114 this.session = session; 115 this.requestData = requestData; 116 this.requestAttributes = requestAttributes; 117 this.fileUploadData = fileUploadData; 118 } 119 120 123 public BaseMultipartRequest getMultipartRequest() throws FileUploadException { 124 return new TestingMultipartRequest(fileUploadData, requestData); 125 } 126 127 130 public String getRequestURL() { 131 return "TESTING"; 132 } 133 134 private void setupUser(ExtendedProperties properties){ 135 String username = properties.getString(USERNAME_KEY); 136 if (username != null && username.length() > 0){ 137 CoefficientUser user = null; 138 try { 139 user = (CoefficientUser)InvokerFactory 140 .getRemoteInvoker().invokeMethodOnModule("UserAdmin", 141 "findUserForName", new Object [] {username}); 142 } catch (Exception e) { 143 e.printStackTrace(); 144 } 145 146 if (user == null){ 147 throw new RuntimeException ("INVALID USER: User " + username 148 + " not found"); 149 } 150 setSessionAttribute(Constants.USER_SESSION_STRING, user); 151 } 152 } 153 154 } 155 | Popular Tags |