package com.arjuna.ats.internal.jbossatx.jta; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import java.io.IOException; import javax.transaction.xa.XAException; import javax.transaction.xa.XAResource; import javax.transaction.xa.Xid; import org.jboss.tm.XAResourceWrapper; import org.junit.Test; import com.arjuna.ats.arjuna.coordinator.TxControl; import com.arjuna.ats.arjuna.exceptions.ObjectStoreException; public class TestXAResourceRecordWrapperImpl { @Test public void testReadAndWriteEISNameSameKey() throws IOException, ObjectStoreException { String xaNodeName = TxControl.getXANodeName(); TxControl.setXANodeName("1"); XAResourceRecordWrappingPluginImpl xaResourceRecordWrappingPluginImpl = new XAResourceRecordWrappingPluginImpl(); MyWrapper myWrapper = new MyWrapper("Simple"); Integer eisNameKey = xaResourceRecordWrappingPluginImpl.getEISName(myWrapper); MyWrapper otherMyWrapper = new MyWrapper("Simple"); Integer shouldBeSameEisNameKey = xaResourceRecordWrappingPluginImpl.getEISName(otherMyWrapper); System.out.println(eisNameKey + " == " + shouldBeSameEisNameKey + "?"); assertEquals(eisNameKey, shouldBeSameEisNameKey); assertEquals("Simple", xaResourceRecordWrappingPluginImpl.getEISName(eisNameKey)); assertEquals("Simple", xaResourceRecordWrappingPluginImpl.getEISName(shouldBeSameEisNameKey)); TxControl.setXANodeName(xaNodeName); } @Test public void testReadAndWriteEISNameDifferentKey() throws IOException, ObjectStoreException { String xaNodeName = TxControl.getXANodeName(); TxControl.setXANodeName("1"); XAResourceRecordWrappingPluginImpl xaResourceRecordWrappingPluginImpl = new XAResourceRecordWrappingPluginImpl(); MyWrapper myWrapper = new MyWrapper("Simple1"); Integer eisNameKey = xaResourceRecordWrappingPluginImpl.getEISName(myWrapper); MyWrapper otherMyWrapper = new MyWrapper("Simple2"); Integer shouldBeSameEisNameKey = xaResourceRecordWrappingPluginImpl.getEISName(otherMyWrapper); System.out.println(eisNameKey + " == " + shouldBeSameEisNameKey + "?"); assertFalse(eisNameKey.equals(shouldBeSameEisNameKey)); assertEquals("Simple1", xaResourceRecordWrappingPluginImpl.getEISName(eisNameKey)); assertEquals("Simple2", xaResourceRecordWrappingPluginImpl.getEISName(shouldBeSameEisNameKey)); TxControl.setXANodeName(xaNodeName); } private class MyWrapper implements XAResourceWrapper { private String jndiName; public MyWrapper(String jndiName) { this.jndiName = jndiName; } @Override public String getJndiName() { return jndiName; } @Override public void commit(Xid arg0, boolean arg1) throws XAException { // TODO Auto-generated method stub } @Override public void end(Xid arg0, int arg1) throws XAException { // TODO Auto-generated method stub } @Override public void forget(Xid arg0) throws XAException { // TODO Auto-generated method stub } @Override public int getTransactionTimeout() throws XAException { // TODO Auto-generated method stub return 0; } @Override public boolean isSameRM(XAResource arg0) throws XAException { // TODO Auto-generated method stub return false; } @Override public int prepare(Xid arg0) throws XAException { // TODO Auto-generated method stub return 0; } @Override public Xid[] recover(int arg0) throws XAException { // TODO Auto-generated method stub return null; } @Override public void rollback(Xid arg0) throws XAException { // TODO Auto-generated method stub } @Override public boolean setTransactionTimeout(int arg0) throws XAException { // TODO Auto-generated method stub return false; } @Override public void start(Xid arg0, int arg1) throws XAException { // TODO Auto-generated method stub } @Override public XAResource getResource() { // TODO Auto-generated method stub return null; } @Override public String getProductName() { // TODO Auto-generated method stub return null; } @Override public String getProductVersion() { // TODO Auto-generated method stub return null; } } }