1 21 package com.db4o.db4ounit.common.assorted; 22 23 import com.db4o.*; 24 import com.db4o.query.*; 25 26 import db4ounit.*; 27 import db4ounit.extensions.*; 28 29 30 public class DescendToNullFieldTestCase extends AbstractDb4oTestCase{ 31 32 private static int COUNT = 2; 33 34 public static class ParentItem{ 35 36 public String _name; 37 38 public ChildItem one; 39 40 public ChildItem two; 41 42 public ParentItem(String name, ChildItem child1, ChildItem child2) { 43 _name = name; 44 one = child1; 45 two = child2; 46 } 47 } 48 49 public static class ChildItem{ 50 51 public String _name; 52 53 public ChildItem(String name) { 54 _name = name; 55 } 56 57 } 58 59 protected void store() throws Exception { 60 for (int i = 0; i < COUNT; i++) { 61 store(new ParentItem("one", new ChildItem("one"), null)); 62 } 63 for (int i = 0; i < COUNT; i++) { 64 store(new ParentItem("two", null, new ChildItem("two"))); 65 } 66 67 } 68 69 public void test(){ 70 assertResults("one"); 71 assertResults("two"); 72 } 73 74 private void assertResults(String name){ 75 Query query = newQuery(ParentItem.class); 76 query.descend(name).descend("_name").constrain(name); 77 ObjectSet objectSet = query.execute(); 78 Assert.areEqual(COUNT, objectSet.size()); 79 while(objectSet.hasNext()){ 80 ParentItem parentItem = (ParentItem) objectSet.next(); 81 Assert.areEqual(name, parentItem._name); 82 } 83 } 84 85 } 86 | Popular Tags |