You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by ka...@apache.org on 2013/08/04 11:22:58 UTC
svn commit: r1510115 [12/13] - in /directory/mavibot/trunk: ./ mavibot/
mavibot/src/main/java/org/apache/directory/
mavibot/src/main/java/org/apache/directory/mavibot/
mavibot/src/main/java/org/apache/directory/mavibot/btree/
mavibot/src/main/java/org/...
Added: directory/mavibot/trunk/mavibot/src/test/java/org/apache/directory/mavibot/btree/StoreTest.java
URL: http://svn.apache.org/viewvc/directory/mavibot/trunk/mavibot/src/test/java/org/apache/directory/mavibot/btree/StoreTest.java?rev=1510115&view=auto
==============================================================================
--- directory/mavibot/trunk/mavibot/src/test/java/org/apache/directory/mavibot/btree/StoreTest.java (added)
+++ directory/mavibot/trunk/mavibot/src/test/java/org/apache/directory/mavibot/btree/StoreTest.java Sun Aug 4 09:22:56 2013
@@ -0,0 +1,460 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.apache.directory.mavibot.btree;
+
+
+import static org.junit.Assert.assertEquals;
+
+import java.io.File;
+import java.lang.reflect.Method;
+import java.nio.ByteBuffer;
+
+import org.apache.directory.mavibot.btree.PageIO;
+import org.apache.directory.mavibot.btree.RecordManager;
+import org.junit.Test;
+
+
+/**
+ * Test the RecordManager.store() method using reflection
+ *
+ * @author <a href="mailto:labs@labs.apache.org">Mavibot labs Project</a>
+ */
+public class StoreTest
+{
+ /**
+ * Test the store( int ) method
+ */
+ @Test
+ public void testInjectInt() throws Exception
+ {
+ File tempFile = File.createTempFile( "mavibot", ".db" );
+ String tempFileName = tempFile.getAbsolutePath();
+ tempFile.deleteOnExit();
+
+ RecordManager recordManager = new RecordManager( tempFileName, 4 * 1024 );
+ Method method = RecordManager.class.getDeclaredMethod( "store", long.class, int.class, PageIO[].class );
+ method.setAccessible( true );
+
+ // Allocate some Pages
+ PageIO[] pageIos = new PageIO[2];
+ pageIos[0] = new PageIO();
+ pageIos[0].setData( ByteBuffer.allocate( recordManager.getPageSize() ) );
+ pageIos[1] = new PageIO();
+ pageIos[1].setData( ByteBuffer.allocate( recordManager.getPageSize() ) );
+
+ // Set the int at the beginning
+ long position = ( Long ) method.invoke( recordManager, 0, 0x12345678, pageIos );
+
+ assertEquals( 4, position );
+ int pos = 12;
+ assertEquals( 0x12, pageIos[0].getData().get( pos++ ) );
+ assertEquals( 0x34, pageIos[0].getData().get( pos++ ) );
+ assertEquals( 0x56, pageIos[0].getData().get( pos++ ) );
+ assertEquals( 0x78, pageIos[0].getData().get( pos++ ) );
+
+ // Set the int at the end of the first page
+ position = ( Long ) method.invoke( recordManager, 4080, 0x12345678, pageIos );
+
+ assertEquals( 4084, position );
+ pos = 4092;
+ assertEquals( 0x12, pageIos[0].getData().get( pos++ ) );
+ assertEquals( 0x34, pageIos[0].getData().get( pos++ ) );
+ assertEquals( 0x56, pageIos[0].getData().get( pos++ ) );
+ assertEquals( 0x78, pageIos[0].getData().get( pos++ ) );
+
+ // Set the int at the end of the first page and overlapping on the second page
+ // 1 byte overlapping
+ position = ( Long ) method.invoke( recordManager, 4081, 0x12345678, pageIos );
+
+ assertEquals( 4085, position );
+ pos = 4093;
+ assertEquals( 0x12, pageIos[0].getData().get( pos++ ) );
+ assertEquals( 0x34, pageIos[0].getData().get( pos++ ) );
+ assertEquals( 0x56, pageIos[0].getData().get( pos++ ) );
+ pos = 8;
+ assertEquals( 0x78, pageIos[1].getData().get( pos++ ) );
+
+ // Set the int at the end of the first page and overlapping on the second page
+ // 2 bytes overlapping
+ position = ( Long ) method.invoke( recordManager, 4082, 0x12345678, pageIos );
+
+ assertEquals( 4086, position );
+ pos = 4094;
+ assertEquals( 0x12, pageIos[0].getData().get( pos++ ) );
+ assertEquals( 0x34, pageIos[0].getData().get( pos++ ) );
+ pos = 8;
+ assertEquals( 0x56, pageIos[1].getData().get( pos++ ) );
+ assertEquals( 0x78, pageIos[1].getData().get( pos++ ) );
+
+ // Set the int at the end of the first page and overlapping on the second page
+ // 3 bytes overlapping
+ position = ( Long ) method.invoke( recordManager, 4083, 0x12345678, pageIos );
+
+ assertEquals( 4087, position );
+ pos = 4095;
+ assertEquals( 0x12, pageIos[0].getData().get( pos++ ) );
+ pos = 8;
+ assertEquals( 0x34, pageIos[1].getData().get( pos++ ) );
+ assertEquals( 0x56, pageIos[1].getData().get( pos++ ) );
+ assertEquals( 0x78, pageIos[1].getData().get( pos++ ) );
+
+ // Set the int at the beginning of the second page
+ position = ( Long ) method.invoke( recordManager, 4084, 0x12345678, pageIos );
+
+ assertEquals( 4088, position );
+ pos = 8;
+ assertEquals( 0x12, pageIos[1].getData().get( pos++ ) );
+ assertEquals( 0x34, pageIos[1].getData().get( pos++ ) );
+ assertEquals( 0x56, pageIos[1].getData().get( pos++ ) );
+ assertEquals( 0x78, pageIos[1].getData().get( pos++ ) );
+ }
+
+
+ /**
+ * Test the store( long ) method
+ */
+ @Test
+ public void testInjectLong() throws Exception
+ {
+ File tempFile = File.createTempFile( "mavibot", ".db" );
+ String tempFileName = tempFile.getAbsolutePath();
+ tempFile.deleteOnExit();
+
+ RecordManager recordManager = new RecordManager( tempFileName, 4 * 1024 );
+ Method method = RecordManager.class.getDeclaredMethod( "store", long.class, long.class, PageIO[].class );
+ method.setAccessible( true );
+
+ // Allocate some Pages
+ PageIO[] pageIos = new PageIO[2];
+ pageIos[0] = new PageIO();
+ pageIos[0].setData( ByteBuffer.allocate( recordManager.getPageSize() ) );
+ pageIos[1] = new PageIO();
+ pageIos[1].setData( ByteBuffer.allocate( recordManager.getPageSize() ) );
+
+ // Set the long at the beginning
+ long position = ( Long ) method.invoke( recordManager, 0, 0x0123456789ABCDEFL, pageIos );
+
+ assertEquals( 8, position );
+ int pos = 12;
+ assertEquals( 0x01, pageIos[0].getData().get( pos++ ) );
+ assertEquals( 0x23, pageIos[0].getData().get( pos++ ) );
+ assertEquals( 0x45, pageIos[0].getData().get( pos++ ) );
+ assertEquals( 0x67, pageIos[0].getData().get( pos++ ) );
+ assertEquals( ( byte ) 0x89, pageIos[0].getData().get( pos++ ) );
+ assertEquals( ( byte ) 0xAB, pageIos[0].getData().get( pos++ ) );
+ assertEquals( ( byte ) 0xCD, pageIos[0].getData().get( pos++ ) );
+ assertEquals( ( byte ) 0xEF, pageIos[0].getData().get( pos++ ) );
+
+ // Set the long at the end of the first page
+ position = ( Long ) method.invoke( recordManager, 4076, 0x0123456789ABCDEFL, pageIos );
+
+ assertEquals( 4084, position );
+ pos = 4088;
+ assertEquals( 0x01, pageIos[0].getData().get( pos++ ) );
+ assertEquals( 0x23, pageIos[0].getData().get( pos++ ) );
+ assertEquals( 0x45, pageIos[0].getData().get( pos++ ) );
+ assertEquals( 0x67, pageIos[0].getData().get( pos++ ) );
+ assertEquals( ( byte ) 0x89, pageIos[0].getData().get( pos++ ) );
+ assertEquals( ( byte ) 0xAB, pageIos[0].getData().get( pos++ ) );
+ assertEquals( ( byte ) 0xCD, pageIos[0].getData().get( pos++ ) );
+ assertEquals( ( byte ) 0xEF, pageIos[0].getData().get( pos++ ) );
+
+ // Set the long at the end of the first page and overlapping on the second page
+ // 1 byte overlapping
+ position = ( Long ) method.invoke( recordManager, 4077, 0x0123456789ABCDEFL, pageIos );
+
+ assertEquals( 4085, position );
+ pos = 4089;
+ assertEquals( 0x01, pageIos[0].getData().get( pos++ ) );
+ assertEquals( 0x23, pageIos[0].getData().get( pos++ ) );
+ assertEquals( 0x45, pageIos[0].getData().get( pos++ ) );
+ assertEquals( 0x67, pageIos[0].getData().get( pos++ ) );
+ assertEquals( ( byte ) 0x89, pageIos[0].getData().get( pos++ ) );
+ assertEquals( ( byte ) 0xAB, pageIos[0].getData().get( pos++ ) );
+ assertEquals( ( byte ) 0xCD, pageIos[0].getData().get( pos++ ) );
+ pos = 8;
+ assertEquals( ( byte ) 0xEF, pageIos[1].getData().get( pos++ ) );
+
+ // Set the long at the end of the first page and overlapping on the second page
+ // 2 bytes overlapping
+ position = ( Long ) method.invoke( recordManager, 4078, 0x0123456789ABCDEFL, pageIos );
+
+ assertEquals( 4086, position );
+ pos = 4090;
+ assertEquals( 0x01, pageIos[0].getData().get( pos++ ) );
+ assertEquals( 0x23, pageIos[0].getData().get( pos++ ) );
+ assertEquals( 0x45, pageIos[0].getData().get( pos++ ) );
+ assertEquals( 0x67, pageIos[0].getData().get( pos++ ) );
+ assertEquals( ( byte ) 0x89, pageIos[0].getData().get( pos++ ) );
+ assertEquals( ( byte ) 0xAB, pageIos[0].getData().get( pos++ ) );
+ pos = 8;
+ assertEquals( ( byte ) 0xCD, pageIos[1].getData().get( pos++ ) );
+ assertEquals( ( byte ) 0xEF, pageIos[1].getData().get( pos++ ) );
+
+ // Set the long at the end of the first page and overlapping on the second page
+ // 3 bytes overlapping
+ position = ( Long ) method.invoke( recordManager, 4079, 0x0123456789ABCDEFL, pageIos );
+
+ assertEquals( 4087, position );
+ pos = 4091;
+ assertEquals( 0x01, pageIos[0].getData().get( pos++ ) );
+ assertEquals( 0x23, pageIos[0].getData().get( pos++ ) );
+ assertEquals( 0x45, pageIos[0].getData().get( pos++ ) );
+ assertEquals( 0x67, pageIos[0].getData().get( pos++ ) );
+ assertEquals( ( byte ) 0x89, pageIos[0].getData().get( pos++ ) );
+ pos = 8;
+ assertEquals( ( byte ) 0xAB, pageIos[1].getData().get( pos++ ) );
+ assertEquals( ( byte ) 0xCD, pageIos[1].getData().get( pos++ ) );
+ assertEquals( ( byte ) 0xEF, pageIos[1].getData().get( pos++ ) );
+
+ // Set the long at the end of the first page and overlapping on the second page
+ // 4 byte overlapping
+ position = ( Long ) method.invoke( recordManager, 4080, 0x0123456789ABCDEFL, pageIos );
+
+ assertEquals( 4088, position );
+ pos = 4092;
+ assertEquals( 0x01, pageIos[0].getData().get( pos++ ) );
+ assertEquals( 0x23, pageIos[0].getData().get( pos++ ) );
+ assertEquals( 0x45, pageIos[0].getData().get( pos++ ) );
+ assertEquals( 0x67, pageIos[0].getData().get( pos++ ) );
+ pos = 8;
+ assertEquals( ( byte ) 0x89, pageIos[1].getData().get( pos++ ) );
+ assertEquals( ( byte ) 0xAB, pageIos[1].getData().get( pos++ ) );
+ assertEquals( ( byte ) 0xCD, pageIos[1].getData().get( pos++ ) );
+ assertEquals( ( byte ) 0xEF, pageIos[1].getData().get( pos++ ) );
+
+ // Set the long at the end of the first page and overlapping on the second page
+ // 5 bytes overlapping
+ position = ( Long ) method.invoke( recordManager, 4081, 0x0123456789ABCDEFL, pageIos );
+
+ assertEquals( 4089, position );
+ pos = 4093;
+ assertEquals( 0x01, pageIos[0].getData().get( pos++ ) );
+ assertEquals( 0x23, pageIos[0].getData().get( pos++ ) );
+ assertEquals( 0x45, pageIos[0].getData().get( pos++ ) );
+ pos = 8;
+ assertEquals( 0x67, pageIos[1].getData().get( pos++ ) );
+ assertEquals( ( byte ) 0x89, pageIos[1].getData().get( pos++ ) );
+ assertEquals( ( byte ) 0xAB, pageIos[1].getData().get( pos++ ) );
+ assertEquals( ( byte ) 0xCD, pageIos[1].getData().get( pos++ ) );
+ assertEquals( ( byte ) 0xEF, pageIos[1].getData().get( pos++ ) );
+
+ // Set the long at the end of the first page and overlapping on the second page
+ // 6 bytes overlapping
+ position = ( Long ) method.invoke( recordManager, 4082, 0x0123456789ABCDEFL, pageIos );
+
+ assertEquals( 4090, position );
+ pos = 4094;
+ assertEquals( 0x01, pageIos[0].getData().get( pos++ ) );
+ assertEquals( 0x23, pageIos[0].getData().get( pos++ ) );
+ pos = 8;
+ assertEquals( 0x45, pageIos[1].getData().get( pos++ ) );
+ assertEquals( 0x67, pageIos[1].getData().get( pos++ ) );
+ assertEquals( ( byte ) 0x89, pageIos[1].getData().get( pos++ ) );
+ assertEquals( ( byte ) 0xAB, pageIos[1].getData().get( pos++ ) );
+ assertEquals( ( byte ) 0xCD, pageIos[1].getData().get( pos++ ) );
+ assertEquals( ( byte ) 0xEF, pageIos[1].getData().get( pos++ ) );
+
+ // Set the long at the end of the first page and overlapping on the second page
+ // 7 bytes overlapping
+ position = ( Long ) method.invoke( recordManager, 4083, 0x0123456789ABCDEFL, pageIos );
+
+ assertEquals( 4091, position );
+ pos = 4095;
+ assertEquals( 0x01, pageIos[0].getData().get( pos++ ) );
+ pos = 8;
+ assertEquals( 0x23, pageIos[1].getData().get( pos++ ) );
+ assertEquals( 0x45, pageIos[1].getData().get( pos++ ) );
+ assertEquals( 0x67, pageIos[1].getData().get( pos++ ) );
+ assertEquals( ( byte ) 0x89, pageIos[1].getData().get( pos++ ) );
+ assertEquals( ( byte ) 0xAB, pageIos[1].getData().get( pos++ ) );
+ assertEquals( ( byte ) 0xCD, pageIos[1].getData().get( pos++ ) );
+ assertEquals( ( byte ) 0xEF, pageIos[1].getData().get( pos++ ) );
+
+ // Set the long at the beginning of the second page
+ position = ( Long ) method.invoke( recordManager, 4084, 0x0123456789ABCDEFL, pageIos );
+
+ assertEquals( 4092, position );
+ pos = 8;
+ assertEquals( 0x01, pageIos[1].getData().get( pos++ ) );
+ assertEquals( 0x23, pageIos[1].getData().get( pos++ ) );
+ assertEquals( 0x45, pageIos[1].getData().get( pos++ ) );
+ assertEquals( 0x67, pageIos[1].getData().get( pos++ ) );
+ assertEquals( ( byte ) 0x89, pageIos[1].getData().get( pos++ ) );
+ assertEquals( ( byte ) 0xAB, pageIos[1].getData().get( pos++ ) );
+ assertEquals( ( byte ) 0xCD, pageIos[1].getData().get( pos++ ) );
+ assertEquals( ( byte ) 0xEF, pageIos[1].getData().get( pos++ ) );
+ }
+
+
+ /**
+ * Test the store( bytes ) method
+ */
+ @Test
+ public void testInjectBytes() throws Exception
+ {
+ File tempFile = File.createTempFile( "mavibot", ".db" );
+ String tempFileName = tempFile.getAbsolutePath();
+ tempFile.deleteOnExit();
+
+ // We use smaller pages
+ RecordManager recordManager = new RecordManager( tempFileName, 32 );
+ Method storeMethod = RecordManager.class.getDeclaredMethod( "store", long.class, byte[].class, PageIO[].class );
+ storeMethod.setAccessible( true );
+
+ // Allocate some Pages
+ PageIO[] pageIos = new PageIO[4];
+ pageIos[0] = new PageIO();
+ pageIos[0].setData( ByteBuffer.allocate( recordManager.getPageSize() ) );
+ pageIos[1] = new PageIO();
+ pageIos[1].setData( ByteBuffer.allocate( recordManager.getPageSize() ) );
+ pageIos[2] = new PageIO();
+ pageIos[2].setData( ByteBuffer.allocate( recordManager.getPageSize() ) );
+ pageIos[3] = new PageIO();
+ pageIos[3].setData( ByteBuffer.allocate( recordManager.getPageSize() ) );
+
+ // We start with 4 bytes
+ byte[] bytes = new byte[]
+ { 0x01, 0x23, 0x45, 0x67 };
+
+ // Set the bytes at the beginning
+ long position = ( Long ) storeMethod.invoke( recordManager, 0L, bytes, pageIos );
+
+ assertEquals( 8, position );
+ int pos = 12;
+ // The byte length
+ assertEquals( 0x00, pageIos[0].getData().get( pos++ ) );
+ assertEquals( 0x00, pageIos[0].getData().get( pos++ ) );
+ assertEquals( 0x00, pageIos[0].getData().get( pos++ ) );
+ assertEquals( 0x04, pageIos[0].getData().get( pos++ ) );
+ // The data
+ assertEquals( 0x01, pageIos[0].getData().get( pos++ ) );
+ assertEquals( 0x23, pageIos[0].getData().get( pos++ ) );
+ assertEquals( 0x45, pageIos[0].getData().get( pos++ ) );
+ assertEquals( 0x67, pageIos[0].getData().get( pos++ ) );
+
+ // Set the bytes at the end of the first page
+ position = ( Long ) storeMethod.invoke( recordManager, 12L, bytes, pageIos );
+
+ assertEquals( 20, position );
+ pos = 24;
+ // The byte length
+ assertEquals( 0x00, pageIos[0].getData().get( pos++ ) );
+ assertEquals( 0x00, pageIos[0].getData().get( pos++ ) );
+ assertEquals( 0x00, pageIos[0].getData().get( pos++ ) );
+ assertEquals( 0x04, pageIos[0].getData().get( pos++ ) );
+ // The data
+ assertEquals( 0x01, pageIos[0].getData().get( pos++ ) );
+ assertEquals( 0x23, pageIos[0].getData().get( pos++ ) );
+ assertEquals( 0x45, pageIos[0].getData().get( pos++ ) );
+ assertEquals( 0x67, pageIos[0].getData().get( pos++ ) );
+
+ // Set A full page of bytes in the first page
+ bytes = new byte[16];
+
+ for ( int i = 0; i < 16; i++ )
+ {
+ bytes[i] = ( byte ) ( i + 1 );
+ }
+
+ position = ( Long ) storeMethod.invoke( recordManager, 0L, bytes, pageIos );
+
+ assertEquals( 20, position );
+ pos = 12;
+ // The byte length
+ assertEquals( 0x00, pageIos[0].getData().get( pos++ ) );
+ assertEquals( 0x00, pageIos[0].getData().get( pos++ ) );
+ assertEquals( 0x00, pageIos[0].getData().get( pos++ ) );
+ assertEquals( 0x10, pageIos[0].getData().get( pos++ ) );
+
+ // The data
+ for ( int i = 0; i < 16; i++ )
+ {
+ assertEquals( ( byte ) ( i + 1 ), pageIos[0].getData().get( pos++ ) );
+ }
+
+ // Write the bytes over 2 pages
+ position = ( Long ) storeMethod.invoke( recordManager, 15L, bytes, pageIos );
+
+ assertEquals( 35, position );
+ pos = 27;
+ // The byte length
+ assertEquals( 0x00, pageIos[0].getData().get( pos++ ) );
+ assertEquals( 0x00, pageIos[0].getData().get( pos++ ) );
+ assertEquals( 0x00, pageIos[0].getData().get( pos++ ) );
+ assertEquals( 0x10, pageIos[0].getData().get( pos++ ) );
+
+ // The data in the first page
+ assertEquals( 1, pageIos[0].getData().get( pos++ ) );
+
+ // and in the second page
+ pos = 8;
+
+ for ( int i = 0; i < 15; i++ )
+ {
+ assertEquals( ( byte ) ( i + 2 ), pageIos[1].getData().get( pos++ ) );
+ }
+
+ // Write the bytes over 4 pages
+ bytes = new byte[80];
+
+ for ( int i = 0; i < 80; i++ )
+ {
+ bytes[i] = ( byte ) ( i + 1 );
+ }
+
+ position = ( Long ) storeMethod.invoke( recordManager, 2L, bytes, pageIos );
+
+ assertEquals( 86, position );
+ pos = 14;
+ // The byte length
+ assertEquals( 0x00, pageIos[0].getData().get( pos++ ) );
+ assertEquals( 0x00, pageIos[0].getData().get( pos++ ) );
+ assertEquals( 0x00, pageIos[0].getData().get( pos++ ) );
+ assertEquals( 0x50, pageIos[0].getData().get( pos++ ) );
+
+ // The data in the first page
+ for ( int i = 0; i < 14; i++ )
+ {
+ assertEquals( ( byte ) ( i + 1 ), pageIos[0].getData().get( pos++ ) );
+ }
+
+ // The data in the second page
+ pos = 8;
+ for ( int i = 14; i < 38; i++ )
+ {
+ assertEquals( ( byte ) ( i + 1 ), pageIos[1].getData().get( pos++ ) );
+ }
+
+ // The data in the third page
+ pos = 8;
+ for ( int i = 38; i < 62; i++ )
+ {
+ assertEquals( ( byte ) ( i + 1 ), pageIos[2].getData().get( pos++ ) );
+ }
+
+ // The data in the forth page
+ pos = 8;
+ for ( int i = 62; i < 80; i++ )
+ {
+ assertEquals( ( byte ) ( i + 1 ), pageIos[3].getData().get( pos++ ) );
+ }
+ }
+}
Added: directory/mavibot/trunk/mavibot/src/test/java/org/apache/directory/mavibot/btree/comparator/BooleanArrayComparatorTest.java
URL: http://svn.apache.org/viewvc/directory/mavibot/trunk/mavibot/src/test/java/org/apache/directory/mavibot/btree/comparator/BooleanArrayComparatorTest.java?rev=1510115&view=auto
==============================================================================
--- directory/mavibot/trunk/mavibot/src/test/java/org/apache/directory/mavibot/btree/comparator/BooleanArrayComparatorTest.java (added)
+++ directory/mavibot/trunk/mavibot/src/test/java/org/apache/directory/mavibot/btree/comparator/BooleanArrayComparatorTest.java Sun Aug 4 09:22:56 2013
@@ -0,0 +1,83 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.apache.directory.mavibot.btree.comparator;
+
+
+import static org.junit.Assert.assertEquals;
+
+import org.apache.directory.mavibot.btree.comparator.BooleanArrayComparator;
+import org.junit.Test;
+
+
+/**
+ * Test the BooleanArrayComparator class
+ *
+ * @author <a href="mailto:labs@labs.apache.org">Mavibot labs Project</a>
+ */
+public class BooleanArrayComparatorTest
+{
+ @Test
+ public void testBooleanArrayComparator()
+ {
+ BooleanArrayComparator comparator = new BooleanArrayComparator();
+
+ assertEquals( 0, comparator.compare( null, null ) );
+
+ boolean[] b1 = new boolean[]
+ { true, true, true };
+ boolean[] b2 = new boolean[]
+ { true, true, false };
+ boolean[] b3 = new boolean[]
+ { true, false, true };
+ boolean[] b4 = new boolean[]
+ { false, true, true };
+ boolean[] b5 = new boolean[]
+ { true, true };
+
+ // 0
+ assertEquals( 0, comparator.compare( null, null ) );
+ assertEquals( 0, comparator.compare( new boolean[]
+ {}, new boolean[]
+ {} ) );
+ assertEquals( 0, comparator.compare( b1, b1 ) );
+
+ // -1
+ assertEquals( -1, comparator.compare( null, new boolean[]
+ {} ) );
+ assertEquals( -1, comparator.compare( null, b1 ) );
+ assertEquals( -1, comparator.compare( new boolean[]
+ {}, b1 ) );
+ assertEquals( -1, comparator.compare( new boolean[]
+ {}, b4 ) );
+ assertEquals( -1, comparator.compare( b5, b1 ) );
+ assertEquals( -1, comparator.compare( b5, b3 ) );
+
+ // 1
+ assertEquals( 1, comparator.compare( new boolean[]
+ {}, null ) );
+ assertEquals( 1, comparator.compare( b1, null ) );
+ assertEquals( 1, comparator.compare( b1, new boolean[]
+ {} ) );
+ assertEquals( 1, comparator.compare( b1, b2 ) );
+ assertEquals( 1, comparator.compare( b1, b3 ) );
+ assertEquals( 1, comparator.compare( b1, b4 ) );
+ assertEquals( 1, comparator.compare( b1, b5 ) );
+ }
+}
Added: directory/mavibot/trunk/mavibot/src/test/java/org/apache/directory/mavibot/btree/comparator/BooleanComparatorTest.java
URL: http://svn.apache.org/viewvc/directory/mavibot/trunk/mavibot/src/test/java/org/apache/directory/mavibot/btree/comparator/BooleanComparatorTest.java?rev=1510115&view=auto
==============================================================================
--- directory/mavibot/trunk/mavibot/src/test/java/org/apache/directory/mavibot/btree/comparator/BooleanComparatorTest.java (added)
+++ directory/mavibot/trunk/mavibot/src/test/java/org/apache/directory/mavibot/btree/comparator/BooleanComparatorTest.java Sun Aug 4 09:22:56 2013
@@ -0,0 +1,51 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.apache.directory.mavibot.btree.comparator;
+
+
+import static org.junit.Assert.assertEquals;
+
+import org.apache.directory.mavibot.btree.comparator.BooleanComparator;
+import org.junit.Test;
+
+
+/**
+ * Test the BooleanComparator class
+ *
+ * @author <a href="mailto:labs@labs.apache.org">Mavibot labs Project</a>
+ */
+public class BooleanComparatorTest
+{
+ @Test
+ public void testBooleanComparator()
+ {
+ BooleanComparator comparator = new BooleanComparator();
+
+ assertEquals( 0, comparator.compare( null, null ) );
+ assertEquals( 0, comparator.compare( true, true ) );
+ assertEquals( 0, comparator.compare( false, false ) );
+ assertEquals( 1, comparator.compare( false, null ) );
+ assertEquals( 1, comparator.compare( true, null ) );
+ assertEquals( 1, comparator.compare( true, false ) );
+ assertEquals( -1, comparator.compare( null, false ) );
+ assertEquals( -1, comparator.compare( null, true ) );
+ assertEquals( -1, comparator.compare( false, true ) );
+ }
+}
Added: directory/mavibot/trunk/mavibot/src/test/java/org/apache/directory/mavibot/btree/comparator/ByteArrayComparatorTest.java
URL: http://svn.apache.org/viewvc/directory/mavibot/trunk/mavibot/src/test/java/org/apache/directory/mavibot/btree/comparator/ByteArrayComparatorTest.java?rev=1510115&view=auto
==============================================================================
--- directory/mavibot/trunk/mavibot/src/test/java/org/apache/directory/mavibot/btree/comparator/ByteArrayComparatorTest.java (added)
+++ directory/mavibot/trunk/mavibot/src/test/java/org/apache/directory/mavibot/btree/comparator/ByteArrayComparatorTest.java Sun Aug 4 09:22:56 2013
@@ -0,0 +1,88 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.apache.directory.mavibot.btree.comparator;
+
+
+import static org.junit.Assert.assertEquals;
+
+import org.apache.directory.mavibot.btree.comparator.ByteArrayComparator;
+import org.junit.Test;
+
+
+/**
+ * Test the ByteArrayComparator class
+ *
+ * @author <a href="mailto:labs@labs.apache.org">Mavibot labs Project</a>
+ */
+public class ByteArrayComparatorTest
+{
+ @Test
+ public void testByteArrayComparator()
+ {
+ ByteArrayComparator comparator = new ByteArrayComparator();
+
+ // Check equality
+ assertEquals( 0, comparator.compare( null, null ) );
+ assertEquals( 0, comparator.compare( new byte[]
+ {}, new byte[]
+ {} ) );
+ assertEquals( 0, comparator.compare( new byte[]
+ { 0x01, 0x02 }, new byte[]
+ { 0x01, 0x02 } ) );
+
+ // The first byte[] is > the second
+ assertEquals( 1, comparator.compare( new byte[]
+ {}, null ) );
+ assertEquals( 1, comparator.compare( new byte[]
+ { 0x01 }, null ) );
+ assertEquals( 1, comparator.compare( new byte[]
+ { 0x01, 0x02 }, new byte[]
+ { 0x01, 0x01 } ) );
+ assertEquals( 1, comparator.compare( new byte[]
+ { 0x01, 0x02, 0x01 }, new byte[]
+ { 0x01, 0x02 } ) );
+ assertEquals( 1, comparator.compare( new byte[]
+ { 0x01, 0x02 }, new byte[]
+ { 0x01, 0x01, 0x02 } ) );
+
+ // The first byte[] is < the second
+ assertEquals( -1, comparator.compare( null, new byte[]
+ {} ) );
+ assertEquals( -1, comparator.compare( null, new byte[]
+ { 0x01, 0x02 } ) );
+ assertEquals( -1, comparator.compare( null, new byte[]
+ { ( byte ) 0xFF, 0x02 } ) );
+ assertEquals( -1, comparator.compare( new byte[]
+ {}, new byte[]
+ { 0x01, 0x02 } ) );
+ assertEquals( -1, comparator.compare( new byte[]
+ {}, new byte[]
+ { ( byte ) 0xFF, 0x02 } ) );
+ assertEquals( -1, comparator.compare( new byte[]
+ { ( byte ) 0xFF, 0x01 }, new byte[]
+ { 0x01, 0x01, 0x02 } ) );
+ byte[] array = new byte[3];
+ array[0] = 0x01;
+ array[1] = 0x02;
+ assertEquals( -1, comparator.compare( new byte[]
+ { 0x01, 0x02 }, array ) );
+
+ }
+}
Added: directory/mavibot/trunk/mavibot/src/test/java/org/apache/directory/mavibot/btree/comparator/ByteComparatorTest.java
URL: http://svn.apache.org/viewvc/directory/mavibot/trunk/mavibot/src/test/java/org/apache/directory/mavibot/btree/comparator/ByteComparatorTest.java?rev=1510115&view=auto
==============================================================================
--- directory/mavibot/trunk/mavibot/src/test/java/org/apache/directory/mavibot/btree/comparator/ByteComparatorTest.java (added)
+++ directory/mavibot/trunk/mavibot/src/test/java/org/apache/directory/mavibot/btree/comparator/ByteComparatorTest.java Sun Aug 4 09:22:56 2013
@@ -0,0 +1,54 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.apache.directory.mavibot.btree.comparator;
+
+
+import static org.junit.Assert.assertEquals;
+
+import org.apache.directory.mavibot.btree.comparator.ByteComparator;
+import org.junit.Test;
+
+
+/**
+ * Test the ByteComparator class
+ *
+ * @author <a href="mailto:labs@labs.apache.org">Mavibot labs Project</a>
+ */
+public class ByteComparatorTest
+{
+ @Test
+ public void testByteComparator()
+ {
+ ByteComparator comparator = new ByteComparator();
+
+ assertEquals( 0, comparator.compare( null, null ) );
+ assertEquals( 0, comparator.compare( ( byte ) 0x00, ( byte ) 0x00 ) );
+ assertEquals( 0, comparator.compare( ( byte ) 0xFE, ( byte ) 0xFE ) );
+ assertEquals( 1, comparator.compare( ( byte ) 0x01, null ) );
+ assertEquals( 1, comparator.compare( ( byte ) 0x01, ( byte ) 0x00 ) );
+ assertEquals( 1, comparator.compare( ( byte ) 0x00, ( byte ) 0xFF ) );
+ assertEquals( 1, comparator.compare( ( byte ) 0x7F, ( byte ) 0x01 ) );
+ assertEquals( -1, comparator.compare( null, ( byte ) 0x00 ) );
+ assertEquals( -1, comparator.compare( null, ( byte ) 0xFF ) );
+ assertEquals( -1, comparator.compare( ( byte ) 0x00, ( byte ) 0x01 ) );
+ assertEquals( -1, comparator.compare( ( byte ) 0xF0, ( byte ) 0xFF ) );
+ assertEquals( -1, comparator.compare( ( byte ) 0xFF, ( byte ) 0x01 ) );
+ }
+}
Added: directory/mavibot/trunk/mavibot/src/test/java/org/apache/directory/mavibot/btree/comparator/CharArrayComparatorTest.java
URL: http://svn.apache.org/viewvc/directory/mavibot/trunk/mavibot/src/test/java/org/apache/directory/mavibot/btree/comparator/CharArrayComparatorTest.java?rev=1510115&view=auto
==============================================================================
--- directory/mavibot/trunk/mavibot/src/test/java/org/apache/directory/mavibot/btree/comparator/CharArrayComparatorTest.java (added)
+++ directory/mavibot/trunk/mavibot/src/test/java/org/apache/directory/mavibot/btree/comparator/CharArrayComparatorTest.java Sun Aug 4 09:22:56 2013
@@ -0,0 +1,87 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.apache.directory.mavibot.btree.comparator;
+
+
+import static org.junit.Assert.assertEquals;
+
+import org.apache.directory.mavibot.btree.comparator.CharArrayComparator;
+import org.junit.Test;
+
+
+/**
+ * Test the CharArrayComparator class
+ *
+ * @author <a href="mailto:labs@labs.apache.org">Mavibot labs Project</a>
+ */
+public class CharArrayComparatorTest
+{
+ @Test
+ public void testCharArrayComparator()
+ {
+ CharArrayComparator comparator = new CharArrayComparator();
+
+ // Check equality
+ assertEquals( 0, comparator.compare( null, null ) );
+ assertEquals( 0, comparator.compare( new char[]
+ {}, new char[]
+ {} ) );
+ assertEquals( 0, comparator.compare( new char[]
+ { 'a', 'b' }, new char[]
+ { 'a', 'b' } ) );
+
+ // The first char[] is > the second
+ assertEquals( 1, comparator.compare( new char[]
+ {}, null ) );
+ assertEquals( 1, comparator.compare( new char[]
+ { 'a' }, null ) );
+ assertEquals( 1, comparator.compare( new char[]
+ { 'a', 'b' }, new char[]
+ { 'a', 'a' } ) );
+ assertEquals( 1, comparator.compare( new char[]
+ { 'a', 'b', 'a' }, new char[]
+ { 'a', 'b' } ) );
+ assertEquals( 1, comparator.compare( new char[]
+ { 'a', 'b' }, new char[]
+ { 'a', 'a', 'b' } ) );
+
+ // The first char[] is < the second
+ assertEquals( -1, comparator.compare( null, new char[]
+ {} ) );
+ assertEquals( -1, comparator.compare( null, new char[]
+ { 'a', 'b' } ) );
+ assertEquals( -1, comparator.compare( null, new char[]
+ { '\uffff', 'b' } ) );
+ assertEquals( -1, comparator.compare( new char[]
+ {}, new char[]
+ { 'a', 'b' } ) );
+ assertEquals( -1, comparator.compare( new char[]
+ {}, new char[]
+ { '\uffff', 'b' } ) );
+ assertEquals( -1, comparator.compare( new char[]
+ { '0', 'a' }, new char[]
+ { 'a', 'a', 'b' } ) );
+ char[] array = new char[3];
+ array[0] = 'a';
+ array[1] = 'b';
+ assertEquals( -1, comparator.compare( new char[]
+ { 'a', 'b' }, array ) );
+ }
+}
Added: directory/mavibot/trunk/mavibot/src/test/java/org/apache/directory/mavibot/btree/comparator/CharComparatorTest.java
URL: http://svn.apache.org/viewvc/directory/mavibot/trunk/mavibot/src/test/java/org/apache/directory/mavibot/btree/comparator/CharComparatorTest.java?rev=1510115&view=auto
==============================================================================
--- directory/mavibot/trunk/mavibot/src/test/java/org/apache/directory/mavibot/btree/comparator/CharComparatorTest.java (added)
+++ directory/mavibot/trunk/mavibot/src/test/java/org/apache/directory/mavibot/btree/comparator/CharComparatorTest.java Sun Aug 4 09:22:56 2013
@@ -0,0 +1,50 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.apache.directory.mavibot.btree.comparator;
+
+
+import static org.junit.Assert.assertEquals;
+
+import org.apache.directory.mavibot.btree.comparator.CharComparator;
+import org.junit.Test;
+
+
+/**
+ * Test the CharComparator class
+ *
+ * @author <a href="mailto:labs@labs.apache.org">Mavibot labs Project</a>
+ */
+public class CharComparatorTest
+{
+ @Test
+ public void testCharComparator()
+ {
+ CharComparator comparator = new CharComparator();
+
+ assertEquals( 0, comparator.compare( null, null ) );
+ assertEquals( 0, comparator.compare( 'a', 'a' ) );
+ assertEquals( 0, comparator.compare( '\u00e9', '\u00e9' ) );
+ assertEquals( 1, comparator.compare( 'a', null ) );
+ assertEquals( -1, comparator.compare( 'A', 'a' ) );
+ assertEquals( 1, comparator.compare( 'a', 'A' ) );
+ assertEquals( -1, comparator.compare( null, 'a' ) );
+ assertEquals( -1, comparator.compare( 'a', 'b' ) );
+ }
+}
Added: directory/mavibot/trunk/mavibot/src/test/java/org/apache/directory/mavibot/btree/comparator/IntArrayComparatorTest.java
URL: http://svn.apache.org/viewvc/directory/mavibot/trunk/mavibot/src/test/java/org/apache/directory/mavibot/btree/comparator/IntArrayComparatorTest.java?rev=1510115&view=auto
==============================================================================
--- directory/mavibot/trunk/mavibot/src/test/java/org/apache/directory/mavibot/btree/comparator/IntArrayComparatorTest.java (added)
+++ directory/mavibot/trunk/mavibot/src/test/java/org/apache/directory/mavibot/btree/comparator/IntArrayComparatorTest.java Sun Aug 4 09:22:56 2013
@@ -0,0 +1,87 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.apache.directory.mavibot.btree.comparator;
+
+
+import static org.junit.Assert.assertEquals;
+
+import org.apache.directory.mavibot.btree.comparator.IntArrayComparator;
+import org.junit.Test;
+
+
+/**
+ * Test the IntArrayComparator class
+ *
+ * @author <a href="mailto:labs@labs.apache.org">Mavibot labs Project</a>
+ */
+public class IntArrayComparatorTest
+{
+ @Test
+ public void testIntArrayComparator()
+ {
+ IntArrayComparator comparator = new IntArrayComparator();
+
+ // Check equality
+ assertEquals( 0, comparator.compare( null, null ) );
+ assertEquals( 0, comparator.compare( new int[]
+ {}, new int[]
+ {} ) );
+ assertEquals( 0, comparator.compare( new int[]
+ { 1, 2 }, new int[]
+ { 1, 2 } ) );
+
+ // The first int[] is > the second
+ assertEquals( 1, comparator.compare( new int[]
+ {}, null ) );
+ assertEquals( 1, comparator.compare( new int[]
+ { 1 }, null ) );
+ assertEquals( 1, comparator.compare( new int[]
+ { 1, 2 }, new int[]
+ { 1, 1 } ) );
+ assertEquals( 1, comparator.compare( new int[]
+ { 1, 2, 1 }, new int[]
+ { 1, 2 } ) );
+ assertEquals( 1, comparator.compare( new int[]
+ { 1, 2 }, new int[]
+ { 1, 1, 2 } ) );
+
+ // The first int[] is < the second
+ assertEquals( -1, comparator.compare( null, new int[]
+ {} ) );
+ assertEquals( -1, comparator.compare( null, new int[]
+ { 1, 2 } ) );
+ assertEquals( -1, comparator.compare( null, new int[]
+ { -1, 2 } ) );
+ assertEquals( -1, comparator.compare( new int[]
+ {}, new int[]
+ { 1, 2 } ) );
+ assertEquals( -1, comparator.compare( new int[]
+ {}, new int[]
+ { -1, 2 } ) );
+ assertEquals( -1, comparator.compare( new int[]
+ { -1, 1 }, new int[]
+ { 1, 1, 2 } ) );
+ int[] array = new int[3];
+ array[0] = 1;
+ array[1] = 2;
+ assertEquals( -1, comparator.compare( new int[]
+ { 1, 2 }, array ) );
+ }
+}
Added: directory/mavibot/trunk/mavibot/src/test/java/org/apache/directory/mavibot/btree/comparator/IntComparatorTest.java
URL: http://svn.apache.org/viewvc/directory/mavibot/trunk/mavibot/src/test/java/org/apache/directory/mavibot/btree/comparator/IntComparatorTest.java?rev=1510115&view=auto
==============================================================================
--- directory/mavibot/trunk/mavibot/src/test/java/org/apache/directory/mavibot/btree/comparator/IntComparatorTest.java (added)
+++ directory/mavibot/trunk/mavibot/src/test/java/org/apache/directory/mavibot/btree/comparator/IntComparatorTest.java Sun Aug 4 09:22:56 2013
@@ -0,0 +1,52 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.apache.directory.mavibot.btree.comparator;
+
+
+import static org.junit.Assert.assertEquals;
+
+import org.apache.directory.mavibot.btree.comparator.IntComparator;
+import org.junit.Test;
+
+
+/**
+ * Test the IntComparator class
+ *
+ * @author <a href="mailto:labs@labs.apache.org">Mavibot labs Project</a>
+ */
+public class IntComparatorTest
+{
+ @Test
+ public void testIntComparator()
+ {
+ IntComparator comparator = new IntComparator();
+
+ assertEquals( 0, comparator.compare( null, null ) );
+ assertEquals( 0, comparator.compare( 1, 1 ) );
+ assertEquals( 0, comparator.compare( -1, -1 ) );
+ assertEquals( 1, comparator.compare( 1, null ) );
+ assertEquals( 1, comparator.compare( 2, 1 ) );
+ assertEquals( 1, comparator.compare( 3, 1 ) );
+ assertEquals( 1, comparator.compare( 1, -1 ) );
+ assertEquals( -1, comparator.compare( null, 1 ) );
+ assertEquals( -1, comparator.compare( 1, 2 ) );
+ assertEquals( -1, comparator.compare( -1, 1 ) );
+ }
+}
Added: directory/mavibot/trunk/mavibot/src/test/java/org/apache/directory/mavibot/btree/comparator/LongArrayComparatorTest.java
URL: http://svn.apache.org/viewvc/directory/mavibot/trunk/mavibot/src/test/java/org/apache/directory/mavibot/btree/comparator/LongArrayComparatorTest.java?rev=1510115&view=auto
==============================================================================
--- directory/mavibot/trunk/mavibot/src/test/java/org/apache/directory/mavibot/btree/comparator/LongArrayComparatorTest.java (added)
+++ directory/mavibot/trunk/mavibot/src/test/java/org/apache/directory/mavibot/btree/comparator/LongArrayComparatorTest.java Sun Aug 4 09:22:56 2013
@@ -0,0 +1,87 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.apache.directory.mavibot.btree.comparator;
+
+
+import static org.junit.Assert.assertEquals;
+
+import org.apache.directory.mavibot.btree.comparator.LongArrayComparator;
+import org.junit.Test;
+
+
+/**
+ * Test the LongArrayComparator class
+ *
+ * @author <a href="mailto:labs@labs.apache.org">Mavibot labs Project</a>
+ */
+public class LongArrayComparatorTest
+{
+ @Test
+ public void testLongArrayComparator()
+ {
+ LongArrayComparator comparator = new LongArrayComparator();
+
+ // Check equality
+ assertEquals( 0, comparator.compare( null, null ) );
+ assertEquals( 0, comparator.compare( new long[]
+ {}, new long[]
+ {} ) );
+ assertEquals( 0, comparator.compare( new long[]
+ { 1L, 2L }, new long[]
+ { 1L, 2L } ) );
+
+ // The first long[] is > the second
+ assertEquals( 1, comparator.compare( new long[]
+ {}, null ) );
+ assertEquals( 1, comparator.compare( new long[]
+ { 1L }, null ) );
+ assertEquals( 1, comparator.compare( new long[]
+ { 1L, 2L }, new long[]
+ { 1L, 1L } ) );
+ assertEquals( 1, comparator.compare( new long[]
+ { 1L, 2L, 1L }, new long[]
+ { 1L, 2L } ) );
+ assertEquals( 1, comparator.compare( new long[]
+ { 1L, 2L }, new long[]
+ { 1L, 1L, 2L } ) );
+
+ // The first long[] is < the second
+ assertEquals( -1, comparator.compare( null, new long[]
+ {} ) );
+ assertEquals( -1, comparator.compare( null, new long[]
+ { 1L, 2L } ) );
+ assertEquals( -1, comparator.compare( null, new long[]
+ { -1L, 2L } ) );
+ assertEquals( -1, comparator.compare( new long[]
+ {}, new long[]
+ { 1L, 2L } ) );
+ assertEquals( -1, comparator.compare( new long[]
+ {}, new long[]
+ { -1L, 2L } ) );
+ assertEquals( -1, comparator.compare( new long[]
+ { -1L, 1L }, new long[]
+ { 1L, 1L, 2L } ) );
+ long[] array = new long[3];
+ array[0] = 1L;
+ array[1] = 2L;
+ assertEquals( -1, comparator.compare( new long[]
+ { 1L, 2L }, array ) );
+ }
+}
Added: directory/mavibot/trunk/mavibot/src/test/java/org/apache/directory/mavibot/btree/comparator/LongComparatorTest.java
URL: http://svn.apache.org/viewvc/directory/mavibot/trunk/mavibot/src/test/java/org/apache/directory/mavibot/btree/comparator/LongComparatorTest.java?rev=1510115&view=auto
==============================================================================
--- directory/mavibot/trunk/mavibot/src/test/java/org/apache/directory/mavibot/btree/comparator/LongComparatorTest.java (added)
+++ directory/mavibot/trunk/mavibot/src/test/java/org/apache/directory/mavibot/btree/comparator/LongComparatorTest.java Sun Aug 4 09:22:56 2013
@@ -0,0 +1,52 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.apache.directory.mavibot.btree.comparator;
+
+
+import static org.junit.Assert.assertEquals;
+
+import org.apache.directory.mavibot.btree.comparator.LongComparator;
+import org.junit.Test;
+
+
+/**
+ * Test the LongComparator class
+ *
+ * @author <a href="mailto:labs@labs.apache.org">Mavibot labs Project</a>
+ */
+public class LongComparatorTest
+{
+ @Test
+ public void testLongComparator()
+ {
+ LongComparator comparator = new LongComparator();
+
+ assertEquals( 0, comparator.compare( null, null ) );
+ assertEquals( 0, comparator.compare( 1L, 1L ) );
+ assertEquals( 0, comparator.compare( -1L, -1L ) );
+ assertEquals( 1, comparator.compare( 1L, null ) );
+ assertEquals( 1, comparator.compare( 2L, 1L ) );
+ assertEquals( 1, comparator.compare( 3L, 1L ) );
+ assertEquals( 1, comparator.compare( 1L, -1L ) );
+ assertEquals( -1, comparator.compare( null, 1L ) );
+ assertEquals( -1, comparator.compare( 1L, 2L ) );
+ assertEquals( -1, comparator.compare( -1L, 1L ) );
+ }
+}
Added: directory/mavibot/trunk/mavibot/src/test/java/org/apache/directory/mavibot/btree/comparator/RevisionNameComparatorTest.java
URL: http://svn.apache.org/viewvc/directory/mavibot/trunk/mavibot/src/test/java/org/apache/directory/mavibot/btree/comparator/RevisionNameComparatorTest.java?rev=1510115&view=auto
==============================================================================
--- directory/mavibot/trunk/mavibot/src/test/java/org/apache/directory/mavibot/btree/comparator/RevisionNameComparatorTest.java (added)
+++ directory/mavibot/trunk/mavibot/src/test/java/org/apache/directory/mavibot/btree/comparator/RevisionNameComparatorTest.java Sun Aug 4 09:22:56 2013
@@ -0,0 +1,49 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.apache.directory.mavibot.btree.comparator;
+
+
+import static org.junit.Assert.assertEquals;
+
+import org.apache.directory.mavibot.btree.RevisionName;
+import org.apache.directory.mavibot.btree.RevisionNameComparator;
+import org.junit.Test;
+
+
+/**
+ * Test the RevisionNameComparator class
+ *
+ * @author <a href="mailto:labs@labs.apache.org">Mavibot labs Project</a>
+ */
+public class RevisionNameComparatorTest
+{
+ @Test
+ public void testRevisionNameComparator()
+ {
+ RevisionNameComparator comparator = new RevisionNameComparator();
+
+ assertEquals( 0, comparator.compare( null, null ) );
+ assertEquals( 0, comparator.compare( new RevisionName( 0L, "test" ), new RevisionName( 0L, "test" ) ) );
+ assertEquals( 1, comparator.compare( new RevisionName( 3L, "test" ), new RevisionName( 0L, "test" ) ) );
+ assertEquals( -1, comparator.compare( new RevisionName( 3L, "test" ), new RevisionName( 5L, "test" ) ) );
+ assertEquals( 1, comparator.compare( new RevisionName( 3L, "test2" ), new RevisionName( 3L, "test1" ) ) );
+ assertEquals( -1, comparator.compare( new RevisionName( 3L, "test" ), new RevisionName( 3L, "test2" ) ) );
+ }
+}
Added: directory/mavibot/trunk/mavibot/src/test/java/org/apache/directory/mavibot/btree/comparator/ShortArrayComparatorTest.java
URL: http://svn.apache.org/viewvc/directory/mavibot/trunk/mavibot/src/test/java/org/apache/directory/mavibot/btree/comparator/ShortArrayComparatorTest.java?rev=1510115&view=auto
==============================================================================
--- directory/mavibot/trunk/mavibot/src/test/java/org/apache/directory/mavibot/btree/comparator/ShortArrayComparatorTest.java (added)
+++ directory/mavibot/trunk/mavibot/src/test/java/org/apache/directory/mavibot/btree/comparator/ShortArrayComparatorTest.java Sun Aug 4 09:22:56 2013
@@ -0,0 +1,87 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.apache.directory.mavibot.btree.comparator;
+
+
+import static org.junit.Assert.assertEquals;
+
+import org.apache.directory.mavibot.btree.comparator.ShortArrayComparator;
+import org.junit.Test;
+
+
+/**
+ * Test the ShortArrayComparator class
+ *
+ * @author <a href="mailto:labs@labs.apache.org">Mavibot labs Project</a>
+ */
+public class ShortArrayComparatorTest
+{
+ @Test
+ public void testShortArrayComparator()
+ {
+ ShortArrayComparator comparator = new ShortArrayComparator();
+
+ // Check equality
+ assertEquals( 0, comparator.compare( null, null ) );
+ assertEquals( 0, comparator.compare( new short[]
+ {}, new short[]
+ {} ) );
+ assertEquals( 0, comparator.compare( new short[]
+ { ( short ) 1, ( short ) 2 }, new short[]
+ { ( short ) 1, ( short ) 2 } ) );
+
+ // The first short[] is > the second
+ assertEquals( 1, comparator.compare( new short[]
+ {}, null ) );
+ assertEquals( 1, comparator.compare( new short[]
+ { ( short ) 1 }, null ) );
+ assertEquals( 1, comparator.compare( new short[]
+ { ( short ) 1, ( short ) 2 }, new short[]
+ { ( short ) 1, ( short ) 1 } ) );
+ assertEquals( 1, comparator.compare( new short[]
+ { ( short ) 1, ( short ) 2, ( short ) 1 }, new short[]
+ { ( short ) 1, ( short ) 2 } ) );
+ assertEquals( 1, comparator.compare( new short[]
+ { ( short ) 1, ( short ) 2 }, new short[]
+ { ( short ) 1, ( short ) 1, ( short ) 2 } ) );
+
+ // The first short[] is < the second
+ assertEquals( -1, comparator.compare( null, new short[]
+ {} ) );
+ assertEquals( -1, comparator.compare( null, new short[]
+ { ( short ) 1, ( short ) 2 } ) );
+ assertEquals( -1, comparator.compare( null, new short[]
+ { ( short ) -1, ( short ) 2 } ) );
+ assertEquals( -1, comparator.compare( new short[]
+ {}, new short[]
+ { ( short ) 1, ( short ) 2 } ) );
+ assertEquals( -1, comparator.compare( new short[]
+ {}, new short[]
+ { ( short ) -1, ( short ) 2 } ) );
+ assertEquals( -1, comparator.compare( new short[]
+ { ( short ) -1, ( short ) 1 }, new short[]
+ { ( short ) 1, ( short ) 1, ( short ) 2 } ) );
+ short[] array = new short[3];
+ array[0] = ( short ) 1;
+ array[1] = ( short ) 2;
+ assertEquals( -1, comparator.compare( new short[]
+ { ( short ) 1, ( short ) 2 }, array ) );
+ }
+}
Added: directory/mavibot/trunk/mavibot/src/test/java/org/apache/directory/mavibot/btree/comparator/ShortComparatorTest.java
URL: http://svn.apache.org/viewvc/directory/mavibot/trunk/mavibot/src/test/java/org/apache/directory/mavibot/btree/comparator/ShortComparatorTest.java?rev=1510115&view=auto
==============================================================================
--- directory/mavibot/trunk/mavibot/src/test/java/org/apache/directory/mavibot/btree/comparator/ShortComparatorTest.java (added)
+++ directory/mavibot/trunk/mavibot/src/test/java/org/apache/directory/mavibot/btree/comparator/ShortComparatorTest.java Sun Aug 4 09:22:56 2013
@@ -0,0 +1,52 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.apache.directory.mavibot.btree.comparator;
+
+
+import static org.junit.Assert.assertEquals;
+
+import org.apache.directory.mavibot.btree.comparator.ShortComparator;
+import org.junit.Test;
+
+
+/**
+ * Test the ShortComparator class
+ *
+ * @author <a href="mailto:labs@labs.apache.org">Mavibot labs Project</a>
+ */
+public class ShortComparatorTest
+{
+ @Test
+ public void testShortComparator()
+ {
+ ShortComparator comparator = new ShortComparator();
+
+ assertEquals( 0, comparator.compare( null, null ) );
+ assertEquals( 0, comparator.compare( ( short ) 1, ( short ) 1 ) );
+ assertEquals( 0, comparator.compare( ( short ) -1, ( short ) -1 ) );
+ assertEquals( 1, comparator.compare( ( short ) 1, null ) );
+ assertEquals( 1, comparator.compare( ( short ) 2, ( short ) 1 ) );
+ assertEquals( 1, comparator.compare( ( short ) 3, ( short ) 1 ) );
+ assertEquals( 1, comparator.compare( ( short ) 1, ( short ) -1 ) );
+ assertEquals( -1, comparator.compare( null, ( short ) 1 ) );
+ assertEquals( -1, comparator.compare( ( short ) 1, ( short ) 2 ) );
+ assertEquals( -1, comparator.compare( ( short ) -1, ( short ) 1 ) );
+ }
+}
Added: directory/mavibot/trunk/mavibot/src/test/java/org/apache/directory/mavibot/btree/comparator/StringComparatorTest.java
URL: http://svn.apache.org/viewvc/directory/mavibot/trunk/mavibot/src/test/java/org/apache/directory/mavibot/btree/comparator/StringComparatorTest.java?rev=1510115&view=auto
==============================================================================
--- directory/mavibot/trunk/mavibot/src/test/java/org/apache/directory/mavibot/btree/comparator/StringComparatorTest.java (added)
+++ directory/mavibot/trunk/mavibot/src/test/java/org/apache/directory/mavibot/btree/comparator/StringComparatorTest.java Sun Aug 4 09:22:56 2013
@@ -0,0 +1,52 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.apache.directory.mavibot.btree.comparator;
+
+
+import static org.junit.Assert.assertEquals;
+
+import org.apache.directory.mavibot.btree.comparator.StringComparator;
+import org.junit.Test;
+
+
+/**
+ * Test the StringComparator class
+ *
+ * @author <a href="mailto:labs@labs.apache.org">Mavibot labs Project</a>
+ */
+public class StringComparatorTest
+{
+ @Test
+ public void testStringComparator()
+ {
+ StringComparator comparator = new StringComparator();
+
+ assertEquals( 0, comparator.compare( null, null ) );
+ assertEquals( 0, comparator.compare( "", "" ) );
+ assertEquals( 0, comparator.compare( "abc", "abc" ) );
+ assertEquals( 1, comparator.compare( "", null ) );
+ assertEquals( 1, comparator.compare( "abc", "" ) );
+ assertEquals( 1, comparator.compare( "ac", "ab" ) );
+ assertEquals( 1, comparator.compare( "abc", "ab" ) );
+ assertEquals( -1, comparator.compare( null, "" ) );
+ assertEquals( -1, comparator.compare( "ab", "abc" ) );
+ assertEquals( -1, comparator.compare( "ab", "abc" ) );
+ }
+}
Added: directory/mavibot/trunk/mavibot/src/test/java/org/apache/directory/mavibot/btree/serializer/BooleanSerializerTest.java
URL: http://svn.apache.org/viewvc/directory/mavibot/trunk/mavibot/src/test/java/org/apache/directory/mavibot/btree/serializer/BooleanSerializerTest.java?rev=1510115&view=auto
==============================================================================
--- directory/mavibot/trunk/mavibot/src/test/java/org/apache/directory/mavibot/btree/serializer/BooleanSerializerTest.java (added)
+++ directory/mavibot/trunk/mavibot/src/test/java/org/apache/directory/mavibot/btree/serializer/BooleanSerializerTest.java Sun Aug 4 09:22:56 2013
@@ -0,0 +1,60 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.apache.directory.mavibot.btree.serializer;
+
+
+import static org.junit.Assert.assertEquals;
+
+import java.io.IOException;
+
+import org.apache.directory.mavibot.btree.serializer.BooleanSerializer;
+import org.apache.directory.mavibot.btree.serializer.BufferHandler;
+import org.junit.Test;
+
+
+/**
+ * Test the BooleanSerializer class
+ *
+ * @author <a href="mailto:labs@labs.apache.org">Mavibot labs Project</a>
+ */
+public class BooleanSerializerTest
+{
+ private static BooleanSerializer serializer = new BooleanSerializer();
+
+
+ @Test
+ public void testBooleanSerializer() throws IOException
+ {
+ boolean value = true;
+ byte[] result = serializer.serialize( value );
+
+ assertEquals( ( byte ) 0x01, result[0] );
+
+ assertEquals( value, serializer.deserialize( new BufferHandler( result ) ).booleanValue() );
+
+ // ------------------------------------------------------------------
+ value = false;
+ result = serializer.serialize( value );
+
+ assertEquals( ( byte ) 0x00, result[0] );
+
+ assertEquals( value, serializer.deserialize( new BufferHandler( result ) ).booleanValue() );
+ }
+}
Added: directory/mavibot/trunk/mavibot/src/test/java/org/apache/directory/mavibot/btree/serializer/ByteArraySerializerTest.java
URL: http://svn.apache.org/viewvc/directory/mavibot/trunk/mavibot/src/test/java/org/apache/directory/mavibot/btree/serializer/ByteArraySerializerTest.java?rev=1510115&view=auto
==============================================================================
--- directory/mavibot/trunk/mavibot/src/test/java/org/apache/directory/mavibot/btree/serializer/ByteArraySerializerTest.java (added)
+++ directory/mavibot/trunk/mavibot/src/test/java/org/apache/directory/mavibot/btree/serializer/ByteArraySerializerTest.java Sun Aug 4 09:22:56 2013
@@ -0,0 +1,87 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.apache.directory.mavibot.btree.serializer;
+
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+import java.io.IOException;
+import java.util.Arrays;
+
+import org.apache.directory.mavibot.btree.serializer.BufferHandler;
+import org.apache.directory.mavibot.btree.serializer.ByteArraySerializer;
+import org.junit.Test;
+
+
+/**
+ * Test the BytesSerializer class
+ *
+ * @author <a href="mailto:labs@labs.apache.org">Mavibot labs Project</a>
+ */
+public class ByteArraySerializerTest
+{
+ private static ByteArraySerializer serializer = new ByteArraySerializer();
+
+
+ @Test
+ public void testBytesSerializer() throws IOException
+ {
+ byte[] value = null;
+ byte[] result = serializer.serialize( value );
+
+ assertEquals( 4, result.length );
+ assertEquals( ( byte ) 0xFF, result[0] );
+ assertEquals( ( byte ) 0xFF, result[1] );
+ assertEquals( ( byte ) 0xFF, result[2] );
+ assertEquals( ( byte ) 0xFF, result[3] );
+
+ assertEquals( value, serializer.deserialize( new BufferHandler( result ) ) );
+
+ // ------------------------------------------------------------------
+ value = new byte[]
+ {};
+ result = serializer.serialize( value );
+
+ assertEquals( 4, result.length );
+ assertEquals( ( byte ) 0x00, result[0] );
+ assertEquals( ( byte ) 0x00, result[1] );
+ assertEquals( ( byte ) 0x00, result[2] );
+ assertEquals( ( byte ) 0x00, result[3] );
+
+ assertTrue( Arrays.equals( value, serializer.deserialize( new BufferHandler( result ) ) ) );
+
+ // ------------------------------------------------------------------
+ value = "test".getBytes();
+ result = serializer.serialize( value );
+
+ assertEquals( 8, result.length );
+ assertEquals( ( byte ) 0x00, result[0] );
+ assertEquals( ( byte ) 0x00, result[1] );
+ assertEquals( ( byte ) 0x00, result[2] );
+ assertEquals( ( byte ) 0x04, result[3] );
+ assertEquals( 't', result[4] );
+ assertEquals( 'e', result[5] );
+ assertEquals( 's', result[6] );
+ assertEquals( 't', result[7] );
+
+ assertTrue( Arrays.equals( value, serializer.deserialize( new BufferHandler( result ) ) ) );
+ }
+}
Added: directory/mavibot/trunk/mavibot/src/test/java/org/apache/directory/mavibot/btree/serializer/ByteSerializerTest.java
URL: http://svn.apache.org/viewvc/directory/mavibot/trunk/mavibot/src/test/java/org/apache/directory/mavibot/btree/serializer/ByteSerializerTest.java?rev=1510115&view=auto
==============================================================================
--- directory/mavibot/trunk/mavibot/src/test/java/org/apache/directory/mavibot/btree/serializer/ByteSerializerTest.java (added)
+++ directory/mavibot/trunk/mavibot/src/test/java/org/apache/directory/mavibot/btree/serializer/ByteSerializerTest.java Sun Aug 4 09:22:56 2013
@@ -0,0 +1,84 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.apache.directory.mavibot.btree.serializer;
+
+
+import static org.junit.Assert.assertEquals;
+
+import java.io.IOException;
+
+import org.apache.directory.mavibot.btree.serializer.BufferHandler;
+import org.apache.directory.mavibot.btree.serializer.ByteSerializer;
+import org.junit.Test;
+
+
+/**
+ * Test the ByteSerializer class
+ *
+ * @author <a href="mailto:labs@labs.apache.org">Mavibot labs Project</a>
+ */
+public class ByteSerializerTest
+{
+ private static ByteSerializer serializer = new ByteSerializer();
+
+
+ @Test
+ public void testByteSerializer() throws IOException
+ {
+ byte value = 0x00;
+ byte[] result = serializer.serialize( value );
+
+ assertEquals( ( byte ) 0x00, result[0] );
+
+ assertEquals( value, serializer.deserialize( new BufferHandler( result ) ).byteValue() );
+
+ // ------------------------------------------------------------------
+ value = 0x01;
+ result = serializer.serialize( value );
+
+ assertEquals( ( byte ) 0x01, result[0] );
+
+ assertEquals( value, serializer.deserialize( new BufferHandler( result ) ).byteValue() );
+
+ // ------------------------------------------------------------------
+ value = 0x7F;
+ result = serializer.serialize( value );
+
+ assertEquals( ( byte ) 0x7F, result[0] );
+
+ assertEquals( value, serializer.deserialize( new BufferHandler( result ) ).byteValue() );
+
+ // ------------------------------------------------------------------
+ value = ( byte ) 0x80;
+ result = serializer.serialize( value );
+
+ assertEquals( ( byte ) 0x80, result[0] );
+
+ assertEquals( value, serializer.deserialize( new BufferHandler( result ) ).byteValue() );
+
+ // ------------------------------------------------------------------
+ value = ( byte ) 0xFF;
+ result = serializer.serialize( value );
+
+ assertEquals( ( byte ) 0xFF, result[0] );
+
+ assertEquals( value, serializer.deserialize( new BufferHandler( result ) ).byteValue() );
+ }
+}
Added: directory/mavibot/trunk/mavibot/src/test/java/org/apache/directory/mavibot/btree/serializer/CharSerializerTest.java
URL: http://svn.apache.org/viewvc/directory/mavibot/trunk/mavibot/src/test/java/org/apache/directory/mavibot/btree/serializer/CharSerializerTest.java?rev=1510115&view=auto
==============================================================================
--- directory/mavibot/trunk/mavibot/src/test/java/org/apache/directory/mavibot/btree/serializer/CharSerializerTest.java (added)
+++ directory/mavibot/trunk/mavibot/src/test/java/org/apache/directory/mavibot/btree/serializer/CharSerializerTest.java Sun Aug 4 09:22:56 2013
@@ -0,0 +1,107 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.apache.directory.mavibot.btree.serializer;
+
+
+import static org.junit.Assert.assertEquals;
+
+import java.io.IOException;
+
+import org.apache.directory.mavibot.btree.serializer.BufferHandler;
+import org.apache.directory.mavibot.btree.serializer.CharSerializer;
+import org.junit.Test;
+
+
+/**
+ * Test the CharSerializer class
+ *
+ * @author <a href="mailto:labs@labs.apache.org">Mavibot labs Project</a>
+ */
+public class CharSerializerTest
+{
+ private static CharSerializer serializer = new CharSerializer();
+
+
+ @Test
+ public void testCharSerializer() throws IOException
+ {
+ char value = 0x0000;
+ byte[] result = serializer.serialize( value );
+
+ assertEquals( ( byte ) 0x00, result[1] );
+ assertEquals( ( byte ) 0x00, result[0] );
+
+ assertEquals( value, serializer.deserialize( new BufferHandler( result ) ).charValue() );
+
+ // ------------------------------------------------------------------
+ value = 0x0001;
+ result = serializer.serialize( value );
+
+ assertEquals( ( byte ) 0x01, result[1] );
+ assertEquals( ( byte ) 0x00, result[0] );
+
+ assertEquals( value, serializer.deserialize( new BufferHandler( result ) ).charValue() );
+
+ // ------------------------------------------------------------------
+ value = 0x00FF;
+ result = serializer.serialize( value );
+
+ assertEquals( ( byte ) 0xFF, result[1] );
+ assertEquals( ( byte ) 0x00, result[0] );
+
+ assertEquals( value, serializer.deserialize( new BufferHandler( result ) ).charValue() );
+
+ // ------------------------------------------------------------------
+ value = 0x0100;
+ result = serializer.serialize( value );
+
+ assertEquals( ( byte ) 0x00, result[1] );
+ assertEquals( ( byte ) 0x01, result[0] );
+
+ assertEquals( value, serializer.deserialize( new BufferHandler( result ) ).charValue() );
+
+ // ------------------------------------------------------------------
+ value = 0x7FFF;
+ result = serializer.serialize( value );
+
+ assertEquals( ( byte ) 0xFF, result[1] );
+ assertEquals( ( byte ) 0x7F, result[0] );
+
+ assertEquals( value, serializer.deserialize( new BufferHandler( result ) ).charValue() );
+
+ // ------------------------------------------------------------------
+ value = 0x8000;
+ result = serializer.serialize( value );
+
+ assertEquals( ( byte ) 0x00, result[1] );
+ assertEquals( ( byte ) 0x80, result[0] );
+
+ assertEquals( value, serializer.deserialize( new BufferHandler( result ) ).charValue() );
+
+ // ------------------------------------------------------------------
+ value = 0xFFFF;
+ result = serializer.serialize( value );
+
+ assertEquals( ( byte ) 0xFF, result[1] );
+ assertEquals( ( byte ) 0xFF, result[0] );
+
+ assertEquals( value, serializer.deserialize( new BufferHandler( result ) ).charValue() );
+ }
+}
Added: directory/mavibot/trunk/mavibot/src/test/java/org/apache/directory/mavibot/btree/serializer/IntSerializerTest.java
URL: http://svn.apache.org/viewvc/directory/mavibot/trunk/mavibot/src/test/java/org/apache/directory/mavibot/btree/serializer/IntSerializerTest.java?rev=1510115&view=auto
==============================================================================
--- directory/mavibot/trunk/mavibot/src/test/java/org/apache/directory/mavibot/btree/serializer/IntSerializerTest.java (added)
+++ directory/mavibot/trunk/mavibot/src/test/java/org/apache/directory/mavibot/btree/serializer/IntSerializerTest.java Sun Aug 4 09:22:56 2013
@@ -0,0 +1,165 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.apache.directory.mavibot.btree.serializer;
+
+
+import static org.junit.Assert.assertEquals;
+
+import java.io.IOException;
+
+import org.apache.directory.mavibot.btree.serializer.BufferHandler;
+import org.apache.directory.mavibot.btree.serializer.IntSerializer;
+import org.junit.Test;
+
+
+/**
+ * Test the IntSerializer class
+ *
+ * @author <a href="mailto:labs@labs.apache.org">Mavibot labs Project</a>
+ */
+public class IntSerializerTest
+{
+ private static IntSerializer serializer = new IntSerializer();
+
+
+ @Test
+ public void testIntSerializer() throws IOException
+ {
+ int value = 0x00000000;
+ byte[] result = serializer.serialize( value );
+
+ assertEquals( ( byte ) 0x00, result[3] );
+ assertEquals( ( byte ) 0x00, result[2] );
+ assertEquals( ( byte ) 0x00, result[1] );
+ assertEquals( ( byte ) 0x00, result[0] );
+
+ assertEquals( value, serializer.deserialize( new BufferHandler( result ) ).intValue() );
+
+ // ------------------------------------------------------------------
+ value = 0x00000001;
+ result = serializer.serialize( value );
+
+ assertEquals( ( byte ) 0x01, result[3] );
+ assertEquals( ( byte ) 0x00, result[2] );
+ assertEquals( ( byte ) 0x00, result[1] );
+ assertEquals( ( byte ) 0x00, result[0] );
+
+ assertEquals( value, serializer.deserialize( new BufferHandler( result ) ).intValue() );
+
+ // ------------------------------------------------------------------
+ value = 0x000000FF;
+ result = serializer.serialize( value );
+
+ assertEquals( ( byte ) 0xFF, result[3] );
+ assertEquals( ( byte ) 0x00, result[2] );
+ assertEquals( ( byte ) 0x00, result[1] );
+ assertEquals( ( byte ) 0x00, result[0] );
+
+ assertEquals( value, serializer.deserialize( new BufferHandler( result ) ).intValue() );
+
+ // ------------------------------------------------------------------
+ value = 0x00000100;
+ result = serializer.serialize( value );
+
+ assertEquals( ( byte ) 0x00, result[3] );
+ assertEquals( ( byte ) 0x01, result[2] );
+ assertEquals( ( byte ) 0x00, result[1] );
+ assertEquals( ( byte ) 0x00, result[0] );
+
+ assertEquals( value, serializer.deserialize( new BufferHandler( result ) ).intValue() );
+
+ // ------------------------------------------------------------------
+ value = 0x0000FFFF;
+ result = serializer.serialize( value );
+
+ assertEquals( ( byte ) 0xFF, result[3] );
+ assertEquals( ( byte ) 0xFF, result[2] );
+ assertEquals( ( byte ) 0x00, result[1] );
+ assertEquals( ( byte ) 0x00, result[0] );
+
+ assertEquals( value, serializer.deserialize( new BufferHandler( result ) ).intValue() );
+
+ // ------------------------------------------------------------------
+ value = 0x00010000;
+ result = serializer.serialize( value );
+
+ assertEquals( ( byte ) 0x00, result[3] );
+ assertEquals( ( byte ) 0x00, result[2] );
+ assertEquals( ( byte ) 0x01, result[1] );
+ assertEquals( ( byte ) 0x00, result[0] );
+
+ assertEquals( value, serializer.deserialize( new BufferHandler( result ) ).intValue() );
+
+ // ------------------------------------------------------------------
+ value = 0x00FFFFFF;
+ result = serializer.serialize( value );
+
+ assertEquals( ( byte ) 0xFF, result[3] );
+ assertEquals( ( byte ) 0xFF, result[2] );
+ assertEquals( ( byte ) 0xFF, result[1] );
+ assertEquals( ( byte ) 0x00, result[0] );
+
+ assertEquals( value, serializer.deserialize( new BufferHandler( result ) ).intValue() );
+
+ // ------------------------------------------------------------------
+ value = 0x01000000;
+ result = serializer.serialize( value );
+
+ assertEquals( ( byte ) 0x00, result[3] );
+ assertEquals( ( byte ) 0x00, result[2] );
+ assertEquals( ( byte ) 0x00, result[1] );
+ assertEquals( ( byte ) 0x01, result[0] );
+
+ assertEquals( value, serializer.deserialize( new BufferHandler( result ) ).intValue() );
+
+ // ------------------------------------------------------------------
+ value = 0x7FFFFFFF;
+ result = serializer.serialize( value );
+
+ assertEquals( ( byte ) 0x00FF, result[3] );
+ assertEquals( ( byte ) 0x00FF, result[2] );
+ assertEquals( ( byte ) 0x00FF, result[1] );
+ assertEquals( ( byte ) 0x7F, result[0] );
+
+ assertEquals( value, serializer.deserialize( new BufferHandler( result ) ).intValue() );
+
+ // ------------------------------------------------------------------
+ value = 0x80000000;
+ result = serializer.serialize( value );
+
+ assertEquals( ( byte ) 0x00, result[3] );
+ assertEquals( ( byte ) 0x00, result[2] );
+ assertEquals( ( byte ) 0x00, result[1] );
+ assertEquals( ( byte ) 0x80, result[0] );
+
+ assertEquals( value, serializer.deserialize( new BufferHandler( result ) ).intValue() );
+
+ // ------------------------------------------------------------------
+ value = 0xFFFFFFFF;
+ result = serializer.serialize( value );
+
+ assertEquals( ( byte ) 0xFF, result[3] );
+ assertEquals( ( byte ) 0xFF, result[2] );
+ assertEquals( ( byte ) 0xFF, result[1] );
+ assertEquals( ( byte ) 0xFF, result[0] );
+
+ assertEquals( value, serializer.deserialize( new BufferHandler( result ) ).intValue() );
+ }
+}