@Test public void testSerialization() { PackageDescrBuilder builder = DescrFactory.newPackage().name( "foo" ); String className = Person.class.getName(); builder.newImport().target(className).end(); PackageDescr descr = builder.getDescr(); ImportDescr importDescr = new ImportDescr(className); ImportDescr badImportDescr = new ImportDescr(null); assertTrue(descr.getImports().contains(importDescr)); try { ByteArrayOutputStream baos = new ByteArrayOutputStream(); ObjectOutput out = new ObjectOutputStream(baos); descr.writeExternal(out); ObjectInput in = new ObjectInputStream(new ByteArrayInputStream(baos.toByteArray())); PackageDescr newDescr = new PackageDescr(); newDescr.readExternal(in); assertFalse(newDescr.getImports().contains(badImportDescr)); assertTrue(newDescr.getImports().contains(importDescr)); } catch ( IOException ioe ) { fail( ioe.getMessage() ); } catch ( ClassNotFoundException cnfe ) { fail( cnfe.getMessage() ); } }
@Test public void testPackageImports() { PackageDescr pkg = DescrFactory.newPackage() .name( "org.drools" ) .newImport().target( "java.util.List" ).end() .newImport().target( "org.drools.examples.*" ).end() .getDescr(); assertEquals( 2, pkg.getImports().size() ); assertEquals( "java.util.List", pkg.getImports().get( 0 ).getTarget() ); assertEquals( "org.drools.examples.*", pkg.getImports().get( 1 ).getTarget() ); }
@Test public void testStatementOrdering1() throws Exception { final PackageDescr pkg = (PackageDescr) parseResource( "compilationUnit", "statement_ordering_1.drl" ); assertEquals( 2, pkg.getRules().size() ); assertEquals( "foo", ((RuleDescr) pkg.getRules().get( 0 )).getName() ); assertEquals( "bar", ((RuleDescr) pkg.getRules().get( 1 )).getName() ); assertEquals( 2, pkg.getFunctions().size() ); assertEquals( "cheeseIt", ((FunctionDescr) pkg.getFunctions().get( 0 )).getName() ); assertEquals( "uncheeseIt", ((FunctionDescr) pkg.getFunctions().get( 1 )).getName() ); assertEquals( 4, pkg.getImports().size() ); assertEquals( "im.one", ((ImportDescr) pkg.getImports().get( 0 )).getTarget() ); assertEquals( "im.two", ((ImportDescr) pkg.getImports().get( 1 )).getTarget() ); assertEquals( "im.three", ((ImportDescr) pkg.getImports().get( 2 )).getTarget() ); assertEquals( "im.four", ((ImportDescr) pkg.getImports().get( 3 )).getTarget() ); }
@Test public void testCompilationUnit() throws Exception { final String source = "package foo; import com.foo.Bar; import com.foo.Baz;"; PackageDescr pkg = (PackageDescr) parse( "compilationUnit", source ); assertFalse( parser.getErrors().toString(), parser.hasErrors() ); assertEquals( "foo", pkg.getName() ); assertEquals( 2, pkg.getImports().size() ); ImportDescr impdescr = pkg.getImports().get( 0 ); assertEquals( "com.foo.Bar", impdescr.getTarget() ); assertEquals( source.indexOf( "import " + impdescr.getTarget() ), impdescr.getStartCharacter() ); assertEquals( source.indexOf( "import " + impdescr.getTarget() ) + ("import " + impdescr.getTarget()).length(), impdescr.getEndCharacter() ); impdescr = pkg.getImports().get( 1 ); assertEquals( "com.foo.Baz", impdescr.getTarget() ); assertEquals( source.indexOf( "import " + impdescr.getTarget() ), impdescr.getStartCharacter() ); assertEquals( source.indexOf( "import " + impdescr.getTarget() ) + ("import " + impdescr.getTarget()).length(), impdescr.getEndCharacter() ); }
@Test public void testParseImport() throws Exception { final XmlPackageReader xmlPackageReader = getXmReader(); xmlPackageReader.read( new InputStreamReader( getClass().getResourceAsStream( "test_ParseImport.xml" ) ) ); final PackageDescr packageDescr = xmlPackageReader.getPackageDescr(); assertNotNull( packageDescr ); assertEquals( "com.sample", packageDescr.getName() ); final List imports = packageDescr.getImports(); assertEquals( 2, imports.size() ); assertEquals( "java.util.HashMap", ((ImportDescr) imports.get( 0 )).getTarget() ); assertEquals( "org.drools.compiler.*", ((ImportDescr) imports.get( 1 )).getTarget() ); final List functionImport = packageDescr.getFunctionImports(); assertEquals( "org.drools.function", ((FunctionImportDescr) functionImport.get( 0 )).getTarget() ); }
@Test @Ignore public void testIncompleteCode10() throws DroolsParserException, RecognitionException { String input = "package a.b.c import a.b.c.*" + " rule MyRule xxxxx Class ( property memberOf " + " query MyQuery Class ( property memberOf collection ) end "; DrlParser parser = new DrlParser(LanguageLevelOption.DRL5); PackageDescr descr = parser.parse(true, input); assertEquals("a.b.c", descr.getNamespace()); assertEquals("a.b.c.*", descr.getImports().get(0) .getTarget()); assertEquals(0, descr.getRules().size()); }
@Test @Ignore public void testIncompleteCode9() throws DroolsParserException, RecognitionException { String input = "package a.b.c import a.b.c.*" + " rule MyRule xxxxx Class ( property memberOf collection ) then end " + " query MyQuery Class ( property memberOf collection ) end "; DrlParser parser = new DrlParser(LanguageLevelOption.DRL5); PackageDescr descr = parser.parse(true, input); assertEquals("a.b.c", descr.getNamespace()); assertEquals("a.b.c.*", descr.getImports().get(0) .getTarget()); assertEquals(1, descr.getRules().size()); assertEquals("MyQuery", descr.getRules().get(0).getName()); }
@Test public void testIncompleteCode12() throws DroolsParserException, RecognitionException { String input = "package a.b.c " + "import a.b.c.* " + "rule MyRule" + " when " + " m: Message( ) " + " " + " then" + "end "; DrlParser parser = new DrlParser(LanguageLevelOption.DRL5); PackageDescr descr = parser.parse(true, input); assertNotNull(descr); assertEquals("a.b.c", descr.getNamespace()); assertEquals("a.b.c.*", descr.getImports().get(0) .getTarget()); }
@Test public void testIncompleteCode11() throws DroolsParserException, RecognitionException { String input = "package a.b.c import a.b.c.*" + " rule MyRule when Class ( property memberOf collection ) then end " + " qzzzzuery MyQuery Class ( property "; DrlParser parser = new DrlParser(LanguageLevelOption.DRL5); PackageDescr descr = parser.parse(true, input); assertEquals("a.b.c", descr.getNamespace()); assertEquals("a.b.c.*", descr.getImports().get(0) .getTarget()); assertNotNull(descr); assertEquals("MyRule", descr.getRules().get(0).getName()); }
@Test @Ignore public void testIncompleteCode1() throws DroolsParserException, RecognitionException { String input = "package a.b.c import a.b.c.* rule MyRule when Class ( property memberOf collexction "; DrlParser parser = new DrlParser(LanguageLevelOption.DRL5); PackageDescr descr = parser.parse(true, input); System.out.println(parser.getErrors()); assertNotNull(descr); assertEquals("a.b.c", descr.getNamespace()); assertEquals("a.b.c.*", descr.getImports().get(0) .getTarget()); assertEquals(Location.LOCATION_LHS_INSIDE_CONDITION_END, getLastIntegerValue(parser.getEditorSentences().get(2) .getContent())); }
@Test public void testGlobal() throws Exception { PackageDescr pack = (PackageDescr) parseResource( "compilationUnit", "globals.drl" ); assertEquals( 1, pack.getRules().size() ); final RuleDescr rule = (RuleDescr) pack.getRules().get( 0 ); assertEquals( 1, rule.getLhs().getDescrs().size() ); assertEquals( 1, pack.getImports().size() ); assertEquals( 2, pack.getGlobals().size() ); final GlobalDescr foo = (GlobalDescr) pack.getGlobals().get( 0 ); assertEquals( "java.lang.String", foo.getType() ); assertEquals( "foo", foo.getIdentifier() ); final GlobalDescr bar = (GlobalDescr) pack.getGlobals().get( 1 ); assertEquals( "java.lang.Integer", bar.getType() ); assertEquals( "bar", bar.getIdentifier() ); }
@Test public void testParseGlobal() throws Exception { final XmlPackageReader xmlPackageReader = getXmReader(); xmlPackageReader.read( new InputStreamReader( getClass().getResourceAsStream( "test_ParseGlobal.xml" ) ) ); final PackageDescr packageDescr = xmlPackageReader.getPackageDescr(); assertNotNull( packageDescr ); assertEquals( "com.sample", packageDescr.getName() ); final List imports = packageDescr.getImports(); assertEquals( 2, imports.size() ); assertEquals( "java.util.HashMap", ((ImportDescr) imports.get( 0 )).getTarget() ); assertEquals( "org.drools.compiler.*", ((ImportDescr) imports.get( 1 )).getTarget() ); final List globals = packageDescr.getGlobals(); assertEquals( 2, globals.size() ); final GlobalDescr x = (GlobalDescr) globals.get( 0 ); final GlobalDescr yada = (GlobalDescr) globals.get( 1 ); assertEquals( "com.sample.X", x.getType() ); assertEquals( "x", x.getIdentifier() ); assertEquals( "com.sample.Yada", yada.getType() ); assertEquals( "yada", yada.getIdentifier() ); }
@Test public void testIncompleteCode4() throws DroolsParserException, RecognitionException { String input = "package a.b.c import a.b.c.*" + " rule MyRule when Class ( property == collection ) then end " + " query MyQuery Class ( property == collection ) end "; DrlParser parser = new DrlParser(LanguageLevelOption.DRL5); PackageDescr descr = parser.parse(true, input); assertEquals("a.b.c", descr.getNamespace()); assertEquals("a.b.c.*", descr.getImports().get(0) .getTarget()); assertNotNull(descr); assertEquals("MyRule", descr.getRules().get(0).getName()); assertNotNull(descr); assertEquals("MyQuery", descr.getRules().get(1).getName()); }
pkg.getName() ); assertEquals( 2, pkg.getImports().size() ); ImportDescr impdescr = pkg.getImports().get( 0 ); assertEquals( "foo.bar.*", impdescr.getTarget() ); impdescr.getEndCharacter() ); impdescr = pkg.getImports().get( 1 ); assertEquals( "baz.Baz", impdescr.getTarget() );
packageDescr.getName() ); final List imports = packageDescr.getImports(); assertEquals( 2, imports.size() );
packageDescr.getName() ); final List imports = packageDescr.getImports(); assertEquals( 2, imports.size() );
packageDescr.getName() ); final List imports = packageDescr.getImports(); assertEquals( 2, imports.size() );
pkg.getName() ); assertEquals( 1, pkg.getImports().size() ); ImportDescr impdescr = pkg.getImports().get( 0 ); assertEquals( "com.foo.Bar", impdescr.getTarget() );
pkg.getImports().size() );
protected void visit( final PackageDescr descr ) { if( descr == null ) { return; } checkResource(descr); for( ImportDescr importDescr : descr.getImports() ) { visit(importDescr);