1 2 package org.drools.reteoo.impl; 3 4 import org.drools.AssertionException; 5 import org.drools.RetractionException; 6 import org.drools.semantics.java.ClassObjectType; 7 8 import junit.framework.TestCase; 9 10 import java.util.List; 11 import java.util.Collection; 12 13 public class ReteImplTest extends TestCase 14 { 15 private ReteImpl rete; 16 17 private InstrumentedObjectTypeNode objectTypeNode; 18 private InstrumentedObjectTypeNode stringTypeNode; 19 20 public ReteImplTest(String name) 21 { 22 super( name ); 23 } 24 25 public void setUp() 26 { 27 this.rete = new ReteImpl(); 28 29 this.objectTypeNode = new InstrumentedObjectTypeNode( new ClassObjectType( Object.class ) ); 30 this.stringTypeNode = new InstrumentedObjectTypeNode( new ClassObjectType( String.class ) ); 31 32 this.rete.addObjectTypeNode( this.objectTypeNode ); 33 this.rete.addObjectTypeNode( this.stringTypeNode ); 34 } 35 36 public void tearDown() 37 { 38 this.rete = null; 39 } 40 41 public void testGetObjectTypeNodes() 42 { 43 Collection objectTypeNodes = this.rete.getObjectTypeNodes(); 44 45 assertEquals( 2, 46 objectTypeNodes.size() ); 47 48 assertTrue( objectTypeNodes.contains( this.objectTypeNode ) ); 49 assertTrue( objectTypeNodes.contains( this.stringTypeNode ) ); 50 } 51 52 /*** All objects asserted to a RootNode must be propagated 53 * to all children ObjectTypeNodes. 54 */ 55 public void testAssertObject() 56 { 57 Object object1 = new Object(); 58 String string1 = "cheese"; 59 60 try 61 { 62 this.rete.assertObject( object1, 63 null ); 64 65 this.rete.assertObject( string1, 66 null ); 67 68 List asserted = null; 69 70 // ---------------------------------------- 71 72 asserted = this.objectTypeNode.getAssertedObjects(); 73 74 assertEquals( 2, 75 asserted.size() ); 76 77 assertSame( object1, 78 asserted.get( 0 ) ); 79 80 assertSame( string1, 81 asserted.get( 1 ) ); 82 83 // ---------------------------------------- 84 85 asserted = this.stringTypeNode.getAssertedObjects(); 86 87 assertEquals( 2, 88 asserted.size() ); 89 90 assertSame( object1, 91 asserted.get( 0 ) ); 92 93 assertSame( string1, 94 asserted.get( 1 ) ); 95 96 } 97 catch (AssertionException e) 98 { 99 fail( e.toString() ); 100 } 101 } 102 103 /*** All objects retracted from a RootNode must be propagated 104 * to all children ObjectTypeNodes. 105 */ 106 public void testRetractObject() 107 { 108 Object object1 = new Object(); 109 String string1 = "cheese"; 110 111 try 112 { 113 this.rete.retractObject( object1, 114 null ); 115 116 this.rete.retractObject( string1, 117 null ); 118 119 List retracted = null; 120 121 // ---------------------------------------- 122 123 retracted = this.objectTypeNode.getRetractedObjects(); 124 125 assertEquals( 2, 126 retracted.size() ); 127 128 assertSame( object1, 129 retracted.get( 0 ) ); 130 131 assertSame( string1, 132 retracted.get( 1 ) ); 133 134 // ---------------------------------------- 135 136 retracted = this.stringTypeNode.getRetractedObjects(); 137 138 assertEquals( 2, 139 retracted.size() ); 140 141 assertSame( object1, 142 retracted.get( 0 ) ); 143 144 assertSame( string1, 145 retracted.get( 1 ) ); 146 147 } 148 catch (RetractionException e) 149 { 150 fail( e.toString() ); 151 } 152 } 153 }

This page was automatically generated by Maven