1 21 package com.db4o.db4ounit.jre11.btree; 22 23 import com.db4o.*; 24 import com.db4o.db4ounit.common.btree.*; 25 import com.db4o.foundation.ArgumentNullException; 26 import com.db4o.inside.btree.*; 27 28 import db4ounit.*; 29 30 31 32 public class BTreeNullKeyTestCase extends BTreeTestCaseBase { 33 34 public void testKeysCantBeNull() { 35 final Integer value = null; 36 Assert.expect(ArgumentNullException.class, new CodeBlock() { 37 public void run() throws Exception { 38 add(value); 39 } 40 }); 41 } 42 43 public void testMultipleNullFieldIndexKeys() { 44 YapStream stream=trans().stream(); 45 FieldIndexKeyHandler keyHandler = new FieldIndexKeyHandler(stream,new YInt(stream)); 46 BTree btree=new BTree(trans(), 0, keyHandler, null, 7, stream.configImpl().bTreeCacheHeight()); 47 48 final Integer [] keys = new Integer [] { new Integer (1), null, new Integer (2), null, new Integer (3) }; 49 for (int idx = 0; idx < keys.length; idx++) { 50 btree.add(trans(),new FieldIndexKey(42,keys[idx])); 51 } 52 commit(); 53 54 BTreeRange range = btree.search(trans(), new FieldIndexKey(42,null)); 55 Assert.areEqual(2,range.size()); 56 57 BTreeNodeSearchResult lower=btree.searchLeaf(trans(), new FieldIndexKey(42,null),SearchTarget.LOWEST); 58 BTreeNodeSearchResult higher=btree.searchLeaf(trans(), new FieldIndexKey(42,null),SearchTarget.HIGHEST); 59 range=lower.createIncludingRange(higher); 60 Assert.areEqual(2,range.size()); 61 } 62 63 private void add(Object element) { 64 _btree.add(trans(), element); 65 } 66 67 public static void main(String [] args) { 68 new BTreeNullKeyTestCase().runSolo(); 69 } 70 } 71 | Popular Tags |