Author: veithen
Date: Sun Jun 29 21:06:52 2014
New Revision: 1606606

URL: http://svn.apache.org/r1606606
Log:
AXIOM-311:
* Generalize the TestGetChild/TestSetChild/TestSetChildVersionMismatch test 
cases so that they can be used to test getters/setters in SOAPEnvelope, 
SOAPBody, SOAPFaultCode and SOAPFaultSubCode as well.
* Remove old test cases made redundant by this change.
* Fixed a bug uncovered by the new tests.

Added:
    
webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/misc/
    
webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/misc/GetSetChildTestCase.java
   (with props)
    
webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/misc/TestGetChild.java
      - copied, changed from r1606561, 
webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/fault/TestGetChild.java
    
webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/misc/TestSetChild.java
      - copied, changed from r1606561, 
webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/fault/TestSetChild.java
    
webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/misc/TestSetChildVersionMismatch.java
      - copied, changed from r1606561, 
webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/fault/TestSetChildVersionMismatch.java
Removed:
    
webservices/axiom/trunk/modules/axiom-api/src/test/java/org/apache/axiom/soap/SOAPFaultCodeTestBase.java
    
webservices/axiom/trunk/modules/axiom-api/src/test/java/org/apache/axiom/soap/SOAPFaultSubCodeTestBase.java
    
webservices/axiom/trunk/modules/axiom-dom/src/test/java/org/apache/axiom/soap/impl/dom/SOAPFaultCodeTest.java
    
webservices/axiom/trunk/modules/axiom-dom/src/test/java/org/apache/axiom/soap/impl/dom/SOAPFaultSubCodeTest.java
    
webservices/axiom/trunk/modules/axiom-impl/src/test/java/org/apache/axiom/soap/impl/llom/SOAPFaultCodeTest.java
    
webservices/axiom/trunk/modules/axiom-impl/src/test/java/org/apache/axiom/soap/impl/llom/SOAPFaultSubCodeTest.java
    
webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/SOAPFaultChildAdapter.java
    
webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/fault/TestGetChild.java
    
webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/fault/TestSetChild.java
    
webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/fault/TestSetChildVersionMismatch.java
Modified:
    
webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/soap12/SOAP12FaultCodeImpl.java
    
webservices/axiom/trunk/modules/axiom-impl/src/main/java/org/apache/axiom/soap/impl/llom/soap12/SOAP12FaultCodeImpl.java
    
webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/SOAPElementTypeAdapter.java
    
webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/SOAPElementTypeAdapterFactory.java
    
webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/SOAPTestSuiteBuilder.java
    
webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/fault/TestChildOrder.java

Modified: 
webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/soap12/SOAP12FaultCodeImpl.java
URL: 
http://svn.apache.org/viewvc/webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/soap12/SOAP12FaultCodeImpl.java?rev=1606606&r1=1606605&r2=1606606&view=diff
==============================================================================
--- 
webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/soap12/SOAP12FaultCodeImpl.java
 (original)
+++ 
webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/soap12/SOAP12FaultCodeImpl.java
 Sun Jun 29 21:06:52 2014
@@ -65,7 +65,7 @@ public class SOAP12FaultCodeImpl extends
                     "Expecting SOAP 1.2 implementation of SOAP Fault Value. " +
                             "But received some other implementation");
         }
-        ElementHelper.setNewElement(this, value, value);
+        ElementHelper.setNewElement(this, getValue(), value);
     }
 
     // TODO: For compatibility with Axiom 1.2.x; remove in Axiom 1.3

Modified: 
webservices/axiom/trunk/modules/axiom-impl/src/main/java/org/apache/axiom/soap/impl/llom/soap12/SOAP12FaultCodeImpl.java
URL: 
http://svn.apache.org/viewvc/webservices/axiom/trunk/modules/axiom-impl/src/main/java/org/apache/axiom/soap/impl/llom/soap12/SOAP12FaultCodeImpl.java?rev=1606606&r1=1606605&r2=1606606&view=diff
==============================================================================
--- 
webservices/axiom/trunk/modules/axiom-impl/src/main/java/org/apache/axiom/soap/impl/llom/soap12/SOAP12FaultCodeImpl.java
 (original)
+++ 
webservices/axiom/trunk/modules/axiom-impl/src/main/java/org/apache/axiom/soap/impl/llom/soap12/SOAP12FaultCodeImpl.java
 Sun Jun 29 21:06:52 2014
@@ -67,7 +67,7 @@ public class SOAP12FaultCodeImpl extends
             throw new SOAPProcessingException(
                     "Expecting SOAP12FaultValueImpl, got " + value.getClass());
         }
-        ElementHelper.setNewElement(this, value, value);
+        ElementHelper.setNewElement(this, getValue(), value);
     }
 
     protected void checkParent(OMElement parent) throws 
SOAPProcessingException {

Modified: 
webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/SOAPElementTypeAdapter.java
URL: 
http://svn.apache.org/viewvc/webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/SOAPElementTypeAdapter.java?rev=1606606&r1=1606605&r2=1606606&view=diff
==============================================================================
--- 
webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/SOAPElementTypeAdapter.java
 (original)
+++ 
webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/SOAPElementTypeAdapter.java
 Sun Jun 29 21:06:52 2014
@@ -25,10 +25,22 @@ import org.apache.axiom.testutils.suite.
 
 @AdapterType
 public abstract class SOAPElementTypeAdapter implements Dimension {
+    public interface Getter {
+        OMElement invoke(OMElement parent);
+    }
+    
+    public interface Setter {
+        void invoke(OMElement parent, OMElement child);
+    }
+    
     private final Class<? extends OMElement> type;
+    private final Getter getter;
+    private final Setter setter;
     
-    SOAPElementTypeAdapter(Class<? extends OMElement> type) {
+    SOAPElementTypeAdapter(Class<? extends OMElement> type, Getter getter, 
Setter setter) {
         this.type = type;
+        this.getter = getter;
+        this.setter = setter;
     }
 
     public final void addTestParameters(MatrixTestCase testCase) {
@@ -39,6 +51,14 @@ public abstract class SOAPElementTypeAda
         return type;
     }
     
+    public final Getter getGetter() {
+        return getter;
+    }
+
+    public final Setter getSetter() {
+        return setter;
+    }
+
     public abstract OMElement create(SOAPFactory factory);
     public abstract OMElement create(SOAPFactory factory, SOAPElementType 
parentType, OMElement parent);
 }

Modified: 
webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/SOAPElementTypeAdapterFactory.java
URL: 
http://svn.apache.org/viewvc/webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/SOAPElementTypeAdapterFactory.java?rev=1606606&r1=1606605&r2=1606606&view=diff
==============================================================================
--- 
webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/SOAPElementTypeAdapterFactory.java
 (original)
+++ 
webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/SOAPElementTypeAdapterFactory.java
 Sun Jun 29 21:06:52 2014
@@ -23,6 +23,7 @@ import org.apache.axiom.soap.SOAPBody;
 import org.apache.axiom.soap.SOAPEnvelope;
 import org.apache.axiom.soap.SOAPFactory;
 import org.apache.axiom.soap.SOAPFault;
+import org.apache.axiom.soap.SOAPFaultClassifier;
 import org.apache.axiom.soap.SOAPFaultCode;
 import org.apache.axiom.soap.SOAPFaultDetail;
 import org.apache.axiom.soap.SOAPFaultNode;
@@ -32,11 +33,13 @@ import org.apache.axiom.soap.SOAPFaultSu
 import org.apache.axiom.soap.SOAPFaultText;
 import org.apache.axiom.soap.SOAPFaultValue;
 import org.apache.axiom.soap.SOAPHeader;
+import org.apache.axiom.ts.soap.SOAPElementTypeAdapter.Getter;
+import org.apache.axiom.ts.soap.SOAPElementTypeAdapter.Setter;
 
 public class SOAPElementTypeAdapterFactory implements 
AdapterFactory<SOAPElementType> {
     public void createAdapters(SOAPElementType type, Adapters adapters) {
         if (type == SOAPElementType.ENVELOPE) {
-            adapters.add(new SOAPElementTypeAdapter(SOAPEnvelope.class) {
+            adapters.add(new SOAPElementTypeAdapter(SOAPEnvelope.class, null, 
null) {
                 public OMElement create(SOAPFactory factory) {
                     return factory.createSOAPEnvelope();
                 }
@@ -48,7 +51,12 @@ public class SOAPElementTypeAdapterFacto
                 }
             });
         } else if (type == SOAPElementType.HEADER) {
-            adapters.add(new SOAPElementTypeAdapter(SOAPHeader.class) {
+            Getter getter = new Getter() {
+                public OMElement invoke(OMElement parent) {
+                    return ((SOAPEnvelope)parent).getHeader();
+                }
+            };
+            adapters.add(new SOAPElementTypeAdapter(SOAPHeader.class, getter, 
null) {
                 public OMElement create(SOAPFactory factory) {
                     return factory.createSOAPHeader();
                 }
@@ -60,7 +68,12 @@ public class SOAPElementTypeAdapterFacto
                 }
             });
         } else if (type == SOAPElementType.BODY) {
-            adapters.add(new SOAPElementTypeAdapter(SOAPBody.class) {
+            Getter getter = new Getter() {
+                public OMElement invoke(OMElement parent) {
+                    return ((SOAPEnvelope)parent).getBody();
+                }
+            };
+            adapters.add(new SOAPElementTypeAdapter(SOAPBody.class, getter, 
null) {
                 public OMElement create(SOAPFactory factory) {
                     return factory.createSOAPBody();
                 }
@@ -72,7 +85,12 @@ public class SOAPElementTypeAdapterFacto
                 }
             });
         } else if (type == SOAPElementType.FAULT) {
-            adapters.add(new SOAPElementTypeAdapter(SOAPFault.class) {
+            Getter getter = new Getter() {
+                public OMElement invoke(OMElement parent) {
+                    return ((SOAPBody)parent).getFault();
+                }
+            };
+            adapters.add(new SOAPElementTypeAdapter(SOAPFault.class, getter, 
null) {
                 public OMElement create(SOAPFactory factory) {
                     return factory.createSOAPFault();
                 }
@@ -84,7 +102,17 @@ public class SOAPElementTypeAdapterFacto
                 }
             });
         } else if (type == SOAPFaultChild.CODE) {
-            adapters.add(new SOAPFaultChildAdapter(SOAPFaultCode.class) {
+            Getter getter = new Getter() {
+                public OMElement invoke(OMElement parent) {
+                    return ((SOAPFault)parent).getCode();
+                }
+            };
+            Setter setter = new Setter() {
+                public void invoke(OMElement parent, OMElement child) {
+                    ((SOAPFault)parent).setCode((SOAPFaultCode)child);
+                }
+            };
+            adapters.add(new SOAPElementTypeAdapter(SOAPFaultCode.class, 
getter, setter) {
                 public OMElement create(SOAPFactory factory) {
                     return factory.createSOAPFaultCode();
                 }
@@ -93,18 +121,19 @@ public class SOAPElementTypeAdapterFacto
                         OMElement parent) {
                     return factory.createSOAPFaultCode((SOAPFault)parent);
                 }
-                
-                @Override
-                public OMElement get(SOAPFault fault) {
-                    return fault.getCode();
-                }
-
-                public void set(SOAPFault fault, OMElement element) {
-                    fault.setCode((SOAPFaultCode)element);
-                }
             });
         } else if (type == SOAPElementType.VALUE) {
-            adapters.add(new SOAPElementTypeAdapter(SOAPFaultValue.class) {
+            Getter getter = new Getter() {
+                public OMElement invoke(OMElement parent) {
+                    return ((SOAPFaultClassifier)parent).getValue();
+                }
+            };
+            Setter setter = new Setter() {
+                public void invoke(OMElement parent, OMElement child) {
+                    
((SOAPFaultClassifier)parent).setValue((SOAPFaultValue)child);
+                }
+            };
+            adapters.add(new SOAPElementTypeAdapter(SOAPFaultValue.class, 
getter, setter) {
                 public OMElement create(SOAPFactory factory) {
                     return factory.createSOAPFaultValue();
                 }
@@ -120,7 +149,17 @@ public class SOAPElementTypeAdapterFacto
                 }
             });
         } else if (type == SOAPElementType.SUB_CODE) {
-            adapters.add(new SOAPElementTypeAdapter(SOAPFaultSubCode.class) {
+            Getter getter = new Getter() {
+                public OMElement invoke(OMElement parent) {
+                    return ((SOAPFaultClassifier)parent).getSubCode();
+                }
+            };
+            Setter setter = new Setter() {
+                public void invoke(OMElement parent, OMElement child) {
+                    
((SOAPFaultClassifier)parent).setSubCode((SOAPFaultSubCode)child);
+                }
+            };
+            adapters.add(new SOAPElementTypeAdapter(SOAPFaultSubCode.class, 
getter, setter) {
                 public OMElement create(SOAPFactory factory) {
                     return factory.createSOAPFaultSubCode();
                 }
@@ -136,7 +175,17 @@ public class SOAPElementTypeAdapterFacto
                 }
             });
         } else if (type == SOAPFaultChild.REASON) {
-            adapters.add(new SOAPFaultChildAdapter(SOAPFaultReason.class) {
+            Getter getter = new Getter() {
+                public OMElement invoke(OMElement parent) {
+                    return ((SOAPFault)parent).getReason();
+                }
+            };
+            Setter setter = new Setter() {
+                public void invoke(OMElement parent, OMElement child) {
+                    ((SOAPFault)parent).setReason((SOAPFaultReason)child);
+                }
+            };
+            adapters.add(new SOAPElementTypeAdapter(SOAPFaultReason.class, 
getter, setter) {
                 public OMElement create(SOAPFactory factory) {
                     return factory.createSOAPFaultReason();
                 }
@@ -145,18 +194,9 @@ public class SOAPElementTypeAdapterFacto
                         OMElement parent) {
                     return factory.createSOAPFaultReason((SOAPFault)parent);
                 }
-                
-                @Override
-                public OMElement get(SOAPFault fault) {
-                    return fault.getReason();
-                }
-
-                public void set(SOAPFault fault, OMElement element) {
-                    fault.setReason((SOAPFaultReason)element);
-                }
             });
         } else if (type == SOAPElementType.TEXT) {
-            adapters.add(new SOAPElementTypeAdapter(SOAPFaultText.class) {
+            adapters.add(new SOAPElementTypeAdapter(SOAPFaultText.class, null, 
null) {
                 public OMElement create(SOAPFactory factory) {
                     return factory.createSOAPFaultText();
                 }
@@ -168,7 +208,17 @@ public class SOAPElementTypeAdapterFacto
                 }
             });
         } else if (type == SOAPFaultChild.NODE) {
-            adapters.add(new SOAPFaultChildAdapter(SOAPFaultNode.class) {
+            Getter getter = new Getter() {
+                public OMElement invoke(OMElement parent) {
+                    return ((SOAPFault)parent).getNode();
+                }
+            };
+            Setter setter = new Setter() {
+                public void invoke(OMElement parent, OMElement child) {
+                    ((SOAPFault)parent).setNode((SOAPFaultNode)child);
+                }
+            };
+            adapters.add(new SOAPElementTypeAdapter(SOAPFaultNode.class, 
getter, setter) {
                 public OMElement create(SOAPFactory factory) {
                     return factory.createSOAPFaultNode();
                 }
@@ -177,18 +227,19 @@ public class SOAPElementTypeAdapterFacto
                         OMElement parent) {
                     return factory.createSOAPFaultNode((SOAPFault)parent);
                 }
-                
-                @Override
-                public OMElement get(SOAPFault fault) {
-                    return fault.getNode();
-                }
-
-                public void set(SOAPFault fault, OMElement element) {
-                    fault.setNode((SOAPFaultNode)element);
-                }
             });
         } else if (type == SOAPFaultChild.ROLE) {
-            adapters.add(new SOAPFaultChildAdapter(SOAPFaultRole.class) {
+            Getter getter = new Getter() {
+                public OMElement invoke(OMElement parent) {
+                    return ((SOAPFault)parent).getRole();
+                }
+            };
+            Setter setter = new Setter() {
+                public void invoke(OMElement parent, OMElement child) {
+                    ((SOAPFault)parent).setRole((SOAPFaultRole)child);
+                }
+            };
+            adapters.add(new SOAPElementTypeAdapter(SOAPFaultRole.class, 
getter, setter) {
                 public OMElement create(SOAPFactory factory) {
                     return factory.createSOAPFaultRole();
                 }
@@ -197,18 +248,19 @@ public class SOAPElementTypeAdapterFacto
                         OMElement parent) {
                     return factory.createSOAPFaultRole((SOAPFault)parent);
                 }
-                
-                @Override
-                public OMElement get(SOAPFault fault) {
-                    return fault.getRole();
-                }
-
-                public void set(SOAPFault fault, OMElement element) {
-                    fault.setRole((SOAPFaultRole)element);
-                }
             });
         } else if (type == SOAPFaultChild.DETAIL) {
-            adapters.add(new SOAPFaultChildAdapter(SOAPFaultDetail.class) {
+            Getter getter = new Getter() {
+                public OMElement invoke(OMElement parent) {
+                    return ((SOAPFault)parent).getDetail();
+                }
+            };
+            Setter setter = new Setter() {
+                public void invoke(OMElement parent, OMElement child) {
+                    ((SOAPFault)parent).setDetail((SOAPFaultDetail)child);
+                }
+            };
+            adapters.add(new SOAPElementTypeAdapter(SOAPFaultDetail.class, 
getter, setter) {
                 public OMElement create(SOAPFactory factory) {
                     return factory.createSOAPFaultDetail();
                 }
@@ -217,15 +269,6 @@ public class SOAPElementTypeAdapterFacto
                         OMElement parent) {
                     return factory.createSOAPFaultDetail((SOAPFault)parent);
                 }
-                
-                @Override
-                public OMElement get(SOAPFault fault) {
-                    return fault.getDetail();
-                }
-
-                public void set(SOAPFault fault, OMElement element) {
-                    fault.setDetail((SOAPFaultDetail)element);
-                }
             });
         }
     }

Modified: 
webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/SOAPTestSuiteBuilder.java
URL: 
http://svn.apache.org/viewvc/webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/SOAPTestSuiteBuilder.java?rev=1606606&r1=1606605&r2=1606606&view=diff
==============================================================================
--- 
webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/SOAPTestSuiteBuilder.java
 (original)
+++ 
webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/SOAPTestSuiteBuilder.java
 Sun Jun 29 21:06:52 2014
@@ -192,15 +192,6 @@ public class SOAPTestSuiteBuilder extend
             addTest(new 
org.apache.axiom.ts.soap.fault.TestChildOrder(metaFactory, spec,
                     new SOAPFaultChild[] { SOAPFaultChild.CODE, 
SOAPFaultChild.REASON, SOAPFaultChild.DETAIL, SOAPFaultChild.REASON }, ss));
         }
-        for (SOAPElementType type : SOAPElementType.FAULT.getChildTypes()) {
-            if (type.getQName(spec) != null) {
-                addTest(new 
org.apache.axiom.ts.soap.fault.TestGetChild(metaFactory, spec, 
(SOAPFaultChild)type));
-                addTest(new 
org.apache.axiom.ts.soap.fault.TestSetChild(metaFactory, spec, 
(SOAPFaultChild)type));
-                if (type.getQName(spec.getAltSpec()) != null) {
-                    addTest(new 
org.apache.axiom.ts.soap.fault.TestSetChildVersionMismatch(metaFactory, spec, 
(SOAPFaultChild)type));
-                }
-            }
-        }
         addTest(new 
org.apache.axiom.ts.soap.fault.TestGetCodeWithParser(metaFactory, spec));
         addTest(new 
org.apache.axiom.ts.soap.fault.TestGetDetailWithParser(metaFactory, spec));
         addTest(new 
org.apache.axiom.ts.soap.fault.TestGetException(metaFactory, spec));
@@ -274,6 +265,23 @@ public class SOAPTestSuiteBuilder extend
         addTest(new 
org.apache.axiom.ts.soap.message.TestGetOMFactoryWithParser(metaFactory, spec));
         addTest(new 
org.apache.axiom.ts.soap.message.TestSetOMDocumentElement(metaFactory, spec));
         addTest(new 
org.apache.axiom.ts.soap.message.TestSetOMDocumentElementNonSOAPEnvelope(metaFactory,
 spec));
+        for (SOAPElementType type : SOAPElementType.getAll()) {
+            if (type.getQName(spec) != null) {
+                for (SOAPElementType childType : type.getChildTypes()) {
+                    if (childType.getQName(spec) != null) {
+                        if 
(childType.getAdapter(SOAPElementTypeAdapter.class).getGetter() != null) {
+                            addTest(new 
org.apache.axiom.ts.soap.misc.TestGetChild(metaFactory, spec, type, childType));
+                        }
+                        if 
(childType.getAdapter(SOAPElementTypeAdapter.class).getSetter() != null) {
+                            addTest(new 
org.apache.axiom.ts.soap.misc.TestSetChild(metaFactory, spec, type, childType));
+                            if (childType.getQName(spec.getAltSpec()) != null) 
{
+                                addTest(new 
org.apache.axiom.ts.soap.misc.TestSetChildVersionMismatch(metaFactory, spec, 
type, childType));
+                            }
+                        }
+                    }
+                }
+            }
+        }
         addTest(new 
org.apache.axiom.ts.soap.xpath.TestXPathAppliedToSOAPEnvelope(metaFactory, 
spec, true));
         addTest(new 
org.apache.axiom.ts.soap.xpath.TestXPathAppliedToSOAPEnvelope(metaFactory, 
spec, false));
     }

Modified: 
webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/fault/TestChildOrder.java
URL: 
http://svn.apache.org/viewvc/webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/fault/TestChildOrder.java?rev=1606606&r1=1606605&r2=1606606&view=diff
==============================================================================
--- 
webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/fault/TestChildOrder.java
 (original)
+++ 
webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/fault/TestChildOrder.java
 Sun Jun 29 21:06:52 2014
@@ -31,8 +31,8 @@ import org.apache.axiom.soap.SOAPFault;
 import org.apache.axiom.soap.SOAPFaultCode;
 import org.apache.axiom.soap.SOAPFaultReason;
 import org.apache.axiom.ts.dimension.serialization.SerializationStrategy;
+import org.apache.axiom.ts.soap.SOAPElementTypeAdapter;
 import org.apache.axiom.ts.soap.SOAPFaultChild;
-import org.apache.axiom.ts.soap.SOAPFaultChildAdapter;
 import org.apache.axiom.ts.soap.SOAPSpec;
 import org.apache.axiom.ts.soap.SOAPTestCase;
 import org.w3c.dom.Document;
@@ -59,7 +59,7 @@ public class TestChildOrder extends SOAP
             if (i>0) {
                 buffer.append(',');
             }
-            
buffer.append(inputOrder[i].getAdapter(SOAPFaultChildAdapter.class).getType().getSimpleName());
+            
buffer.append(inputOrder[i].getAdapter(SOAPElementTypeAdapter.class).getType().getSimpleName());
         }
         addTestParameter("inputOrder", buffer.toString());
         serializationStrategy.addTestParameters(this);
@@ -69,8 +69,8 @@ public class TestChildOrder extends SOAP
         SOAPFault fault = soapFactory.createSOAPFault();
         // Add the elements in the specified order.
         for (int i=0; i<inputOrder.length; i++) {
-            SOAPFaultChildAdapter adapter = 
inputOrder[i].getAdapter(SOAPFaultChildAdapter.class);
-            adapter.set(fault, adapter.create(soapFactory));
+            SOAPElementTypeAdapter adapter = 
inputOrder[i].getAdapter(SOAPElementTypeAdapter.class);
+            adapter.getSetter().invoke(fault, adapter.create(soapFactory));
         }
         // Calculate the order in which we expect to see the children. Note 
that a given type
         // may be added multiple times. Therefore we need to use a Set.

Added: 
webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/misc/GetSetChildTestCase.java
URL: 
http://svn.apache.org/viewvc/webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/misc/GetSetChildTestCase.java?rev=1606606&view=auto
==============================================================================
--- 
webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/misc/GetSetChildTestCase.java
 (added)
+++ 
webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/misc/GetSetChildTestCase.java
 Sun Jun 29 21:06:52 2014
@@ -0,0 +1,47 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.axiom.ts.soap.misc;
+
+import org.apache.axiom.om.OMElement;
+import org.apache.axiom.om.OMMetaFactory;
+import org.apache.axiom.ts.soap.SOAPElementType;
+import org.apache.axiom.ts.soap.SOAPElementTypeAdapter;
+import org.apache.axiom.ts.soap.SOAPSpec;
+import org.apache.axiom.ts.soap.SOAPTestCase;
+
+public abstract class GetSetChildTestCase extends SOAPTestCase {
+    protected final SOAPElementType type;
+    protected final SOAPElementType childType;
+
+    public GetSetChildTestCase(OMMetaFactory metaFactory, SOAPSpec spec, 
SOAPElementType type, SOAPElementType childType) {
+        super(metaFactory, spec);
+        this.type = type;
+        this.childType = childType;
+        addTestParameter("type", 
type.getAdapter(SOAPElementTypeAdapter.class).getType().getSimpleName());
+        addTestParameter("childType", 
childType.getAdapter(SOAPElementTypeAdapter.class).getType().getSimpleName());
+    }
+
+    @Override
+    protected final void runTest() throws Throwable {
+        
runTest(type.getAdapter(SOAPElementTypeAdapter.class).create(soapFactory),
+                childType.getAdapter(SOAPElementTypeAdapter.class));
+    }
+    
+    protected abstract void runTest(OMElement parent, SOAPElementTypeAdapter 
adapter);
+}

Propchange: 
webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/misc/GetSetChildTestCase.java
------------------------------------------------------------------------------
    svn:eol-style = native

Copied: 
webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/misc/TestGetChild.java
 (from r1606561, 
webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/fault/TestGetChild.java)
URL: 
http://svn.apache.org/viewvc/webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/misc/TestGetChild.java?p2=webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/misc/TestGetChild.java&p1=webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/fault/TestGetChild.java&r1=1606561&r2=1606606&rev=1606606&view=diff
==============================================================================
--- 
webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/fault/TestGetChild.java
 (original)
+++ 
webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/misc/TestGetChild.java
 Sun Jun 29 21:06:52 2014
@@ -16,32 +16,24 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.axiom.ts.soap.fault;
+package org.apache.axiom.ts.soap.misc;
 
 import org.apache.axiom.om.OMElement;
 import org.apache.axiom.om.OMMetaFactory;
-import org.apache.axiom.soap.SOAPFault;
 import org.apache.axiom.ts.soap.SOAPElementType;
-import org.apache.axiom.ts.soap.SOAPFaultChild;
-import org.apache.axiom.ts.soap.SOAPFaultChildAdapter;
+import org.apache.axiom.ts.soap.SOAPElementTypeAdapter;
 import org.apache.axiom.ts.soap.SOAPSpec;
-import org.apache.axiom.ts.soap.SOAPTestCase;
 
-public class TestGetChild extends SOAPTestCase {
-    private final SOAPFaultChild type;
-
-    public TestGetChild(OMMetaFactory metaFactory, SOAPSpec spec, 
SOAPFaultChild type) {
-        super(metaFactory, spec);
-        this.type = type;
-        type.getAdapter(SOAPFaultChildAdapter.class).addTestParameters(this);
+public class TestGetChild extends GetSetChildTestCase {
+    public TestGetChild(OMMetaFactory metaFactory, SOAPSpec spec, 
SOAPElementType type,
+            SOAPElementType childType) {
+        super(metaFactory, spec, type, childType);
     }
 
     @Override
-    protected void runTest() throws Throwable {
-        SOAPFaultChildAdapter adapter = 
type.getAdapter(SOAPFaultChildAdapter.class);
-        SOAPFault fault = soapFactory.createSOAPFault();
-        assertNull(adapter.get(fault));
-        OMElement child = adapter.create(soapFactory, SOAPElementType.FAULT, 
fault);
-        assertSame(child, adapter.get(fault));
+    protected void runTest(OMElement parent, SOAPElementTypeAdapter adapter) {
+        assertNull(adapter.getGetter().invoke(parent));
+        OMElement child = adapter.create(soapFactory, type, parent);
+        assertSame(child, adapter.getGetter().invoke(parent));
     }
 }

Copied: 
webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/misc/TestSetChild.java
 (from r1606561, 
webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/fault/TestSetChild.java)
URL: 
http://svn.apache.org/viewvc/webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/misc/TestSetChild.java?p2=webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/misc/TestSetChild.java&p1=webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/fault/TestSetChild.java&r1=1606561&r2=1606606&rev=1606606&view=diff
==============================================================================
--- 
webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/fault/TestSetChild.java
 (original)
+++ 
webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/misc/TestSetChild.java
 Sun Jun 29 21:06:52 2014
@@ -16,32 +16,25 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.axiom.ts.soap.fault;
+package org.apache.axiom.ts.soap.misc;
 
 import org.apache.axiom.om.OMElement;
 import org.apache.axiom.om.OMMetaFactory;
-import org.apache.axiom.soap.SOAPFault;
-import org.apache.axiom.ts.soap.SOAPFaultChild;
-import org.apache.axiom.ts.soap.SOAPFaultChildAdapter;
+import org.apache.axiom.ts.soap.SOAPElementType;
+import org.apache.axiom.ts.soap.SOAPElementTypeAdapter;
 import org.apache.axiom.ts.soap.SOAPSpec;
-import org.apache.axiom.ts.soap.SOAPTestCase;
 
-public class TestSetChild extends SOAPTestCase {
-    private final SOAPFaultChild type;
-
-    public TestSetChild(OMMetaFactory metaFactory, SOAPSpec spec, 
SOAPFaultChild type) {
-        super(metaFactory, spec);
-        this.type = type;
-        type.getAdapter(SOAPFaultChildAdapter.class).addTestParameters(this);
+public class TestSetChild extends GetSetChildTestCase {
+    public TestSetChild(OMMetaFactory metaFactory, SOAPSpec spec, 
SOAPElementType type,
+            SOAPElementType childType) {
+        super(metaFactory, spec, type, childType);
     }
 
     @Override
-    protected void runTest() throws Throwable {
-        SOAPFaultChildAdapter adapter = 
type.getAdapter(SOAPFaultChildAdapter.class);
-        SOAPFault fault = soapFactory.createSOAPFault();
+    protected void runTest(OMElement parent, SOAPElementTypeAdapter adapter) {
         OMElement child = adapter.create(soapFactory);
-        adapter.set(fault, child);
-        assertSame(child, adapter.get(fault));
-        assertSame(child, fault.getFirstOMChild());
+        adapter.getSetter().invoke(parent, child);
+        assertSame(child, adapter.getGetter().invoke(parent));
+        assertSame(child, parent.getFirstOMChild());
     }
 }

Copied: 
webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/misc/TestSetChildVersionMismatch.java
 (from r1606561, 
webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/fault/TestSetChildVersionMismatch.java)
URL: 
http://svn.apache.org/viewvc/webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/misc/TestSetChildVersionMismatch.java?p2=webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/misc/TestSetChildVersionMismatch.java&p1=webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/fault/TestSetChildVersionMismatch.java&r1=1606561&r2=1606606&rev=1606606&view=diff
==============================================================================
--- 
webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/fault/TestSetChildVersionMismatch.java
 (original)
+++ 
webservices/axiom/trunk/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/misc/TestSetChildVersionMismatch.java
 Sun Jun 29 21:06:52 2014
@@ -16,33 +16,26 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.axiom.ts.soap.fault;
+package org.apache.axiom.ts.soap.misc;
 
 import org.apache.axiom.om.OMElement;
 import org.apache.axiom.om.OMMetaFactory;
-import org.apache.axiom.soap.SOAPFault;
 import org.apache.axiom.soap.SOAPProcessingException;
-import org.apache.axiom.ts.soap.SOAPFaultChild;
-import org.apache.axiom.ts.soap.SOAPFaultChildAdapter;
+import org.apache.axiom.ts.soap.SOAPElementType;
+import org.apache.axiom.ts.soap.SOAPElementTypeAdapter;
 import org.apache.axiom.ts.soap.SOAPSpec;
-import org.apache.axiom.ts.soap.SOAPTestCase;
 
-public class TestSetChildVersionMismatch extends SOAPTestCase {
-    private final SOAPFaultChild type;
-
-    public TestSetChildVersionMismatch(OMMetaFactory metaFactory, SOAPSpec 
spec, SOAPFaultChild type) {
-        super(metaFactory, spec);
-        this.type = type;
-        type.getAdapter(SOAPFaultChildAdapter.class).addTestParameters(this);
+public class TestSetChildVersionMismatch extends GetSetChildTestCase {
+    public TestSetChildVersionMismatch(OMMetaFactory metaFactory, SOAPSpec 
spec,
+            SOAPElementType type, SOAPElementType childType) {
+        super(metaFactory, spec, type, childType);
     }
 
     @Override
-    protected void runTest() throws Throwable {
-        SOAPFaultChildAdapter adapter = 
type.getAdapter(SOAPFaultChildAdapter.class);
-        SOAPFault fault = soapFactory.createSOAPFault();
+    protected void runTest(OMElement parent, SOAPElementTypeAdapter adapter) {
         OMElement child = adapter.create(altSoapFactory);
         try {
-            adapter.set(fault, child);
+            adapter.getSetter().invoke(parent, child);
             fail("Expected SOAPProcessingException");
         } catch (SOAPProcessingException ex) {
             // Expected


Reply via email to