[jboss-jira] [JBoss JIRA] (DROOLS-1415) OOPath constraint bug4

Mario Fusco (JIRA) issues at jboss.org
Thu Jan 19 11:54:00 EST 2017


     [ https://issues.jboss.org/browse/DROOLS-1415?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Mario Fusco resolved DROOLS-1415.
---------------------------------
    Fix Version/s: 7.0.0.CR1
       Resolution: Done


Fixed by https://github.com/droolsjbpm/drools/commit/e256d9c844550d8df5a08d6f13e1492c9c45e2ff

> OOPath constraint bug4
> ----------------------
>
>                 Key: DROOLS-1415
>                 URL: https://issues.jboss.org/browse/DROOLS-1415
>             Project: Drools
>          Issue Type: Sub-task
>            Reporter: Matteo Mortari
>            Assignee: Mario Fusco
>             Fix For: 7.0.0.CR1
>
>
> {code:java}
>     public static class TMFileSetQuater extends AbstractReactiveObject {
>         private final String name;
>         private final Set<TMFileWithParentObj> members = new ReactiveSet<TMFileWithParentObj>();
>         public TMFileSetQuater(String name) {
>             this.name = name;
>         }
>         public String getName() {
>             return name;
>         }
>         public Set<TMFileWithParentObj> getFiles() {
>             return members;
>         }
>     }
>     
>     @Test
>     public void testWronglyMatchAlsoEqualsQuater() {
>         String drl =
>                 "import org.drools.compiler.xpath.*;\n" +
>                 "import "+TMFileSetQuater.class.getCanonicalName()+";\n" +
>                 "global java.util.Set duplicateNames; \n" +
>                 "\n" +
>                 "rule DIFF_FILES_BUT_WITH_SAME_FILENAME when\n" +
>                 "  $ic1 : TMFileWithParentObj( parent instanceof TMFileSetQuater ,\n" + 
>                 "                              $curName : name, $curId : id, \n" + 
>                 "                              $ic2: /parent{#TMFileSetQuater}/files{name == $curName, id != $curId } )\n" +
>                 "then\n" +
>                 "  System.out.println( $ic1 + \" \" + $ic2 );\n" +
>                 "  duplicateNames.add( $ic1.getName() );\n" +
>                 "end\n";
>         KieSession ksession = new KieHelper().addContent( drl, ResourceType.DRL )
>                                              .build()
>                                              .newKieSession();
>         
>         Set duplicateNames = new HashSet();
>         ksession.setGlobal("duplicateNames", duplicateNames);
>         
>         TMFileSetQuater x = new TMFileSetQuater("X");
>         TMFileWithParentObj file0 = new TMFileWithParentObj(0, "File0", 47, x);
>         TMFileWithParentObj file1 = new TMFileWithParentObj(1, "File1", 47, x);
>         TMFileWithParentObj file2 = new TMFileWithParentObj(2, "File0", 47, x);
>         x.getFiles().addAll(Arrays.asList(new TMFileWithParentObj[]{file0, file1, file2}));
>         
>         ksession.insert( x );
>         ksession.insert( file0 );
>         ksession.insert( file1 );
>         ksession.insert( file2 );
>         ksession.fireAllRules();
>         
>         assertTrue( duplicateNames.contains("File0") );
>         assertFalse( duplicateNames.contains("File1") );
>     }
> {code}



--
This message was sent by Atlassian JIRA
(v7.2.3#72005)


More information about the jboss-jira mailing list