@Test public void testStirctWatchWithoutQuotes() { String str = "package com.sample;\n" + "import " + MyClass.class.getCanonicalName() + ";\n" + "rule R1 when\n" + " @Watch( !value ) $m : MyClass( value < 10 )\n" + "then \n" + " modify( $m ) { setValue( $m.getValue()+1 ) };\n" + "end\n"; KieServices ks = KieServices.Factory.get(); KieFileSystem kfs = ks.newKieFileSystem() .write( "src/main/resources/r1.drl", str ) .writeKModuleXML(ks.newKieModuleModel() .setConfigurationProperty(LanguageLevelOption.PROPERTY_NAME, LanguageLevelOption.DRL6_STRICT.toString()) .toXML()); Results results = ks.newKieBuilder( kfs ).buildAll().getResults(); assertEquals(1, results.getMessages().size()); }
@Test public void testImportedAnnotation() { String str = "package org.simple \n" + "import " + Xyz.class.getCanonicalName() + " \n" + "@Xyz rule yyy \n" + "when \n" + " $s : String()\n" + "then \n" + "end \n"; KieServices ks = KieServices.Factory.get(); KieFileSystem kfs = ks.newKieFileSystem() .write( "src/main/resources/r1.drl", str ) .writeKModuleXML(ks.newKieModuleModel() .setConfigurationProperty(LanguageLevelOption.PROPERTY_NAME, LanguageLevelOption.DRL6_STRICT.toString()) .toXML()); Results results = ks.newKieBuilder( kfs ).buildAll().getResults(); assertEquals(0, results.getMessages().size()); }
@Test public void testJavaSqlTimestamp() { String str = "package " + Message.class.getPackage().getName() + "\n" + "@Role( Role.Type.EVENT ) @Timestamp( \"startTime\" ) @Duration( \"duration\" )\n" + "declare " + Message.class.getCanonicalName() + "\n" + "end\n"; KieSession ksession = new KieHelper() .setKieModuleModel(KieServices.Factory.get().newKieModuleModel() .setConfigurationProperty(LanguageLevelOption.PROPERTY_NAME, LanguageLevelOption.DRL6_STRICT.toString())) .addContent(str, ResourceType.DRL) .build() .newKieSession(); try { Message msg = new Message(); msg.setStartTime( new Timestamp( 10000 ) ); msg.setDuration( 1000l ); EventFactHandle efh = (EventFactHandle) ksession.insert( msg ); assertEquals( 10000, efh.getStartTimestamp() ); assertEquals( 1000, efh.getDuration() ); } finally { ksession.dispose(); } }
@Test public void testUnknownAnnotation() { String str = "package org.simple \n" + "@Xyz rule yyy \n" + "when \n" + " $s : String()\n" + "then \n" + "end \n"; KieServices ks = KieServices.Factory.get(); KieFileSystem kfs = ks.newKieFileSystem() .write( "src/main/resources/r1.drl", str ) .writeKModuleXML(ks.newKieModuleModel() .setConfigurationProperty(LanguageLevelOption.PROPERTY_NAME, LanguageLevelOption.DRL6_STRICT.toString()) .toXML()); Results results = ks.newKieBuilder( kfs ).buildAll().getResults(); assertEquals(1, results.getMessages().size()); }
.setKieModuleModel(KieServices.Factory.get().newKieModuleModel() .setConfigurationProperty(LanguageLevelOption.PROPERTY_NAME, LanguageLevelOption.DRL6_STRICT.toString())) .addContent(str, ResourceType.DRL) .build();
.setKieModuleModel(ks.newKieModuleModel() .setConfigurationProperty(LanguageLevelOption.PROPERTY_NAME, LanguageLevelOption.DRL6_STRICT.toString())) .addContent(str, ResourceType.DRL) .build()
@Test public void testWatch() { String str = "package com.sample;\n" + "import " + MyClass.class.getCanonicalName() + ";\n" + "rule R1 when\n" + " @Watch( \"!value\" ) $m : MyClass( value < 10 )\n" + "then \n" + " modify( $m ) { setValue( $m.getValue()+1 ) };\n" + "end\n"; KieSession ksession = new KieHelper() .setKieModuleModel(KieServices.Factory.get().newKieModuleModel() .setConfigurationProperty(LanguageLevelOption.PROPERTY_NAME, LanguageLevelOption.DRL6_STRICT.toString())) .addContent(str, ResourceType.DRL) .build() .newKieSession(); try { MyClass myClass = new MyClass("test", 1); ksession.insert(myClass); ksession.fireAllRules(); assertEquals(2, myClass.getValue()); } finally { ksession.dispose(); } }
@Test public void testLanguageLevelConfiguration() { // setting the language level using the type safe method config.setOption( LanguageLevelOption.DRL5 ); // checking the type safe getOption() method assertEquals( LanguageLevelOption.DRL5, config.getOption( LanguageLevelOption.class ) ); // checking string conversion assertEquals( LanguageLevelOption.DRL5, config.getOption( LanguageLevelOption.class ) ); // checking the string based getProperty() method assertEquals( "DRL5", config.getProperty( LanguageLevelOption.PROPERTY_NAME ) ); // setting the default dialect using the string based setProperty() method config.setProperty( LanguageLevelOption.PROPERTY_NAME, "DRL6" ); // checking the type safe getOption() method assertEquals(LanguageLevelOption.DRL6, config.getOption(LanguageLevelOption.class)); assertEquals( "DRL6", config.getOption( LanguageLevelOption.class ).toString() ); // checking string conversion assertEquals( LanguageLevelOption.DRL6, config.getOption( LanguageLevelOption.class ) ); // checking the string based getProperty() method assertEquals( "DRL6", config.getProperty( LanguageLevelOption.PROPERTY_NAME ) ); }
.setConfigurationProperty(LanguageLevelOption.PROPERTY_NAME, LanguageLevelOption.DRL6_STRICT.toString()) .setConfigurationProperty(PropertySpecificOption.PROPERTY_NAME, PropertySpecificOption.ALWAYS.toString()); assertEquals(LanguageLevelOption.DRL6_STRICT.toString(), kprojXml.getConfigurationProperty(LanguageLevelOption.PROPERTY_NAME)); assertEquals(PropertySpecificOption.ALWAYS.toString(), kprojXml.getConfigurationProperty(PropertySpecificOption.PROPERTY_NAME));