[jboss-cvs] JBossCache/tests/functional/org/jboss/cache/marshall ...

Manik Surtani msurtani at jboss.com
Tue Jan 2 08:13:20 EST 2007


  User: msurtani
  Date: 07/01/02 08:13:20

  Modified:    tests/functional/org/jboss/cache/marshall     
                        VersionAwareMarshallerTest.java
  Added:       tests/functional/org/jboss/cache/marshall     
                        CacheMarshallerTestBase.java
                        CacheMarshaller200Test.java
  Removed:     tests/functional/org/jboss/cache/marshall     
                        TreeCacheMarshallerTestBase.java
                        TreeCacheMarshaller200Test.java
  Log:
  - Fixed issues with AbstractNode.equals()
  - Fixed NPE with Cache.getChildrenNames()
  - Renamed TreeCacheMarshaller to CacheMarshaller to be in line with the Cache/CacheSPI naming
  
  Revision  Changes    Path
  1.7       +8 -8      JBossCache/tests/functional/org/jboss/cache/marshall/VersionAwareMarshallerTest.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: VersionAwareMarshallerTest.java
  ===================================================================
  RCS file: /cvsroot/jboss/JBossCache/tests/functional/org/jboss/cache/marshall/VersionAwareMarshallerTest.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -b -r1.6 -r1.7
  --- VersionAwareMarshallerTest.java	12 Oct 2006 23:03:57 -0000	1.6
  +++ VersionAwareMarshallerTest.java	2 Jan 2007 13:13:20 -0000	1.7
  @@ -22,28 +22,28 @@
      public void testMarshallerSelection()
      {
         VersionAwareMarshaller marshaller = new VersionAwareMarshaller(new RegionManager(), false, false, "2.0.0.GA");
  -      assertEquals(TreeCacheMarshaller200.class, marshaller.defaultMarshaller.getClass());
  +      assertEquals(CacheMarshaller200.class, marshaller.defaultMarshaller.getClass());
   
         marshaller = new VersionAwareMarshaller(new RegionManager(), false, false, "1.4.0.GA");
  -      assertEquals(TreeCacheMarshaller200.class, marshaller.defaultMarshaller.getClass());
  +      assertEquals(CacheMarshaller200.class, marshaller.defaultMarshaller.getClass());
   
         marshaller = new VersionAwareMarshaller(new RegionManager(), false, false, "1.5.0.GA");
  -      assertEquals(TreeCacheMarshaller200.class, marshaller.defaultMarshaller.getClass());
  +      assertEquals(CacheMarshaller200.class, marshaller.defaultMarshaller.getClass());
   
         marshaller = new VersionAwareMarshaller(new RegionManager(), false, false, "1.3.0.GA");
  -      assertEquals(TreeCacheMarshaller200.class, marshaller.defaultMarshaller.getClass());
  +      assertEquals(CacheMarshaller200.class, marshaller.defaultMarshaller.getClass());
   
         marshaller = new VersionAwareMarshaller(new RegionManager(), false, false, "1.3.0.SP2");
  -      assertEquals(TreeCacheMarshaller200.class, marshaller.defaultMarshaller.getClass());
  +      assertEquals(CacheMarshaller200.class, marshaller.defaultMarshaller.getClass());
   
         marshaller = new VersionAwareMarshaller(new RegionManager(), false, false, "1.3.1.GA");
  -      assertEquals(TreeCacheMarshaller200.class, marshaller.defaultMarshaller.getClass());
  +      assertEquals(CacheMarshaller200.class, marshaller.defaultMarshaller.getClass());
   
         marshaller = new VersionAwareMarshaller(new RegionManager(), false, false, "1.2.4.SP2");
  -      assertEquals(TreeCacheMarshaller200.class, marshaller.defaultMarshaller.getClass());
  +      assertEquals(CacheMarshaller200.class, marshaller.defaultMarshaller.getClass());
   
         marshaller = new VersionAwareMarshaller(new RegionManager(), false, false, "1.2.3");
  -      assertEquals(TreeCacheMarshaller200.class, marshaller.defaultMarshaller.getClass());
  +      assertEquals(CacheMarshaller200.class, marshaller.defaultMarshaller.getClass());
      }
   
      public void testVersionHeaderDefaultCurrent() throws Exception
  
  
  
  1.1      date: 2007/01/02 13:13:20;  author: msurtani;  state: Exp;JBossCache/tests/functional/org/jboss/cache/marshall/CacheMarshallerTestBase.java
  
  Index: CacheMarshallerTestBase.java
  ===================================================================
  /*
   * JBoss, Home of Professional Open Source
   *
   * Distributable under LGPL license.
   * See terms of license at gnu.org.
   */
  package org.jboss.cache.marshall;
  
  import junit.framework.TestCase;
  import org.jboss.cache.Fqn;
  import org.jboss.cache.RegionManager;
  
  import java.util.ArrayList;
  import java.util.List;
  
  public abstract class CacheMarshallerTestBase extends TestCase
  {
     protected String currentVersion;
     protected int currentVersionShort;
     protected Class expectedMarshallerClass;
     protected VersionAwareMarshaller marshaller;
  
  
     protected void setUp() throws Exception
     {
        marshaller = new VersionAwareMarshaller(new RegionManager(), false, false, currentVersion);
     }
  
     protected void tearDown()
     {
        marshaller = null;
     }
  
     protected void assertMethodCallsEquals(MethodCall call1, MethodCall call2)
     {
        if (call1 == call2) return;
  
        assertEquals("Method IDs should match", call1.getMethodId(), call2.getMethodId());
        assertEquals("Method names should match", call1.getName(), call2.getName());
        assertEquals("Method reflection objects should match", call1.getMethod(), call2.getMethod());
        if (call1.getArgs() == null || call2.getArgs() == null)
        {
           assertNull("Both args should be null", call1.getArgs());
           assertNull("Both args should be null", call2.getArgs());
        }
        else
        {
           Object[] call1Args = call1.getArgs();
           Object[] call2Args = call2.getArgs();
  
           assertObjectArraysAreEqual(call1Args, call2Args);
        }
     }
  
     protected void assertObjectArraysAreEqual(Object[] a1, Object[] a2)
     {
        assertEquals("Number of args should match", a1.length, a2.length);
  
        for (int i = 0; i < a1.length; i++)
        {
           if (a1[i] instanceof MethodCall && a2[i] instanceof MethodCall)
           {
              assertMethodCallsEquals((MethodCall) a1[i], (MethodCall) a2[i]);
           }
           else if (a1[i] instanceof List && a2[i] instanceof List)
           {
              Object[] a1Elements = ((List) a1[i]).toArray();
              Object[] a2Elements = ((List) a2[i]).toArray();
  
              assertObjectArraysAreEqual(a1Elements, a2Elements);
           }
           else
           {
              assertEquals("Argument # " + i + " should be equal", a1[i], a2[i]);
           }
        }
  
     }
  
  
     public void testGetMarshaller()
     {
        assertEquals("Only one marshaller should be in the map by this stage", 1, marshaller.marshallers.size());
  
        assertEquals(expectedMarshallerClass, marshaller.getMarshaller(currentVersionShort).getClass());
        assertEquals(CacheMarshaller200.class, marshaller.getMarshaller(15).getClass());
        assertEquals(CacheMarshaller200.class, marshaller.getMarshaller(1).getClass());
        assertEquals(CacheMarshaller200.class, marshaller.getMarshaller(-1).getClass());
        assertEquals(CacheMarshaller200.class, marshaller.getMarshaller(0).getClass());
  
        assertEquals("One marshaller should be in the map by this stage", 1, marshaller.marshallers.size());
     }
  
     public void testStringBasedFqn() throws Exception
     {
        Fqn fqn = new Fqn(new Object[]{"JSESSIONID", "1010.10.5:3000", "1234567890", "1"});
        byte[] asBytes = marshaller.objectToByteBuffer(fqn);
        System.out.println("Marshalled to " + asBytes.length + " bytes");
        Object o2 = marshaller.objectFromByteBuffer(asBytes);
        assertEquals(fqn, o2);
     }
  
     public void testNonStringBasedFqn() throws Exception
     {
        Fqn fqn = new Fqn(new Object[]{3, false});
        byte[] asBytes = marshaller.objectToByteBuffer(fqn);
        Object o2 = marshaller.objectFromByteBuffer(asBytes);
        assertEquals(fqn, o2);
     }
  
     public void testMethodCall() throws Exception
     {
        Fqn fqn = new Fqn(new Object[]{3, false});
        MethodCall call = MethodCallFactory.create(MethodDeclarations.putKeyValMethodLocal, null, fqn, "key", "value", true);
        byte[] asBytes = marshaller.objectToByteBuffer(call);
        Object o2 = marshaller.objectFromByteBuffer(asBytes);
  
        assertTrue("Unmarshalled object should be a method call", o2 instanceof MethodCall);
        MethodCall m2 = (MethodCall) o2;
  
        assertMethodCallsEquals(call, m2);
     }
  
     public void testNestedMethodCall() throws Exception
     {
        Fqn fqn = new Fqn(new Object[]{3, false});
        MethodCall call = MethodCallFactory.create(MethodDeclarations.putKeyValMethodLocal, null, fqn, "key", "value", true);
        MethodCall replicateCall = MethodCallFactory.create(MethodDeclarations.replicateMethod, call);
        byte[] asBytes = marshaller.objectToByteBuffer(replicateCall);
        Object o2 = marshaller.objectFromByteBuffer(asBytes);
        assertTrue("Unmarshalled object should be a method call", o2 instanceof MethodCall);
        MethodCall m2 = (MethodCall) o2;
  
        assertMethodCallsEquals(replicateCall, m2);
     }
  
     public void testLargeString() throws Exception
     {
        doLargeStringTest(32767, false);
     }
  
     public void testLargerString() throws Exception
     {
        doLargeStringTest(32768, false);
     }
  
     public void test64KString() throws Exception
     {
        doLargeStringTest((2 << 15) - 10, false);
        doLargeStringTest((2 << 15) + 10, false);
     }
  
     public void test128KString() throws Exception
     {
        doLargeStringTest((2 << 16) - 10, false);
        doLargeStringTest((2 << 16) + 10, false);
     }
  
     public void testLargeStringMultiByte() throws Exception
     {
        doLargeStringTest(32767, true);
     }
  
     public void testLargerStringMultiByte() throws Exception
     {
        doLargeStringTest(32768, true);
     }
  
     public void test64KStringMultiByte() throws Exception
     {
        doLargeStringTest((2 << 15) - 10, true);
        doLargeStringTest((2 << 15) + 10, true);
     }
  
     public void test128KStringMultiByte() throws Exception
     {
        doLargeStringTest((2 << 16) - 10, true);
        doLargeStringTest((2 << 16) + 10, true);
     }
  
     protected void doLargeStringTest(int stringSize, boolean multiByteChars) throws Exception
     {
        StringBuilder sb = new StringBuilder();
  
        int startingChar = multiByteChars ? 210 : 65;
        for (int i = 0; i < stringSize; i++) sb.append((char) (startingChar + (i % 26)));
  
        String largeString = sb.toString();
  
        assertEquals(stringSize, largeString.length());
  
        byte[] buf = marshaller.objectToByteBuffer(largeString);
  
        assertEquals(largeString, marshaller.objectFromByteBuffer(buf));
     }
  
     public void testReplicationQueue() throws Exception
     {
        doReplicationQueueTest();
     }
  
     public void testReplicationQueueWithRegionBasedMarshalling() throws Exception
     {
        marshaller = new VersionAwareMarshaller(new RegionManager(), false, true, currentVersion);
        doReplicationQueueTest();
     }
  
     protected void doReplicationQueueTest() throws Exception
     {
        // replication queue takes a list of replicate() MethodCalls and wraps them in a single replicate call.
        List<MethodCall> calls = new ArrayList<MethodCall>();
  
        Fqn f = new Fqn(new Object[]{"BlahBlah", 3, false});
        String k = "key", v = "value";
  
        MethodCall actualCall = MethodCallFactory.create(MethodDeclarations.putKeyValMethodLocal, null, f, k, v, true);
        MethodCall replicateCall = MethodCallFactory.create(MethodDeclarations.replicateMethod, actualCall);
  
        calls.add(replicateCall);
  
        actualCall = MethodCallFactory.create(MethodDeclarations.putKeyValMethodLocal, null, f, k, v, true);
        replicateCall = MethodCallFactory.create(MethodDeclarations.replicateMethod, actualCall);
  
        calls.add(replicateCall);
  
        MethodCall call = MethodCallFactory.create(MethodDeclarations.replicateAllMethod, calls);
  
        byte[] buf = marshaller.objectToByteBuffer(call);
  
        assertMethodCallsEquals(call, (MethodCall) marshaller.objectFromByteBuffer(buf));
     }
  
  }
  
  
  
  1.1      date: 2007/01/02 13:13:20;  author: msurtani;  state: Exp;JBossCache/tests/functional/org/jboss/cache/marshall/CacheMarshaller200Test.java
  
  Index: CacheMarshaller200Test.java
  ===================================================================
  /*
   * JBoss, Home of Professional Open Source
   *
   * Distributable under LGPL license.
   * See terms of license at gnu.org.
   */
  package org.jboss.cache.marshall;
  
  import org.jboss.cache.RegionManager;
  
  public class CacheMarshaller200Test extends CacheMarshallerTestBase
  {
     public CacheMarshaller200Test()
     {
        currentVersion = "2.0.0.GA";
        currentVersionShort = 20;
        expectedMarshallerClass = CacheMarshaller200.class;
     }
  
     public void testHandle140Stream() throws Exception
     {
        VersionAwareMarshaller marshallerOld = new VersionAwareMarshaller(new RegionManager(), false, false, "1.4.0.GA");
  
        // create a '140' stream.
  
        byte[] buf = marshallerOld.objectToByteBuffer("hello");
        Object unmarshalled = marshaller.objectFromByteBuffer(buf);
  
        assertEquals("hello", unmarshalled);
     }
  
  }
  
  
  



More information about the jboss-cvs-commits mailing list