Ignore:
Timestamp:
07/08/15 13:09:44 (9 years ago)
Author:
sherbold
Message:
  • SimpleSOAPEventType can now either be a request or a response and contains the appropriate soap message body
  • SOAPUtils offer function to convert SOAPEventType into SimpleSOAPEventType and meanwhile split into request and response and sort the SimpleSOAPEvents in the appropriate order
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/autoquest-plugin-http/src/main/java/de/ugoe/cs/autoquest/plugin/http/eventcore/SimpleSOAPEventType.java

    r1988 r1993  
    3838public class SimpleSOAPEventType implements IEventType { 
    3939 
     40    /** 
     41     * <p> 
     42     * Defines if this event represents an request or an response. 
     43     * </p> 
     44     *  
     45     * @author Steffen Herbold 
     46     */ 
     47    public enum CallType { 
     48        REQUEST, RESPONSE 
     49    } 
     50 
    4051    /**  */ 
    4152    private static final long serialVersionUID = 1L; 
     
    6576    /** 
    6677     * <p> 
    67      * the body of the SOAP request; storage as serialized XML string to allow object serialization 
    68      * </p> 
    69      */ 
    70     private final String soapRequestBody; 
    71      
    72     /** 
    73      * TODO 
    74      */ 
    75     private final EqualSOAPDataMap equalRequestsMap; 
     78     * the body of the SOAP message; storage as serialized XML string to allow object serialization 
     79     * </p> 
     80     */ 
     81    private final String soapMsgBody; 
     82 
     83    /** 
     84     * <p> 
     85     * defines whether this event represents a request or a response 
     86     * </p> 
     87     */ 
     88    private final CallType callType; 
     89 
     90    /** 
     91     * reference to the {@link EqualSOAPDataMap} associated with the sequence this event belongs to. 
     92     */ 
     93    private final EqualSOAPDataMap equalBodyMap; 
    7694 
    7795    /** 
     
    84102                               String serviceName, 
    85103                               String clientName, 
    86                                Element soapRequestBody) 
     104                               Element soapMsgBody) 
    87105    { 
    88         this(calledMethod, serviceName, clientName, soapRequestBody, null); 
    89     } 
    90      
    91     /** 
    92      * <p> 
    93      * Constructor. Creates a new SimpleSOAPEventType with a EqualSOAPDATAMap.  
     106        this(calledMethod, serviceName, clientName, soapMsgBody, null, CallType.REQUEST); 
     107    } 
     108 
     109    /** 
     110     * <p> 
     111     * Constructor. Creates a new SimpleSOAPEventType with a EqualSOAPDATAMap. 
    94112     * </p> 
    95113     *  
     
    98116                               String serviceName, 
    99117                               String clientName, 
    100                                Element soapRequestBody, 
     118                               Element soapMsgBody, 
    101119                               EqualSOAPDataMap equalRequestsMap) 
     120    { 
     121        this(calledMethod, serviceName, clientName, soapMsgBody, equalRequestsMap, 
     122             CallType.REQUEST); 
     123    } 
     124 
     125    /** 
     126     * <p> 
     127     * Constructor. Creates a new SimpleSOAPEventType with a EqualSOAPDATAMap. 
     128     * </p> 
     129     *  
     130     */ 
     131    public SimpleSOAPEventType(String calledMethod, 
     132                               String serviceName, 
     133                               String clientName, 
     134                               Element soapMsgBody, 
     135                               EqualSOAPDataMap equalRequestsMap, 
     136                               CallType callType) 
    102137    { 
    103138        if (calledMethod == null) { 
     
    113148        this.serviceName = serviceName; 
    114149        this.clientName = clientName; 
    115         this.soapRequestBody = SOAPUtils.getSerialization(soapRequestBody); 
    116         this.equalRequestsMap = equalRequestsMap; 
    117         if( equalRequestsMap!=null ) { 
    118             equalRequestsMap.add(this, this.soapRequestBody); 
     150        this.equalBodyMap = equalRequestsMap; 
     151        this.soapMsgBody = SOAPUtils.getSerialization(soapMsgBody); 
     152        this.callType = callType; 
     153 
     154        // this must be the last part of the constructor and only be called after all variables are 
     155        // initialized 
     156        if (equalRequestsMap != null) { 
     157            equalRequestsMap.add(this, this.soapMsgBody); 
    119158        } 
    120159    } 
     
    161200     * @return body of the SOAP request 
    162201     */ 
    163     public Element getSoapRequestBody() { 
    164         return createDOMElement(soapRequestBody); 
    165     } 
    166      
    167     /** 
    168      * <p> 
    169      * returns a randomly draw request body for the called method using {@link EqualSOAPDataMap#getRandom(SimpleSOAPEventType)} 
    170      * </p> 
    171      * 
     202    public Element getSoapMsgBody() { 
     203        return createDOMElement(soapMsgBody); 
     204    } 
     205 
     206    /** 
     207     * <p> 
     208     * returns a randomly draw request body for the called method using 
     209     * {@link EqualSOAPDataMap#getRandom(SimpleSOAPEventType)} 
     210     * </p> 
     211     *  
    172212     * @return randomly drawn body of the SOAP request 
    173213     */ 
    174     public Element getRandomSoapRequestBody() { 
    175         if( equalRequestsMap==null ) { 
    176             throw new RuntimeException("cannot use random mode is no request map is available; different data missing"); 
    177         } 
    178         return createDOMElement(equalRequestsMap.getRandom(this)); 
    179     } 
    180      
     214    public Element getRandomSoapMsgBody() { 
     215        if (equalBodyMap == null) { 
     216            throw new RuntimeException( 
     217                                       "cannot use random mode is no request map is available; different data missing"); 
     218        } 
     219        return createDOMElement(equalBodyMap.getRandom(this)); 
     220    } 
     221 
     222    /** 
     223     * <p> 
     224     * returns the {@link EqualSOAPDataMap} associated with this event 
     225     * </p> 
     226     *  
     227     * @return the {@link EqualSOAPDataMap} 
     228     */ 
    181229    public EqualSOAPDataMap getEqualSOAPDataMap() { 
    182         return equalRequestsMap; 
     230        return equalBodyMap; 
     231    } 
     232 
     233    public CallType getCallType() { 
     234        return callType; 
    183235    } 
    184236 
     
    190242    @Override 
    191243    public String getName() { 
    192         return "(" + serviceName + ", " + calledMethod + ")"; 
     244        return "(" + callType + ":" + clientName + "->" + serviceName + ", " + calledMethod + ")"; 
    193245    } 
    194246 
     
    204256        } 
    205257        else if (obj instanceof SimpleSOAPEventType) { 
    206             return HTTPUtils.equals(calledMethod, ((SimpleSOAPEventType) obj).calledMethod) && 
     258            return callType.equals(((SimpleSOAPEventType) obj).callType) && 
     259                HTTPUtils.equals(calledMethod, ((SimpleSOAPEventType) obj).calledMethod) && 
    207260                HTTPUtils.equals(serviceName, ((SimpleSOAPEventType) obj).serviceName) && 
    208261                HTTPUtils.equals(clientName, ((SimpleSOAPEventType) obj).clientName); 
     
    220273    @Override 
    221274    public int hashCode() { 
    222         int hashCode = calledMethod.hashCode() + serviceName.hashCode() + clientName.hashCode(); 
    223         return hashCode; 
     275        return callType.hashCode() + calledMethod.hashCode() + serviceName.hashCode() + 
     276            clientName.hashCode(); 
    224277    } 
    225278 
     
    231284    @Override 
    232285    public String toString() { 
    233         return "SimpleSOAPEventType(" + serviceName + ", " + calledMethod + ")"; 
     286        return "SimpleSOAPEventType" + getName(); 
    234287    } 
    235288 
     
    243296        } 
    244297    } 
    245 // 
    246 //    /** 
    247 //     * <p> 
    248 //     * Determines how getSoapRequestBody works. 
    249 //     * <ul> 
    250 //     * <li>LOCALEVENT: returns the request body of the event type itself</li> 
    251 //     * <li>RANDOM: returns a randomly draw request body for the called method using 
    252 //     * {@link EqualSOAPDataMap#getRandom(SimpleSOAPEventType)}. 
    253 //     * </ul> 
    254 //     * </p> 
    255 //     *  
    256 //     * @author Steffen Herbold 
    257 //     */ 
    258 //    public static enum RequestBodyMode { 
    259 //        LOCALEVENT, RANDOM 
    260 //    } 
    261298} 
Note: See TracChangeset for help on using the changeset viewer.