@Test
public void testStringArray() throws Exception {

	Map<String,Object> inputMap = new HashMap<String, Object>();
	
	BodyBuilder builder = createBuilder(wsdlResourcePath("TestServices-rpcencoded.wsdl"), "countStringArray");
	
	assertTrue("Wrong type of builder created",builder instanceof EncodedBodyBuilder);
	List<String> array = new ArrayList<String>();
	array.add("one");
	array.add("two");
	array.add("three");
	inputMap.put("array", array);
	SOAPElement body = builder.build(inputMap);
               
               Iterator<SOAPElement> children = body.getChildElements();
               assertTrue("missing body element", children.hasNext());
               SOAPElement child = children.next();
               assertTrue("wrong body element (must be '{}array')", "array".equals(child.getLocalName()) && child.getNamespaceURI() == null);
               String type = child.getAttributeNS(XMLConstants.W3C_XML_SCHEMA_INSTANCE_NS_URI, "type");
               assertNotNull("missing xsi:type", type);
               assertTrue("wrong xsi:type", "soapenc:Array".equals(type));
               Iterator<Element> elements = child.getChildElements();
               for (int i = 0, n = array.size(); i < n; i++) {
                   assertTrue("missing array element", elements.hasNext());
                   Element element = elements.next();
                   assertTrue("wrong array element (must be '{}string')", "string".equals(element.getLocalName()) && element.getNamespaceURI() == null);
                   assertTrue("wrong array text content", array.get(i).equals(element.getTextContent()));
               }
}