Package jdbm

Examples of jdbm.RecordManager


    public void testRollback1b()
        throws Exception
    {

        // Note: We start out with an empty file
        RecordManager recman =  newRecordManager();

        long root = recman.getNamedObject( "xyz" );
            
        BTree<String,String> tree = null;
        if ( root == 0 ) {
            // create a new one
            tree = BTree.createInstance( recman );
            root = tree.getRecid();
            recman.setNamedObject( "xyz", root );
            recman.commit();
        } else {
            tree = BTree.load( recman, root );
        }

        tree.insert( "Foo", "Bar",true );
        tree.insert( "Fo", "Fum",true );

        recman.commit();

        tree.insert( "Hello", "World",true );

        recman.rollback();

        tree = BTree.load( recman, root );
        assertTrue( tree.find( "Foo" ).equals( "Bar" ) );
        assertTrue( tree.find( "Fo" ).equals( "Fum" ) );
        assertTrue( tree.find( "Hello" ) == null );
View Full Code Here


     * Test case courtesy of Derek Dick (mailto:ddick  users.sourceforge.net)
     */
    public void testRollback2b()
        throws Exception
    {
        RecordManager recman;
        long root;

        // Note: We start out with an empty file
        recman = newRecordManager();

        root = recman.getNamedObject( "xyz" );

        BTree tree = null;
        if ( root == 0 ) {
            // create a new one
            tree = BTree.createInstance( recman );
            root = tree.getRecid();
            recman.setNamedObject( "xyz", root );
            recman.commit();
        } else {
            tree = BTree.load( recman, root );
        }

        tree.insert( "hello", "world",true );
        tree.insert( "goodnight", "gracie",true );
        recman.commit();

        tree.insert( "derek", "dick",true );
        recman.rollback();

        assertTrue( tree.find( "derek" ) == null );
        assertTrue( tree.find( "goodnight" ).equals( "gracie" ) );
        assertTrue( tree.find( "hello" ).equals( "world" ) );
    }
View Full Code Here

    /**
     *  Basic tests
     */
    public void testBasics() throws IOException {
        RecordManager  recman;
        BTree          tree;
        byte[]         test, test0, test1, test2, test3;
        byte[]         value1, value2;

        test  = "test".getBytes();
        test0 = "test0".getBytes();
        test1 = "test1".getBytes();
        test2 = "test2".getBytes();
        test3 = "test3".getBytes();

        value1 = "value1".getBytes();
        value2 = "value2".getBytes();

        if ( DEBUG ) {
            System.out.println("TestBTree.testBasics");
        }

        recman = newRecordManager();
        tree = BTree.createInstance( recman, new ByteArrayComparator() );

        tree.insert( test1, value1, false );
        tree.insert( test2, value2, false );

        byte[] result;
        result = (byte[]) tree.find( test0 );
        if ( result != null ) {
            throw new Error( "Test0 shouldn't be found" );
        }

        result = (byte[]) tree.find( test1 );
        if ( result == null || ByteArrayComparator.compareByteArray( result, value1 ) != 0 ) {
            throw new Error( "Invalid value for test1: " + result );
        }

        result = (byte[]) tree.find( test2 );
        if ( result == null || ByteArrayComparator.compareByteArray( result, value2 ) != 0 ) {
            throw new Error( "Invalid value for test2: " + result );
        }

        result = (byte[]) tree.find( test3 );
        if ( result != null ) {
            throw new Error( "Test3 shouldn't be found" );
        }

        recman.close();
    }
View Full Code Here

    /**
     *  Basic tests, just use the simple test possibilities of junit (cdaller)
     */
    public void testBasics2() throws IOException {
        RecordManager  recman;
        BTree          tree;
        byte[]         test, test0, test1, test2, test3;
        byte[]         value1, value2;

        test  = "test".getBytes();
        test0 = "test0".getBytes();
        test1 = "test1".getBytes();
        test2 = "test2".getBytes();
        test3 = "test3".getBytes();

        value1 = "value1".getBytes();
        value2 = "value2".getBytes();

        if ( DEBUG )
            System.out.println("TestBTree.testBasics2");

        recman = newRecordManager();
        tree = BTree.createInstance( recman, new ByteArrayComparator() );

        tree.insert( test1, value1, false);
        tree.insert( test2, value2, false);

        assertEquals( null, tree.find( test0 ) );
        assertEquals( 0, ByteArrayComparator.compareByteArray( value1, (byte[]) tree.find( test1 ) ) );
        assertEquals( 0, ByteArrayComparator.compareByteArray( value2, (byte[]) tree.find( test2 ) ) );
        assertEquals( null, (byte[]) tree.find( test3 ) );

        recman.close();
     }
View Full Code Here

     * (cdaller)
     */
    public void testClose()
        throws IOException
    {
        RecordManager  recman;
        BTree          tree;
        byte[]         test, test0, test1, test2, test3;
        byte[]         value1, value2;

        test  = "test".getBytes();
        test0 = "test0".getBytes();
        test1 = "test1".getBytes();
        test2 = "test2".getBytes();
        test3 = "test3".getBytes();

        value1 = "value1".getBytes();
        value2 = "value2".getBytes();

        if ( DEBUG )
            System.out.println("TestBTree.testClose");

        recman = newRecordManager();
        tree = BTree.createInstance( recman, new ByteArrayComparator() );

        tree.insert( test1, value1, false );
        tree.insert( test2, value2, false );

        assertEquals( null, tree.find( test0 ) );
        assertEquals( 0, ByteArrayComparator.compareByteArray( value1, (byte[]) tree.find( test1 ) ) );
        assertEquals( 0, ByteArrayComparator.compareByteArray( value2, (byte[]) tree.find( test2 ) ) );
        assertEquals( null, (byte[]) tree.find( test3 ) );

        recman.close();

        try {
            tree.browse();
            fail("Should throw an IllegalStateException on access on not opened btree");
        } catch( IllegalStateException except ) {
View Full Code Here

     *  Test to insert different objects into one btree. (cdaller)
     */
    public void testInsert()
        throws IOException
    {
        RecordManager  recman;
        BTree          tree;

        if ( DEBUG )
            System.out.println("TestBTree.testInsert");

        recman = newRecordManager();
        tree = BTree.createInstance( recman);

        // insert differnt objects and retrieve them
        tree.insert("test1", "value1",false);
        tree.insert("test2","value2",false);
        tree.insert("one", new Integer(1),false);
        tree.insert("two",new Long(2),false);
        tree.insert("myownobject",new ObjectTT(new Integer(234)),false);

        assertEquals("value2",(String)tree.find("test2"));
        assertEquals("value1",(String)tree.find("test1"));
        assertEquals(new Integer(1),(Integer)tree.find("one"));
        assertEquals(new Long(2),(Long)tree.find("two"));

        // what happens here? must not be replaced, does it return anything?
        // probably yes!
        assertEquals("value1",tree.insert("test1","value11",false));
        assertEquals("value1",tree.find("test1")); // still the old value?
        assertEquals("value1",tree.insert("test1","value11",true));
        assertEquals("value11",tree.find("test1")); // now the new value!

        ObjectTT expected_obj = new ObjectTT(new Integer(234));
        ObjectTT btree_obj = (ObjectTT)tree.find("myownobject");
        assertEquals(expected_obj, btree_obj);

        recman.close();
    }
View Full Code Here

     *  Test to remove  objects from the btree. (cdaller)
     */
    public void testRemove()
        throws IOException
    {
        RecordManager  recman;
        BTree          tree;

        if ( DEBUG ) {
            System.out.println( "TestBTree.testRemove" );
        }

        recman = newRecordManager();
        tree = BTree.createInstance( recman);

        tree.insert("test1", "value1",false);
        tree.insert("test2","value2",false);
        assertEquals("value1",(String)tree.find("test1"));
        assertEquals("value2",(String)tree.find("test2"));
        tree.remove("test1");
        assertEquals(null,(String)tree.find("test1"));
        assertEquals("value2",(String)tree.find("test2"));
        tree.remove("test2");
        assertEquals(null,(String)tree.find("test2"));

        int iterations = 1000;

        for ( int count = 0; count < iterations; count++ ) {
            tree.insert( "num"+count, new Integer( count ), false );
        }

        assertEquals( iterations, tree.size() );

        for ( int count = 0; count < iterations; count++ ) {
            assertEquals( new Integer( count ), tree.find( "num" + count ) );
        }

        for ( int count = 0; count < iterations; count++ ) {
           tree.remove( "num" + count );
        }

        assertEquals( 0, tree.size() );

        recman.close();
    }
View Full Code Here

     *  Test to find differents objects in the btree. (cdaller)
     */
    public void testFind()
        throws IOException
    {
        RecordManager  recman;
        BTree          tree;

        if ( DEBUG )
            System.out.println("TestBTree.testFind");

        recman = newRecordManager();
        tree = BTree.createInstance( recman);

        tree.insert("test1", "value1",false);
        tree.insert("test2","value2",false);

        Object value = tree.find("test1");
        assertTrue(value instanceof String);
        assertEquals("value1",value);

        tree.insert("","Empty String as key",false);
        assertEquals("Empty String as key",(String)tree.find(""));

        assertEquals(null,(String)tree.find("someoneelse"));

        recman.close();
    }
View Full Code Here

    return l;
  }
 
 
  public void testSecondaryTreeMap() throws IOException{
    RecordManager r = newRecordManager();
    PrimaryTreeMap<Integer, String> m = r.treeMap("aa");
    SecondaryTreeMap<Integer, Integer, String> s = m.secondaryTreeMap("bb",
        new SecondaryKeyExtractor<Integer, Integer, String>() {

      public Integer extractSecondaryKey(Integer key, String value) {       
        return value.length();
View Full Code Here

     *  should be removed from the recordmanager.
     */
    public void testDelete()
        throws IOException
    {
        RecordManager  recman;
        BTree<String, Serializable>          tree;
        if ( DEBUG )
            System.out.println("TestBTree.testFind");
        Properties props = new Properties();
        recman = RecordManagerFactory.createRecordManager( newTestFile(), props );
        tree = BTree.createInstance( recman);

        // put enough data into the tree so we definitely have multiple pages
        for (int count = 1; count <= 1000; count++){
            tree.insert("num" + count,new Integer(count),false);
            if (count % 100 == 0)
                recman.commit();
        }
        List<Long> out = new ArrayList<Long>();
        tree.dumpChildPageRecIDs(out);       
        assertTrue(out.size() > 0);
    }
View Full Code Here

TOP

Related Classes of jdbm.RecordManager

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.