public static void DrlFile(String filename) throws Exception { DrlParser parser = new DrlParser(LanguageLevelOption.DRL5); final PackageDescr pkgOriginal = parser.parse( new InputStreamReader( DumperTestHelper.class.getResourceAsStream( filename ) ) ); final DrlDumper dumper = new DrlDumper(); String result1 = dumper.dump( pkgOriginal ); final PackageDescr pkgDerivated = parser.parse( new StringReader( result1 ) ); String result2 = dumper.dump( pkgDerivated ); System.out.println( result1 ); Assertions.assertThat(result1).isEqualToIgnoringWhitespace(result2); }
public static String dump(String filename) throws Exception { DrlParser parser = new DrlParser(LanguageLevelOption.DRL6); final PackageDescr pkgOriginal = parser.parse( new InputStreamReader( DumperTestHelper.class.getResourceAsStream( filename ) ) ); final DrlDumper dumper = new DrlDumper(); return dumper.dump( pkgOriginal ); }
@Test public void testParseRule() throws Exception { final XmlPackageReader xmlPackageReader = getXmReader(); xmlPackageReader.read( new InputStreamReader( getClass().getResourceAsStream( "test_ParseRule.xml" ) ) ); final PackageDescr packageDescr = xmlPackageReader.getPackageDescr(); String expected = StringUtils.readFileAsString( new InputStreamReader( getClass().getResourceAsStream( "test_ParseRule.drl" ) ) ); // remove license header as that one is not stored in the XML String expectedWithoutHeader = removeLicenseHeader(expected); System.out.println(expectedWithoutHeader); String actual = new DrlDumper().dump( packageDescr ); Assertions.assertThat(expectedWithoutHeader).isEqualToIgnoringWhitespace(actual); }
@Test public void testParseLhs() throws Exception { final XmlPackageReader xmlPackageReader = getXmReader(); xmlPackageReader.read( new InputStreamReader( getClass().getResourceAsStream( "test_ParseLhs.xml" ) ) ); final PackageDescr packageDescr = xmlPackageReader.getPackageDescr(); String expected = StringUtils.readFileAsString( new InputStreamReader( getClass().getResourceAsStream( "test_ParseLhs.drl" ) ) ); String expectedWithoutHeader = removeLicenseHeader( expected ); String actual = new DrlDumper().dump( packageDescr ); Assertions.assertThat(expectedWithoutHeader).isEqualToIgnoringWhitespace(actual); }
@Test public void testParseCollect() throws Exception { final XmlPackageReader xmlPackageReader = getXmReader(); xmlPackageReader.read( new InputStreamReader( getClass().getResourceAsStream( "test_ParseCollect.xml" ) ) ); final PackageDescr packageDescr = xmlPackageReader.getPackageDescr(); String expected = StringUtils.readFileAsString( new InputStreamReader( getClass().getResourceAsStream( "test_ParseCollect.drl" ) ) ); String expectedWithoutHeader = removeLicenseHeader( expected ); String actual = new DrlDumper().dump( packageDescr ); Assertions.assertThat(expectedWithoutHeader).isEqualToIgnoringWhitespace(actual); }
@Test public void testRoundTripDRLAccumulate() throws Exception { // RHDM-254 String drl = "package org.test\n" + "\n" + "rule \"last flown date\"\n" + "when\n" + " $customer : Profile( $ceid : id )\n" + " accumulate(\n" + " Flight( status == \"Flown\", $dptDate: departureDate.time ) from $customer.flights,\n" + " $cnt : count( $dptDate );\n" + " $cnt > 0 )\n" + "then\n" + "end"; DrlParser parser = new DrlParser( LanguageLevelOption.DRL6); final PackageDescr pkgOriginal = parser.parse( false, drl ); final DrlDumper dumper = new DrlDumper(); String out = dumper.dump( pkgOriginal ); Assertions.assertThat(drl).isEqualToIgnoringWhitespace(out); } }
final String drlResult = drlDumper.dump(pkg);
@Test public void testDumperDuration() { PackageDescr pkg = DescrFactory.newPackage().name("org.test") .newRule().name("org.test").attribute("duration").value("int: 0 3600000; repeat-limit = 6").end() .lhs() .end() .rhs( "" ) .end() .end().getDescr(); String drl = new DrlDumper().dump( pkg ); assertTrue( drl.contains("duration (int: 0 3600000; repeat-limit = 6)" ) ); }
@Test public void testBehaviorForSlidingWindow() throws InstantiationException, IllegalAccessException { // DROOLS-852 List<String> myParams = new LinkedList<String>(); myParams.add("5s"); PackageDescr pkg = DescrFactory .newPackage().name( "org.drools" ) .newRule().name( "from rule" ) .lhs() .not().pattern().type( "StockTick" ).constraint( "price > 10" ).behavior().type( "window", "time" ).parameters( myParams ).end().end().end() .end() .rhs("//System.out.println(s);") .end().getDescr(); String drl = new DrlDumper().dump( pkg ); assertTrue( drl.contains("window:time(5s)" ) ); } }
@Test public void testDumperTimer() { PackageDescr pkg = DescrFactory.newPackage().name("org.test") .newRule().name("org.test").attribute("timer").value("cron:0/5 * * * * ?").end() .lhs() .end() .rhs( "" ) .end() .end().getDescr(); String drl = new DrlDumper().dump( pkg ); assertTrue( drl.contains("timer (cron:0/5 * * * * ?)" ) ); }
.end().getDescr(); String drl = new DrlDumper().dump( pkg ); System.out.println( drl ); KnowledgeBuilderImpl knowledgeBuilder = (KnowledgeBuilderImpl)KnowledgeBuilderFactory.newKnowledgeBuilder();
@Test public void testDumperPositional() { PackageDescr pkg = DescrFactory.newPackage().name( "org.test" ) .newRule().name( "org.test" ) .lhs() .pattern().type( "Integer" ).constraint( "this > 10", true ).constraint( "this > 11", true ).constraint( "this > 12", false).constraint( "this > 13", false).end() .end() .rhs( "" ) .end() .end().getDescr(); String drl = new DrlDumper().dump( pkg ); assertTrue(drl.contains("Integer( this > 10, this > 11; this > 12, this > 13 )")); }
.end(); String drl = new DrlDumper().dump( packBuilder.getDescr() ); System.out.println(drl);
@Test public void testExtendsDump() { PackageDescrBuilder pkgd = DescrFactory.newPackage(); pkgd.name( "org.test" ) .newDeclare().type().name( "Foo" ) .newField( "id" ).type( "int" ).end() .end() .newDeclare().type().name( "Bar" ).superType( "Foo" ) .newField( "val" ).type( "int" ).initialValue( "42" ).end() .end(); String drl = new DrlDumper().dump( pkgd.getDescr() ); KieBase kb = loadKnowledgeBaseFromString( drl ); FactType bar = kb.getFactType( "org.test", "Bar" ); try { Object x = bar.newInstance(); assertEquals( 42, bar.get( x, "val" ) ); bar.set( x, "id", 1 ); assertEquals( 1, bar.get( x, "id" ) ); } catch ( Exception e ) { fail( e.getMessage() ); } }
pkg.getRules().size() ); String drl = new DrlDumper().dump( pkg ); Assertions.assertThat(expected).isEqualToIgnoringWhitespace(drl);
String drl = new DrlDumper().dump( packBuilder.getDescr() ); System.out.println(drl);
final String drlResult = drlDumper.dump( pkg );