@Test public void testMoreComplexRendering() { final BRLPersistence p = BRXMLPersistence.getInstance(); final RuleModel m = getComplexModel(); final String xml = p.marshal( m ); System.out.println( xml ); assertTrue( xml.indexOf( "org.drools" ) == -1 ); }
public Reader getKnowledgeReader(Resource ruleResource) throws IOException { String brl = loadBrlFile(ruleResource.getReader()); RuleModel model = BRXMLPersistence.getInstance().unmarshal(brl); this.hasDSLSentences=model.hasDSLSentences(); return new StringReader(BRDRLPersistence.getInstance().marshal(model)); }
/** * This will verify that we can load an old BRL change. If this fails, then * backwards compatibility is broken. */ @Test public void testBackwardsCompat() throws Exception { RuleModel m2 = BRXMLPersistence.getInstance().unmarshal( loadResource( "existing_brl.xml" ) ); assertNotNull( m2 ); assertEquals( 3, m2.rhs.length ); }
@Test public void testDefaultMVEL() { RuleModel m = new RuleModel(); String s = BRDRLPersistence.getInstance().marshal( m ); assertTrue( s.indexOf( "mvel" ) > -1 ); m.addAttribute( new RuleAttribute( "dialect", "goober" ) ); s = BRDRLPersistence.getInstance().marshal( m ); assertFalse( s.indexOf( "mvel" ) > -1 ); assertTrue( s.indexOf( "goober" ) > -1 ); }
public Reader getKnowledgeReader(Resource ruleResource) throws IOException { String brl = loadBrlFile(ruleResource.getReader()); RuleModel model = BRXMLPersistence.getInstance().unmarshal(brl); this.hasDSLSentences=model.hasDSLSentences(); return new StringReader(BRDRLPersistence.getInstance().marshal(model)); }
+ "</rule>"; RuleModel rm = BRXMLPersistence.getInstance().unmarshal( xml );
@Test public void testAttr() { RuleModel m = new RuleModel(); m.attributes = new RuleAttribute[ 1 ]; m.attributes[ 0 ] = new RuleAttribute( "enabled", "true" ); final String drl = brlPersistence.marshal( m ); assertTrue( drl.indexOf( "enabled true" ) > 0 ); }
@Test public void testRoundTrip() { final RuleModel m = getComplexModel(); final String xml = BRXMLPersistence.getInstance().marshal( m ); final RuleModel m2 = BRXMLPersistence.getInstance().unmarshal( xml ); assertNotNull( m2 ); assertEquals( m.name, m2.name ); assertEquals( m.lhs.length, m2.lhs.length ); assertEquals( m.rhs.length, m2.rhs.length ); assertEquals( 1, m.attributes.length ); final RuleAttribute at = m.attributes[0]; assertEquals( "no-loop", at.attributeName ); assertEquals( "true", at.value ); final String newXML = BRXMLPersistence.getInstance().marshal( m2 ); assertEquals( xml, newXML ); }
+ "</rule>"; RuleModel rm = BRXMLPersistence.getInstance().unmarshal( xml );
@Test public void testFieldBindingWithNoConstraints() { // to satisfy JBRULES-850 RuleModel m = getModelWithNoConstraints(); String s = BRDRLPersistence.getInstance().marshal( m ); // System.out.println(s); assertTrue( s.indexOf( "Person( f1 : age)" ) != -1 ); }
@Test public void testBasics() { final BRLPersistence p = BRXMLPersistence.getInstance(); final RuleModel m = new RuleModel(); m.addLhsItem( new FactPattern( "Person" ) ); m.addLhsItem( new FactPattern( "Accident" ) ); m.addAttribute( new RuleAttribute( "no-loop", "true" ) ); m.addRhsItem( new ActionInsertFact( "Report" ) ); ActionGlobalCollectionAdd ag = new ActionGlobalCollectionAdd(); ag.factName = "x"; ag.globalName = "g"; m.addRhsItem( ag ); m.name = "my rule"; final String xml = p.marshal( m ); System.out.println( xml ); assertTrue( xml.indexOf( "Person" ) > -1 ); assertTrue( xml.indexOf( "Accident" ) > -1 ); assertTrue( xml.indexOf( "no-loop" ) > -1 ); assertTrue( xml.indexOf( "org.drools" ) == -1 ); assertTrue( xml.indexOf( "addToGlobal" ) > -1 ); RuleModel rm_ = BRXMLPersistence.getInstance().unmarshal( xml ); assertEquals( 2, rm_.rhs.length ); }
@Test public void testMoreComplexRendering() { final RuleModel m = getComplexModel(); String expected = "rule \"Complex Rule\"\n" + "\tno-loop true\n" + "\tsalience -10\n" + "\tagenda-group \"aGroup\"\n" + "\tdialect \"mvel\"\n" + "\twhen\n" + "\t\t>p1 : Person( f1 : age < 42 )\n" + "\t\t>not (Cancel( )) \n" + "\tthen\n" + "\t\t>p1.setStatus( \"rejected\" );\n" + "\t\t>update( p1 );\n" + "\t\t>retract( p1 );\n" + "\t\tSend an email to administrator\n" + "end\n"; final String drl = brlPersistence.marshal( m ); assertEquals( expected, drl ); }
@Test public void testFreeFormLine() { RuleModel m = new RuleModel(); m.name = "with composite"; m.lhs = new IPattern[1]; m.rhs = new IAction[1]; FreeFormLine fl = new FreeFormLine(); fl.text = "Person()"; m.lhs[0] = fl; FreeFormLine fr = new FreeFormLine(); fr.text = "fun()"; m.rhs[0] = fr; String xml = BRXMLPersistence.getInstance().marshal( m ); assertNotNull( xml ); RuleModel m_ = BRXMLPersistence.getInstance().unmarshal( xml ); assertEquals( 1, m_.lhs.length ); assertEquals( 1, m_.rhs.length ); assertEquals( "Person()", ((FreeFormLine) m_.lhs[0]).text ); assertEquals( "fun()", ((FreeFormLine) m_.rhs[0]).text ); }
@Test public void testGenerateEmptyXML() { final BRLPersistence p = BRXMLPersistence.getInstance(); final String xml = p.marshal( new RuleModel() ); assertNotNull( xml ); assertFalse( xml.equals( "" ) ); assertTrue( xml.startsWith( "<rule>" ) ); assertTrue( xml.endsWith( "</rule>" ) ); }
@Test public void testFreeForm() { RuleModel m = new RuleModel(); m.name = "with composite"; m.lhs = new IPattern[ 1 ]; m.rhs = new IAction[ 1 ]; FreeFormLine fl = new FreeFormLine(); fl.text = "Person()"; m.lhs[ 0 ] = fl; FreeFormLine fr = new FreeFormLine(); fr.text = "fun()"; m.rhs[ 0 ] = fr; String drl = brlPersistence.marshal( m ); assertNotNull( drl ); assertTrue( drl.indexOf( "Person()" ) > 0 ); assertTrue( drl.indexOf( "fun()" ) > drl.indexOf( "Person()" ) ); }
@Test public void testGenerateEmptyDRL() { String expected = "rule \"null\"\n\tdialect \"mvel\"\n\twhen\n\tthen\nend\n"; final String drl = brlPersistence.marshal( new RuleModel() ); assertNotNull( drl ); assertEquals( expected, drl ); }
@Test public void testLockOnActive() { RuleModel m = new RuleModel(); m.addAttribute( new RuleAttribute( "lock-on-active", "true" ) ); m.addAttribute( new RuleAttribute( "auto-focus", "true" ) ); m.addAttribute( new RuleAttribute( "duration", "42" ) ); String s = BRDRLPersistence.getInstance().marshal( m ); assertTrue( s.indexOf( "lock-on-active true" ) > -1 ); assertTrue( s.indexOf( "auto-focus true" ) > -1 ); assertTrue( s.indexOf( "duration 42" ) > -1 ); }
@Test public void testInvalidComposite() throws Exception { RuleModel m = new RuleModel(); CompositeFactPattern com = new CompositeFactPattern( "not" ); m.addLhsItem( com ); String s = BRDRLPersistence.getInstance().marshal( m ); assertNotNull( s ); m.addLhsItem( new CompositeFactPattern( "or" ) ); m.addLhsItem( new CompositeFactPattern( "exists" ) ); s = BRDRLPersistence.getInstance().marshal( m ); assertNotNull( s ); }
rm ); String drl = BRDRLPersistence.getInstance().marshal( rm ); assertTrue( drl.indexOf( "age > \"42\"" ) > 0 );