1 package org.mmbase.storage.search.implementation; 2 3 import junit.framework.*; 4 import java.util.*; 5 import org.mmbase.module.core.*; 6 import org.mmbase.module.corebuilders.*; 7 import org.mmbase.storage.search.*; 8 9 15 public class ModifiableQueryTest extends TestCase { 16 17 private final static String IMAGES = "images"; 18 private final static String TITLE = "title"; 19 private final static String DESCRIPTION = "description"; 20 private final static String NEWS = "news"; 21 22 private final static int MAX_NUMBER1 = 123; 23 private final static int MAX_NUMBER2 = 456; 24 private final static int OFFSET1 = 987; 25 private final static int OFFSET2 = 654; 26 27 28 private ModifiableQuery instance = null; 29 30 31 private BasicSearchQuery query = null; 32 33 private MMBase mmbase = null; 34 private MMObjectBuilder images = null; 35 private MMObjectBuilder news = null; 36 private FieldDefs imagesTitle = null; 37 private FieldDefs imagesDescription = null; 38 private Step step1 = null; 39 private StepField field1 = null; 40 41 public ModifiableQueryTest(java.lang.String testName) { 42 super(testName); 43 } 44 45 public static void main(java.lang.String [] args) { 46 junit.textui.TestRunner.run(suite()); 47 } 48 49 52 public void setUp() throws Exception { 53 MMBaseContext.init(); 54 mmbase = MMBase.getMMBase(); 55 images = mmbase.getBuilder(IMAGES); 56 imagesTitle = images.getField(TITLE); 57 imagesDescription = images.getField(DESCRIPTION); 58 news = mmbase.getBuilder(NEWS); 59 news.getField(TITLE); 60 61 query = new BasicSearchQuery(); 63 step1 = query.addStep(images); 64 field1 = query.addField(step1, imagesTitle); 65 instance = new ModifiableQuery(query); 66 } 67 68 71 public void tearDown() throws Exception {} 72 73 74 public void testSetMaxNumber() { 75 query.setMaxNumber(MAX_NUMBER1); 76 assertTrue(instance.getMaxNumber() == MAX_NUMBER1); 77 instance.setMaxNumber(MAX_NUMBER2); 78 assertTrue(instance.getMaxNumber() == MAX_NUMBER2); 79 ModifiableQuery result = instance.setMaxNumber(-1); 80 assertTrue(instance.getMaxNumber() == MAX_NUMBER1); 81 assertTrue(result == instance); 82 } 83 84 85 public void testSetOffset() { 86 query.setOffset(OFFSET1); 87 assertTrue(instance.getOffset() == OFFSET1); 88 instance.setOffset(OFFSET2); 89 assertTrue(instance.getOffset() == OFFSET2); 90 ModifiableQuery result = instance.setOffset(-1); 91 assertTrue(instance.getOffset() == OFFSET1); 92 assertTrue(result == instance); 93 } 94 95 96 public void testGetMaxNumber() { 97 testSetMaxNumber(); 99 } 100 101 102 public void testGetOffset() { 103 testSetOffset(); 105 } 106 107 108 public void testSetConstraint() { 109 Constraint c1 = new BasicFieldNullConstraint(field1); 110 Constraint c2 = new BasicFieldValueConstraint(field1, "jjfkljfd"); 111 query.setConstraint(c1); 112 assertTrue(instance.getConstraint().equals(c1)); 113 instance.setConstraint(c2); 114 assertTrue(instance.getConstraint().equals(c2)); 115 ModifiableQuery result = instance.setConstraint(null); 116 assertTrue(instance.getConstraint().equals(c1)); 117 assertTrue(result == instance); 118 } 119 120 121 public void testGetConstraint() { 122 testSetConstraint(); 124 } 125 126 127 public void testSetFields() { 128 StepField field2 = new BasicStepField(step1, imagesDescription); 129 List fields1 = new ArrayList(); 130 fields1.add(field1); 131 List fields2 = new ArrayList(); 132 fields2.add(field2); 133 134 assertTrue(instance.getFields().equals(fields1)); 135 instance.setFields(fields2); 136 assertTrue(instance.getFields().equals(fields2)); 137 ModifiableQuery result = instance.setFields(null); 138 assertTrue(instance.getFields().equals(fields1)); 139 assertTrue(result == instance); 140 } 141 142 143 public void testGetFields() { 144 testSetFields(); 146 } 147 148 149 public void testSetSortOrders() { 150 BasicSortOrder so1 = query.addSortOrder(field1) 151 .setDirection(SortOrder.ORDER_ASCENDING); 152 List sortOrders1 = new ArrayList(); 153 sortOrders1.add(so1); 154 BasicSortOrder so2 = new BasicSortOrder(field1) 155 .setDirection(SortOrder.ORDER_DESCENDING); 156 List sortOrders2 = new ArrayList(); 157 sortOrders2.add(so2); 158 159 assertTrue(instance.getSortOrders().equals(sortOrders1)); 160 instance.setSortOrders(sortOrders2); 161 assertTrue(instance.getSortOrders().equals(sortOrders2)); 162 ModifiableQuery result = instance.setSortOrders(null); 163 assertTrue(instance.getSortOrders().equals(sortOrders1)); 164 assertTrue(result == instance); 165 } 166 167 168 public void testGetSortOrders() { 169 testSetSortOrders(); 171 } 172 173 174 public void testSetSteps() { 175 Step step2 = query.addStep(news); 176 List steps1 = new ArrayList(); 177 steps1.add(step1); 178 steps1.add(step2); 179 List steps2 = new ArrayList(); 180 steps2.add(step1); 181 182 assertTrue(instance.getSteps().equals(steps1)); 183 instance.setSteps(steps2); 184 assertTrue(instance.getSteps().equals(steps2)); 185 ModifiableQuery result = instance.setSteps(null); 186 assertTrue(instance.getSteps().equals(steps1)); 187 assertTrue(result == instance); 188 } 189 190 191 public void testGetSteps() { 192 testSetSteps(); 194 } 195 196 197 public void testSetDistinct() { 198 assertTrue(!instance.isDistinct()); 199 instance.setDistinct(Boolean.TRUE); 200 assertTrue(instance.isDistinct()); 201 ModifiableQuery result = instance.setDistinct(null); 202 assertTrue(!instance.isDistinct()); 203 assertTrue(result == instance); 204 } 205 206 207 public void testIsDistinct() { 208 testSetDistinct(); 210 } 211 212 public void testSetAggregating() { 213 assertTrue(!instance.isAggregating()); 214 instance.setAggregating(Boolean.TRUE); 215 assertTrue(instance.isAggregating()); 216 ModifiableQuery result = instance.setAggregating(null); 217 assertTrue(!instance.isAggregating()); 218 assertTrue(result == instance); 219 } 220 221 public void testIsAggregating() { 222 testSetAggregating(); 224 } 225 226 public static Test suite() { 227 TestSuite suite = new TestSuite(ModifiableQueryTest.class); 228 229 return suite; 230 } 231 232 } 233 | Popular Tags |