public void testMethodAttributes() throws Exception
{
JBossSessionBeanMetaData original = new JBossSessionBeanMetaData();
original.setEjbName("session");
MethodAttributesMetaData methodAttrs = new MethodAttributesMetaData();
MethodAttributeMetaData methodAttr = new MethodAttributeMetaData();
methodAttr.setMethodName("method1");
methodAttr.setTransactionTimeout(1000);
methodAttrs.add(methodAttr);
methodAttr = new MethodAttributeMetaData();
methodAttr.setMethodName("method2");
methodAttr.setTransactionTimeout(1000);
methodAttrs.add(methodAttr);
original.setMethodAttributes(methodAttrs);
// override
JBossSessionBeanMetaData override = new JBossSessionBeanMetaData();
override.setEjbName("session");
methodAttrs = new MethodAttributesMetaData();
methodAttr = new MethodAttributeMetaData();
methodAttr.setMethodName("method2");
methodAttr.setTransactionTimeout(2000);
methodAttrs.add(methodAttr);
methodAttr = new MethodAttributeMetaData();
methodAttr.setMethodName("method3");
methodAttr.setTransactionTimeout(2000);
methodAttrs.add(methodAttr);
override.setMethodAttributes(methodAttrs);
// merged
JBossSessionBeanMetaData merged = new JBossSessionBeanMetaData();
merged.merge(override, original);
methodAttrs = merged.getMethodAttributes();
assertNotNull(methodAttrs);
assertEquals(3, methodAttrs.size());
methodAttr = methodAttrs.get("method1");
assertNotNull(methodAttr);
assertEquals(1000, methodAttr.getTransactionTimeout());
methodAttr = methodAttrs.get("method2");
assertNotNull(methodAttr);
assertEquals(2000, methodAttr.getTransactionTimeout());
methodAttr = methodAttrs.get("method3");
assertNotNull(methodAttr);
assertEquals(2000, methodAttr.getTransactionTimeout());
}