blob: d74d5f5d0f99b63bfeacc988a820c588f5d6b16d [file] [log] [blame]
/*
* 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.axis2.schema.innerChoice;
import com.mynamespace.testinnerparticle.TestInnerParticle1Sequence_type0;
import junit.framework.TestCase;
import org.apache.axiom.om.OMAbstractFactory;
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.util.StAXUtils;
import org.apache.axis2.databinding.utils.writer.MTOMAwareXMLSerializer;
import org.apache.axis2.databinding.utils.writer.MTOMAwareXMLStreamWriter;
import test.axis2.apache.org.*;
import javax.xml.stream.XMLStreamReader;
import javax.xml.stream.XMLStreamWriter;
import java.io.ByteArrayInputStream;
public class InnerChoiceTest extends TestCase {
public void testInnerChoice1() {
TestInnerSequence1 testSequence = new TestInnerSequence1();
testSequence.setSequence1("test sequence");
testSequence.setSequence2(3);
TestInnerSequence1Choice_type0 TestInnerSequence1Choice_type0 = new TestInnerSequence1Choice_type0();
TestInnerSequence1Choice_type0.setChoice1("test choice");
TestInnerSequence1Choice_type0.setChoice2(5);
testSequence.setTestInnerSequence1Choice_type0(TestInnerSequence1Choice_type0);
try {
OMElement omElement = testSequence.getOMElement(TestInnerSequence1.MY_QNAME,
OMAbstractFactory.getSOAP12Factory());
String omElementString = omElement.toStringWithConsume();
System.out.println("OMelement ==> " + omElementString);
XMLStreamReader xmlReader = StAXUtils.createXMLStreamReader(new ByteArrayInputStream(omElementString.getBytes()));
TestInnerSequence1 result = TestInnerSequence1.Factory.parse(xmlReader);
assertEquals(result.getSequence1(), "test sequence");
assertEquals(result.getSequence2(), 3);
assertEquals(result.getTestInnerSequence1Choice_type0().getChoice2(), 5);
// writtig result back
XMLStreamWriter xmlStreamWriter = StAXUtils.createXMLStreamWriter(System.out);
MTOMAwareXMLStreamWriter mtomAwareXMLStreamWriter = new MTOMAwareXMLSerializer(xmlStreamWriter);
result.serialize(new javax.xml.namespace.QName("org.apache.axis2.test", "TestInnerSequence1", "foo")
, OMAbstractFactory.getSOAP11Factory(), mtomAwareXMLStreamWriter);
xmlStreamWriter.flush();
} catch (Exception e) {
fail();
}
}
public void testInnerChoice21() {
TestInnerSequence2 testSequence = new TestInnerSequence2();
testSequence.setSequence1("sequence");
testSequence.setSequence2(3);
TestInnerSequence2Choice_type0 testInnerSequence2Choice_type1 = new TestInnerSequence2Choice_type0();
testInnerSequence2Choice_type1.setChoice1(new String[]{"choice1", "choice2"});
testSequence.setTestInnerSequence2Choice_type0(testInnerSequence2Choice_type1);
try {
OMElement omElement = testSequence.getOMElement(TestInnerSequence2.MY_QNAME,
OMAbstractFactory.getSOAP12Factory());
String omElementString = omElement.toStringWithConsume();
System.out.println("OMelement ==> " + omElementString);
XMLStreamReader xmlReader = StAXUtils.createXMLStreamReader(new ByteArrayInputStream(omElementString.getBytes()));
TestInnerSequence2 result = TestInnerSequence2.Factory.parse(xmlReader);
assertEquals(result.getSequence1(), "sequence");
assertEquals(result.getSequence2(), 3);
assertTrue(isEqual(result.getTestInnerSequence2Choice_type0().getChoice1(), new String[]{"choice1", "choice2"}));
} catch (Exception e) {
fail();
}
}
public void testInnerChoice22() {
TestInnerSequence2 testSequence = new TestInnerSequence2();
testSequence.setSequence1("sequence");
testSequence.setSequence2(3);
TestInnerSequence2Choice_type0 testInnerSequence2Choice_type1 = new TestInnerSequence2Choice_type0();
testInnerSequence2Choice_type1.setChoice2(new int[]{2, 4});
testSequence.setTestInnerSequence2Choice_type0(testInnerSequence2Choice_type1);
try {
OMElement omElement = testSequence.getOMElement(TestInnerSequence2.MY_QNAME,
OMAbstractFactory.getSOAP12Factory());
String omElementString = omElement.toStringWithConsume();
System.out.println("OMelement ==> " + omElementString);
XMLStreamReader xmlReader = StAXUtils.createXMLStreamReader(new ByteArrayInputStream(omElementString.getBytes()));
TestInnerSequence2 result = TestInnerSequence2.Factory.parse(xmlReader);
assertEquals(result.getSequence1(), "sequence");
assertEquals(result.getSequence2(), 3);
assertTrue(isEqual(result.getTestInnerSequence2Choice_type0().getChoice2(), new int[]{2, 4}));
} catch (Exception e) {
fail();
}
}
public void testInnerChoice31() {
TestInnerSequence3 testSequence = new TestInnerSequence3();
testSequence.setSequence1("sequence");
testSequence.setSequence2(3);
TestInnerSequence3Choice_type0 testInnerSequence3Choice_type0 = new TestInnerSequence3Choice_type0();
testInnerSequence3Choice_type0.setChoice1(new String[]{"choice1", null, "choice2"});
testSequence.setTestInnerSequence3Choice_type0(testInnerSequence3Choice_type0);
try {
OMElement omElement = testSequence.getOMElement(TestInnerSequence3.MY_QNAME,
OMAbstractFactory.getSOAP12Factory());
String omElementString = omElement.toStringWithConsume();
System.out.println("OMelement ==> " + omElementString);
XMLStreamReader xmlReader = StAXUtils.createXMLStreamReader(new ByteArrayInputStream(omElementString.getBytes()));
TestInnerSequence3 result = TestInnerSequence3.Factory.parse(xmlReader);
assertEquals(result.getSequence1(), "sequence");
assertEquals(result.getSequence2(), 3);
assertTrue(isEqual(result.getTestInnerSequence3Choice_type0().getChoice1(), new String[]{"choice1", null, "choice2"}));
} catch (Exception e) {
fail();
}
}
public void testInnerChoice32() {
TestInnerSequence3 testSequence = new TestInnerSequence3();
testSequence.setSequence1("sequence");
testSequence.setSequence2(3);
TestInnerSequence3Choice_type0 testInnerSequence3Choice_type0 = new TestInnerSequence3Choice_type0();
testInnerSequence3Choice_type0.setChoice2(new int[]{2, Integer.MIN_VALUE, 6});
testSequence.setTestInnerSequence3Choice_type0(testInnerSequence3Choice_type0);
try {
OMElement omElement = testSequence.getOMElement(TestInnerSequence3.MY_QNAME,
OMAbstractFactory.getSOAP12Factory());
String omElementString = omElement.toStringWithConsume();
System.out.println("OMelement ==> " + omElementString);
XMLStreamReader xmlReader = StAXUtils.createXMLStreamReader(new ByteArrayInputStream(omElementString.getBytes()));
TestInnerSequence3 result = TestInnerSequence3.Factory.parse(xmlReader);
assertEquals(result.getSequence1(), "sequence");
assertEquals(result.getSequence2(), 3);
assertTrue(isEqual(result.getTestInnerSequence3Choice_type0().getChoice2(), new int[]{2, Integer.MIN_VALUE, 6}));
} catch (Exception e) {
fail();
}
}
private boolean isEqual(String[] test1, String[] test2) {
boolean isEqual = true;
if (test1.length != test2.length) {
isEqual = false;
} else {
for (int i = 0; i < test1.length; i++) {
if (test1[i] != null) {
if (!test1[i].equals(test2[i])) {
isEqual = false;
break;
}
} else {
if (test2[i] != null) {
isEqual = false;
break;
}
}
}
}
return isEqual;
}
private boolean isEqual(int[] test1, int[] test2) {
boolean isEqual = true;
if (test1.length != test2.length) {
isEqual = false;
} else {
for (int i = 0; i < test1.length; i++) {
if (test1[i] != test2[i]) {
isEqual = false;
break;
}
}
}
return isEqual;
}
}