@Test(timeout=10000) public void traitMethodsWithObjects() { String source = "org/drools/compiler/factmodel/traits/testTraitWrapping.drl"; KieSession ks = getSession( source ); TraitFactory.setMode( mode, ks.getKieBase() ); List errors = new ArrayList(); ks.setGlobal( "list", errors ); ks.fireAllRules(); if (!errors.isEmpty()) { System.err.println( errors.toString() ); } assertTrue( errors.isEmpty() ); }
kb.addPackages(kbuilder.getKnowledgePackages()); TraitFactory traitBuilder = ((KnowledgeBaseImpl) kb).getConfiguration().getComponentFactory().getTraitFactory(); TraitFactory.setMode( mode, kb ); TraitProxy proxy = (TraitProxy) traitBuilder.getProxy(imp, trait); Thing thing = traitBuilder.getProxy(imp, Thing.class); TraitProxy proxy2 = (TraitProxy) traitBuilder.getProxy(imp, trait); Thing thing2 = traitBuilder.getProxy(imp, Thing.class);
@Test(timeout=10000) public void traitMethodsWithPrimitives() { String source = "org/drools/compiler/factmodel/traits/testTraitWrappingPrimitives.drl"; KieSession ks = getSession( source ); TraitFactory.setMode( mode, ks.getKieBase() ); List errors = new ArrayList(); ks.setGlobal( "list", errors ); ks.fireAllRules(); if (!errors.isEmpty()) { System.err.println( errors ); } assertTrue( errors.isEmpty() ); }
@Test(timeout=10000) public void testTraitDon() { String source = "org/drools/compiler/factmodel/traits/testTraitDon.drl"; KieSession ks = getSession( source ); TraitFactory.setMode( mode, ks.getKieBase() ); List info = new ArrayList(); ks.setGlobal( "list", info ); ks.fireAllRules(); Collection<? extends Object> wm = ks.getObjects(); ks.insert( "go" ); ks.fireAllRules(); assertTrue( info.contains( "DON" ) ); assertTrue( info.contains( "SHED" ) ); Iterator it = wm.iterator(); Object x = it.next(); if ( x instanceof String ) { x = it.next(); } System.out.println( x.getClass() ); System.out.println( x.getClass().getSuperclass() ); System.out.println( Arrays.asList( x.getClass().getInterfaces() )); }
kb.addPackages( kbuilder.getKnowledgePackages() ); TraitFactory.setMode( mode, kb ); TraitFactory tFactory = ((KnowledgeBaseImpl) kb).getConfiguration().getComponentFactory().getTraitFactory(); "Student" ); Class trait = traitClass.getFactClass(); TraitProxy proxy = (TraitProxy) tFactory.getProxy( imp, trait ); Object proxyFields = proxy.getFields();
@Test(timeout=10000) public void traitWithEquality() { String source = "org/drools/compiler/factmodel/traits/testTraitWithEquality.drl"; KieSession ks = getSession( source ); TraitFactory.setMode( mode, ks.getKieBase() ); List info = new ArrayList(); ks.setGlobal( "list", info ); ks.fireAllRules(); assertTrue( info.contains( "DON" ) ); assertTrue( info.contains( "EQUAL" ) ); }
@Test(timeout=10000) public void testTraitCollections() { String source = "org/drools/compiler/factmodel/traits/testTraitCollections.drl"; KieSession ks = getSession( source ); TraitFactory.setMode( mode, ks.getKieBase() ); List info = new ArrayList(); ks.setGlobal( "list", info ); ks.fireAllRules(); System.err.println( " -------------- " + ks.getObjects().size() + " ---------------- " ); for (Object o : ks.getObjects()) { System.err.println( "\t\t" + o ); } System.err.println( " -------------- ---------------- " ); System.err.println( info ); System.err.println( " -------------- ---------------- " ); assertEquals( 1, info.size() ); assertTrue( info.contains( "OK" ) ); }
@Test(timeout=10000) public void testMixin() { String source = "org/drools/compiler/factmodel/traits/testTraitMixin.drl"; KieSession ks = getSession( source ); TraitFactory.setMode( mode, ks.getKieBase() ); List info = new ArrayList(); ks.setGlobal( "list", info ); ks.fireAllRules(); assertTrue( info.contains( "27" ) ); }
@Test() public void testTraitCore() { String source = "org/drools/compiler/factmodel/traits/testTraitLegacyCore.drl"; KieSession ks = getSession( source ); TraitFactory.setMode( mode, ks.getKieBase() ); List info = new ArrayList(); ks.setGlobal( "list", info ); ks.fireAllRules(); System.err.println( " -------------- " + ks.getObjects().size() + " ---------------- " ); for (Object o : ks.getObjects()) { System.err.println( "\t\t" + o ); } System.err.println( " -------------- ---------------- " ); System.err.println( info ); System.err.println( " -------------- ---------------- " ); assertTrue( info.contains( "OK" ) ); assertTrue( info.contains( "OK2" ) ); assertEquals( 2, info.size() ); }
@Test(timeout=10000) public void testTraitLegacy() { String source = "org/drools/compiler/factmodel/traits/testTraitLegacyTrait.drl"; KieSession ks = getSession( source ); TraitFactory.setMode( mode, ks.getKieBase() ); List info = new ArrayList(); ks.setGlobal( "list", info ); ks.fireAllRules(); System.err.println( " -------------- " + ks.getObjects().size() + " ---------------- " ); for (Object o : ks.getObjects()) { System.err.println( "\t\t" + o ); } System.err.println( " -------------- ---------------- " ); System.err.println( info ); System.err.println( " -------------- ---------------- " ); assertEquals( 5, info.size() ); assertTrue( info.contains( "OK" ) ); assertTrue( info.contains( "OK2" ) ); assertTrue( info.contains( "OK3" ) ); assertTrue( info.contains( "OK4" ) ); assertTrue( info.contains( "OK5" ) ); }
@Test(timeout=10000) public void testIsA() { String source = "org/drools/compiler/factmodel/traits/testTraitIsA.drl"; KieSession ks = getSession( source ); TraitFactory.setMode( mode, ks.getKieBase() ); List info = new ArrayList(); ks.setGlobal( "list", info ); ks.fireAllRules(); int num = 10; System.out.println( info ); assertEquals( num, info.size() ); for (int j = 0; j < num; j++) { assertTrue( info.contains( "" + j ) ); } }
TraitFactory.setMode( mode, ks.getKieBase() );
@Test(timeout=10000) public void traitDeclared() { List<Integer> trueTraits = new ArrayList<Integer>(); List<Integer> untrueTraits = new ArrayList<Integer>(); KieSession ks = getSession( "org/drools/compiler/factmodel/traits/testDeclaredFactTrait.drl" ); TraitFactory.setMode( mode, ks.getKieBase() ); ks.setGlobal( "trueTraits", trueTraits ); ks.setGlobal( "untrueTraits", untrueTraits ); ks.fireAllRules(); ks.dispose(); assertTrue( trueTraits.contains( 1 ) ); assertFalse( trueTraits.contains( 2 ) ); assertTrue( untrueTraits.contains( 2 ) ); assertFalse( untrueTraits.contains( 1 ) ); }
@Test(timeout=10000) public void traitPojo() { List<Integer> trueTraits = new ArrayList<Integer>(); List<Integer> untrueTraits = new ArrayList<Integer>(); KieSession session = getSession( "org/drools/compiler/factmodel/traits/testPojoFactTrait.drl" ); TraitFactory.setMode( mode, session.getKieBase() ); session.setGlobal( "trueTraits", trueTraits ); session.setGlobal( "untrueTraits", untrueTraits ); session.fireAllRules(); session.dispose(); assertTrue( trueTraits.contains( 1 ) ); assertFalse( trueTraits.contains( 2 ) ); assertTrue( untrueTraits.contains( 2 ) ); assertFalse( untrueTraits.contains( 1 ) ); }
@Test(timeout=10000) public void isAWithBackChaining() { String source = "org/drools/compiler/factmodel/traits/testTraitIsAWithBC.drl"; KieSession ksession = getSession( source ); TraitFactory.setMode( mode, ksession.getKieBase() ); List list = new ArrayList(); ksession.setGlobal( "list", list ); ksession.fireAllRules(); ksession.insert( "Como" ); ksession.fireAllRules(); assertTrue( list.contains( "Italy" ) ); }
@Test(timeout=10000) public void testOverrideType() { String source = "org/drools/compiler/factmodel/traits/testTraitOverride.drl"; KieSession ks = getSession( source ); TraitFactory.setMode( mode, ks.getKieBase() ); List info = new ArrayList(); ks.setGlobal( "list", info ); try { ks.fireAllRules(); fail( "An exception was expected since a trait can't override the type of a core class field with these settings " ); } catch ( Throwable rde ) { assertTrue( rde.getCause() instanceof UnsupportedOperationException ); } }
"end"; KieBase kbase = getKieBaseFromString(s1); TraitFactory.setMode( mode, kbase );
@Test(timeout=10000) public void testTraitLegacyTraitableWithLegacyTrait() { final String s1 = "package org.drools.compiler.factmodel.traits;\n" + "import " + TraitTest.class.getName() + ".SomeTrait; \n" + "import org.drools.core.factmodel.traits.*; \n" + "global java.util.List list;\n" + "" + "rule \"Don ItemStyle\"\n" + " when\n" + " then\n" + " don( new StudentImpl(), SomeTrait.class );\n" + "end\n"; KieBase kbase = getKieBaseFromString(s1); TraitFactory.setMode( mode, kbase ); ArrayList list = new ArrayList(); KieSession knowledgeSession = kbase.newKieSession(); knowledgeSession.setGlobal( "list", list ); knowledgeSession.fireAllRules(); assertEquals( 2, knowledgeSession.getObjects().size() ); }