View Javadoc

1   /*
2    *  Licensed to the Apache Software Foundation (ASF) under one
3    *  or more contributor license agreements.  See the NOTICE file
4    *  distributed with this work for additional information
5    *  regarding copyright ownership.  The ASF licenses this file
6    *  to you under the Apache License, Version 2.0 (the
7    *  "License"); you may not use this file except in compliance
8    *  with the License.  You may obtain a copy of the License at
9    *
10   *    http://www.apache.org/licenses/LICENSE-2.0
11   *
12   *  Unless required by applicable law or agreed to in writing,
13   *  software distributed under the License is distributed on an
14   *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15   *  KIND, either express or implied.  See the License for the
16   *  specific language governing permissions and limitations
17   *  under the License.
18   *
19   */
20  package org.apache.directory.mavibot.btree.comparator;
21  
22  
23  import static org.junit.Assert.assertEquals;
24  
25  import org.junit.Test;
26  
27  
28  /**
29   * Test the ByteArrayComparator class
30   * 
31   * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
32   */
33  public class ByteArrayComparatorTest
34  {
35      @Test
36      public void testByteArrayComparator()
37      {
38          ByteArrayComparator comparator = new ByteArrayComparator();
39  
40          // Check equality
41          assertEquals( 0, comparator.compare( null, null ) );
42          assertEquals( 0, comparator.compare( new byte[]
43              {}, new byte[]
44              {} ) );
45          assertEquals( 0, comparator.compare( new byte[]
46              { 0x01, 0x02 }, new byte[]
47              { 0x01, 0x02 } ) );
48  
49          // The first byte[] is > the second
50          assertEquals( 1, comparator.compare( new byte[]
51              {}, null ) );
52          assertEquals( 1, comparator.compare( new byte[]
53              { 0x01 }, null ) );
54          assertEquals( 1, comparator.compare( new byte[]
55              { 0x01, 0x02 }, new byte[]
56              { 0x01, 0x01 } ) );
57          assertEquals( 1, comparator.compare( new byte[]
58              { 0x01, 0x02, 0x01 }, new byte[]
59              { 0x01, 0x02 } ) );
60          assertEquals( 1, comparator.compare( new byte[]
61              { 0x01, 0x02 }, new byte[]
62              { 0x01, 0x01, 0x02 } ) );
63  
64          // The first byte[] is < the second
65          assertEquals( -1, comparator.compare( null, new byte[]
66              {} ) );
67          assertEquals( -1, comparator.compare( null, new byte[]
68              { 0x01, 0x02 } ) );
69          assertEquals( -1, comparator.compare( null, new byte[]
70              { ( byte ) 0xFF, 0x02 } ) );
71          assertEquals( -1, comparator.compare( new byte[]
72              {}, new byte[]
73              { 0x01, 0x02 } ) );
74          assertEquals( -1, comparator.compare( new byte[]
75              {}, new byte[]
76              { ( byte ) 0xFF, 0x02 } ) );
77          assertEquals( -1, comparator.compare( new byte[]
78              { ( byte ) 0xFF, 0x01 }, new byte[]
79              { 0x01, 0x01, 0x02 } ) );
80          byte[] array = new byte[3];
81          array[0] = 0x01;
82          array[1] = 0x02;
83          assertEquals( -1, comparator.compare( new byte[]
84              { 0x01, 0x02 }, array ) );
85  
86      }
87  }