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.storage.search.*; 7 8 14 public class BasicCompositeConstraintTest extends TestCase { 15 16 private final static int TEST_OPERATOR = CompositeConstraint.LOGICAL_AND; 17 18 19 private BasicCompositeConstraint instance = null; 20 21 public BasicCompositeConstraintTest(java.lang.String testName) { 22 super(testName); 23 } 24 25 public static void main(java.lang.String [] args) { 26 junit.textui.TestRunner.run(suite()); 27 } 28 29 32 public void setUp() throws Exception { 33 MMBaseContext.init(); 34 MMBase.getMMBase(); 35 instance = new BasicCompositeConstraint(TEST_OPERATOR); 36 } 37 38 41 public void tearDown() throws Exception {} 42 43 44 public void testAddChild() { 45 try { 47 instance.addChild(null); 48 fail("Null child, should throw IllegalArgumentException."); 49 } catch (IllegalArgumentException e) {} 50 51 try { 53 instance.addChild(instance); 54 fail("Trying to add constraint as child to itself, should throw IllegalArgumentException."); 55 } catch (IllegalArgumentException e) {} 56 57 List childs = instance.getChilds(); 58 assertTrue(childs.size() == 0); 59 60 Constraint constraint1 = new BasicConstraint(); 61 instance.addChild(constraint1); 62 childs = instance.getChilds(); 63 assertTrue(childs.size() == 1); 64 assertTrue(childs.get(0).equals(constraint1)); 65 Constraint constraint2 = new BasicConstraint(); 66 BasicCompositeConstraint result = instance.addChild(constraint2); 67 childs = instance.getChilds(); 68 assertTrue(childs.size() == 2); 69 assertTrue(childs.get(0).equals(constraint1)); 70 assertTrue(childs.get(1).equals(constraint2)); 71 assertTrue(result == instance); 72 } 73 74 75 public void testConstructor() { 76 try { 78 new BasicCompositeConstraint(CompositeConstraint.LOGICAL_OR + 10); 79 fail("Invalid logical operator value, should throw IllegalArgumentException."); 80 } catch (IllegalArgumentException e) {} 81 } 82 83 84 public void testGetChilds() { 85 testAddChild(); 87 88 List childs = instance.getChilds(); 89 Constraint item = new BasicConstraint(); 90 91 try { 93 childs.add(item); 94 fail("Attempt to modify list, must throw UnsupportedOperationException"); 95 } catch (UnsupportedOperationException e) {} 96 try { 97 childs.clear(); 98 fail("Attempt to modify list, must throw UnsupportedOperationException"); 99 } catch (UnsupportedOperationException e) {} 100 } 101 102 103 public void testGetLogicalOperator() { 104 assertTrue(instance.getLogicalOperator() == TEST_OPERATOR); 105 } 106 107 108 109 public void testEquals() { 110 } 112 113 114 public void testHashCode() { 115 } 117 118 119 public void testGetBasicSupportLevel() { 120 assertTrue(instance.getBasicSupportLevel() == SearchQueryHandler.SUPPORT_OPTIMAL); 122 instance.addChild(new TestConstraint(SearchQueryHandler.SUPPORT_OPTIMAL)); 123 assertTrue(instance.getBasicSupportLevel() == SearchQueryHandler.SUPPORT_OPTIMAL); 125 instance.addChild(new TestConstraint(SearchQueryHandler.SUPPORT_NORMAL)); 126 assertTrue(instance.getBasicSupportLevel() == SearchQueryHandler.SUPPORT_NORMAL); 127 instance.addChild(new TestConstraint(SearchQueryHandler.SUPPORT_OPTIMAL)); 128 assertTrue(instance.getBasicSupportLevel() == SearchQueryHandler.SUPPORT_NORMAL); 129 instance.addChild(new TestConstraint(SearchQueryHandler.SUPPORT_WEAK)); 130 assertTrue(instance.getBasicSupportLevel() == SearchQueryHandler.SUPPORT_WEAK); 131 instance.addChild(new TestConstraint(SearchQueryHandler.SUPPORT_OPTIMAL)); 132 assertTrue(instance.getBasicSupportLevel() == SearchQueryHandler.SUPPORT_WEAK); 133 instance.addChild(new TestConstraint(SearchQueryHandler.SUPPORT_NONE)); 134 assertTrue(instance.getBasicSupportLevel() == SearchQueryHandler.SUPPORT_NONE); 135 instance.addChild(new TestConstraint(SearchQueryHandler.SUPPORT_OPTIMAL)); 136 assertTrue(instance.getBasicSupportLevel() == SearchQueryHandler.SUPPORT_NONE); 137 } 138 139 140 public static Test suite() { 141 TestSuite suite = new TestSuite(BasicCompositeConstraintTest.class); 142 143 return suite; 144 } 145 146 } 147 | Popular Tags |