package org.drools.integrationtests;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import org.drools.KnowledgeBase;
import org.drools.KnowledgeBaseFactory;
import org.drools.Order;
import org.drools.OrderItem;
import org.drools.RuleBase;
import org.drools.WorkingMemory;
import org.drools.builder.KnowledgeBuilder;
import org.drools.builder.KnowledgeBuilderFactory;
import org.drools.builder.ResourceType;
import org.drools.compiler.PackageBuilder;
import org.drools.io.ResourceFactory;
import org.drools.rule.Package;
import org.drools.runtime.StatefulKnowledgeSession;
import org.junit.Test;
import static org.junit.Assert.*;
public class QueryTest2 {
@Test
public void testEvalRewrite() throws Exception {
String str = "" +
"package org.drools;\n" +
"global java.util.List results;\n" +
"rule \"eval rewrite\"\n" +
" when\n" +
" $o1 : OrderItem( order.number == 11, $seq : seq == 1 )\n" +
//" $o2 : OrderItem( order.number == $o1.order.number, seq != $seq )\n" +
" $o2 : Order( items[(Integer) 1] == $o1 ) \n" +
" then\n" +
" System.out.println( $o1 + \":\" + $o2 );\n" +
"end \n";
KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
kbuilder.add( ResourceFactory.newByteArrayResource( str.getBytes() ), ResourceType.DRL );
if ( kbuilder.hasErrors() ) {
fail( kbuilder.getErrors().toString() );
}
final Order order1 = new Order( 11,
"Bob" );
final OrderItem item11 = new OrderItem( order1,
1 );
final OrderItem item12 = new OrderItem( order1,
2 );
KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();
kbase.addKnowledgePackages( kbuilder.getKnowledgePackages() );
StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();
ksession.insert( order1 );
ksession.insert( item11 );
ksession.insert( item12 );
ksession.fireAllRules();
}
}