01: package org.drools.rule;
02:
03: import junit.framework.TestCase;
04:
05: import org.drools.Cheese;
06: import org.drools.base.ClassObjectType;
07: import org.drools.facttemplates.Fact;
08: import org.drools.facttemplates.FactTemplate;
09: import org.drools.facttemplates.FactTemplateImpl;
10: import org.drools.facttemplates.FactTemplateObjectType;
11: import org.drools.facttemplates.FieldTemplate;
12: import org.drools.facttemplates.FieldTemplateImpl;
13: import org.drools.spi.Extractor;
14: import org.drools.spi.ObjectType;
15:
16: public class PatternTest extends TestCase {
17:
18: public void testDeclarationsObjectType() throws Exception {
19: final ObjectType type = new ClassObjectType(Cheese.class);
20: final Pattern col = new Pattern(0, type, "foo");
21: final Declaration dec = col.getDeclaration();
22: final Extractor ext = dec.getExtractor();
23: assertEquals(Cheese.class, ext.getExtractToClass());
24:
25: final Cheese stilton = new Cheese("stilton", 42);
26:
27: assertEquals(stilton, dec.getValue(null, stilton));
28:
29: }
30:
31: public void testDeclarationsFactTemplate() throws Exception {
32:
33: final Package pkg = new Package("org.store");
34: final FieldTemplate cheeseName = new FieldTemplateImpl("name",
35: 0, String.class);
36: final FieldTemplate cheesePrice = new FieldTemplateImpl(
37: "price", 1, Integer.class);
38: final FieldTemplate[] fields = new FieldTemplate[] {
39: cheeseName, cheesePrice };
40: final FactTemplate cheese = new FactTemplateImpl(pkg, "Cheese",
41: fields);
42:
43: final ObjectType type = new FactTemplateObjectType(cheese);
44:
45: final Pattern col = new Pattern(0, type, "foo");
46: final Declaration dec = col.getDeclaration();
47: final Extractor ext = dec.getExtractor();
48: assertEquals(Fact.class, ext.getExtractToClass());
49:
50: final Fact stilton = cheese.createFact(10);
51: stilton.setFieldValue("name", "stilton");
52: stilton.setFieldValue("price", new Integer(200));
53:
54: assertEquals(stilton, dec.getValue(null, stilton));
55: }
56:
57: }
|