}
// bug 26790
public static void testComplexSetter() throws XmlException
{
XmlPurchaseOrderDocumentBean xdoc = XmlPurchaseOrderDocumentBean.Factory.parse(
"<purchase-order xmlns='http://openuri.org/easypo'>" +
"<customer>" +
"<name>David Bau</name>" +
"<address>100 Main Street</address>" +
"</customer>" +
"<date>2003-05-18T11:50:00</date>" +
"<line-item>" +
"<description>Red Candy</description>" +
"<per-unit-ounces>0.423</per-unit-ounces>" +
"<quantity>4</quantity>" +
"</line-item>" +
"<line-item>" +
"<description>Blue Candy</description>" +
"<per-unit-ounces>5.0</per-unit-ounces>" +
"<quantity>1</quantity>" +
"</line-item>" +
"</purchase-order>");
// test copy-within doc
XmlLineItemBean newItem = xdoc.getPurchaseOrder().addNewLineItem();
newItem.set(xdoc.getPurchaseOrder().getLineItemArray(0));
Assert.assertEquals(BigInteger.valueOf(4), xdoc.getPurchaseOrder().getLineItemArray(2).getQuantity());
xdoc.getPurchaseOrder().setLineItemArray(0, xdoc.getPurchaseOrder().getLineItemArray(1));
Assert.assertEquals(BigInteger.valueOf(1), xdoc.getPurchaseOrder().getLineItemArray(0).getQuantity());
// test copy-between docs
XmlLineItemBean anotherItem = XmlLineItemBean.Factory.parse(
"<xml-fragment xmlns:ep='http://openuri.org/easypo' xmlns:xsi='http://wwww.w3.org/2001/XMLSchema-instance' xsi:type='line-item'>" +
"<ep:description>Yellow Balloon</ep:description>" +
"<ep:per-unit-ounces>0.001</ep:per-unit-ounces>" +
"<ep:quantity>200</ep:quantity>" +
"</xml-fragment>");
Assert.assertEquals("Yellow Balloon", anotherItem.getDescription());
xdoc.getPurchaseOrder().setLineItemArray(1, anotherItem);
Assert.assertEquals("Yellow Balloon", xdoc.getPurchaseOrder().getLineItemArray(1).getDescription());
Assert.assertEquals(BigInteger.valueOf(1), xdoc.getPurchaseOrder().getLineItemArray(0).getQuantity());
Assert.assertEquals(BigInteger.valueOf(200), xdoc.getPurchaseOrder().getLineItemArray(1).getQuantity());
Assert.assertEquals(BigInteger.valueOf(4), xdoc.getPurchaseOrder().getLineItemArray(2).getQuantity());
// test copy-to-self
xdoc.getPurchaseOrder().setLineItemArray(1, xdoc.getPurchaseOrder().getLineItemArray(1));
Assert.assertEquals("Yellow Balloon", xdoc.getPurchaseOrder().getLineItemArray(1).getDescription());
Assert.assertEquals(BigInteger.valueOf(1), xdoc.getPurchaseOrder().getLineItemArray(0).getQuantity());
Assert.assertEquals(BigInteger.valueOf(200), xdoc.getPurchaseOrder().getLineItemArray(1).getQuantity());
Assert.assertEquals(BigInteger.valueOf(4), xdoc.getPurchaseOrder().getLineItemArray(2).getQuantity());
}