1 package org.drools.reteoo.impl;
2
3 import org.drools.AssertionException;
4 import org.drools.reteoo.MockTupleSource;
5 import org.drools.rule.Declaration;
6 import org.drools.semantics.java.ClassObjectType;
7
8 import org.drools.spi.InstrumentedExtractor;
9
10 import junit.framework.TestCase;
11
12 import java.util.Set;
13 import java.util.List;
14
15 public class ExtractionNodeImplTest extends TestCase
16 {
17 public ExtractionNodeImplTest(String name)
18 {
19 super( name );
20 }
21
22 public void setUp()
23 {
24
25 }
26
27 public void tearDown()
28 {
29
30 }
31
32 public void testGetTupleDeclarations()
33 {
34 Declaration stringDecl = new Declaration( new ClassObjectType( String.class ),
35 "string" );
36
37 Declaration objectDecl = new Declaration( new ClassObjectType( Object.class),
38 "object" );
39
40 MockTupleSource source = new MockTupleSource();
41
42 source.addTupleDeclaration( stringDecl );
43
44 ExtractionNodeImpl extractNode = new ExtractionNodeImpl( source,
45 objectDecl,
46 null );
47
48 Set decls = extractNode.getTupleDeclarations();
49
50 assertEquals( 2,
51 decls.size() );
52
53 assertTrue( decls.contains( objectDecl ) );
54 assertTrue( decls.contains( stringDecl ) );
55 }
56
57 public void testAssertTuple()
58 {
59 Declaration stringDecl = new Declaration( new ClassObjectType( String.class ),
60 "string" );
61
62 Declaration objectDecl = new Declaration( new ClassObjectType( Object.class),
63 "object" );
64
65 MockTupleSource source = new MockTupleSource();
66
67 source.addTupleDeclaration( objectDecl );
68
69 ExtractionNodeImpl extractNode = new ExtractionNodeImpl( source,
70 stringDecl,
71 new InstrumentedExtractor( "cheese" ) );
72
73 InstrumentedTupleSink sink = new InstrumentedTupleSink();
74
75 extractNode.setTupleSink( sink );
76
77 ReteTuple tuple = new ReteTuple();
78
79 try
80 {
81 extractNode.assertTuple( tuple,
82 null );
83
84 List assertedTuples = sink.getAssertedTuples();
85
86 assertEquals( 1,
87 assertedTuples.size() );
88
89 ReteTuple assertedTuple = (ReteTuple) assertedTuples.get( 0 );
90
91 Object value = assertedTuple.get( stringDecl );
92
93 assertNotNull( value );
94
95 assertEquals( "cheese",
96 value );
97 }
98 catch (AssertionException e)
99 {
100 fail( e.toString() );
101 }
102 }
103 }
104
This page was automatically generated by Maven