Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

Source code: org/activemq/message/ActiveMQXidTest.java


1   /*
2    * Created on Apr 30, 2004
3    * 
4    * TODO To change the template for this generated file go to Window -
5    * Preferences - Java - Code Generation - Code and Comments
6    */
7   package org.activemq.message;
8   import javax.jms.JMSException;
9   import javax.transaction.xa.Xid;
10  import junit.framework.TestCase;
11  
12  /**
13   * @version $Revision: 1.1.1.1 $
14   */
15  public class ActiveMQXidTest extends TestCase {
16    final byte branch[] = new byte[256];
17    final byte global[] = new byte[256];
18    final int format = 101;
19    private Xid testXid;
20  
21    protected void setUp() throws Exception {
22      for (int i = 0; i < branch.length; i++) {
23        branch[i] = (byte) i;
24      }
25      for (int i = 0; i < global.length; i++) {
26        global[i] = (byte) i;
27      }
28      testXid = new Xid() {
29        public byte[] getBranchQualifier() {
30          return branch;
31        }
32        public int getFormatId() {
33          return format;
34        }
35        public byte[] getGlobalTransactionId() {
36          return global;
37        }
38      };
39    }
40    
41    public void testEncodeDecode() throws JMSException {
42      ActiveMQXid xid1 = new ActiveMQXid(testXid);
43      String localxid = xid1.toLocalTransactionId();
44      System.out.println(localxid);
45      
46      ActiveMQXid xid2 = new ActiveMQXid(localxid);
47      
48      // If xid2 is made local it should be the same as the original
49      assertTrue( localxid.equals(xid2.toLocalTransactionId()));
50  
51          assertEquals("CompareTo should match", 0, xid1.compareTo(xid2));
52          assertEquals("equals should match", xid1, xid2);
53  
54      // Now test to see if xid2 and testXid are the same.
55      assertTrue( xid2.getFormatId() == testXid.getFormatId() );
56      assertSameBytes( xid2.getBranchQualifier(), testXid.getBranchQualifier() );
57      assertSameBytes( xid2.getGlobalTransactionId(), testXid.getGlobalTransactionId() );
58    }
59  
60    /**
61     * @param bs
62     * @param bs2
63     */
64    protected void assertSameBytes(byte[] bs, byte[] bs2) {
65      assertFalse( bs==null ^ bs2==null );
66      if( bs==null )
67        return;
68      assertTrue( bs.length == bs2.length );
69      for (int i = 0; i < bs.length; i++) {
70        assertTrue( bs[i] == bs2[i]);
71      }
72    }
73  }