Package org.drools.brms.client.modeldriven.brl

Examples of org.drools.brms.client.modeldriven.brl.RuleModel


    //        m = BRXMLPersistence.getInstance().unmarshal( "" );
    //        assertNotNull( m );
    //    }
   
    public void testCompositeConstraints() {
        RuleModel m = new RuleModel();
        m.name = "with composite";
   
        FactPattern p1 = new FactPattern("Person");
        p1.boundName = "p1";
        m.addLhsItem( p1 );
       
        FactPattern p = new FactPattern("Goober");
        m.addLhsItem( p );
        CompositeFieldConstraint comp = new CompositeFieldConstraint();
        comp.compositeJunctionType = CompositeFieldConstraint.COMPOSITE_TYPE_OR;
        p.addConstraint( comp );
       
        final SingleFieldConstraint X = new SingleFieldConstraint();
        X.fieldName = "goo";
        X.constraintValueType = SingleFieldConstraint.TYPE_LITERAL;
        X.value = "foo";
        X.operator = "==";
        X.connectives = new ConnectiveConstraint[1];
        X.connectives[0] = new ConnectiveConstraint();
        X.connectives[0].constraintValueType = ConnectiveConstraint.TYPE_LITERAL;
        X.connectives[0].operator = "|| ==";
        X.connectives[0].value = "bar";
        comp.addConstraint( X );
       
        final SingleFieldConstraint Y = new SingleFieldConstraint();
        Y.fieldName = "goo2";
        Y.constraintValueType = SingleFieldConstraint.TYPE_LITERAL;
        Y.value = "foo";
        Y.operator = "==";
        comp.addConstraint( Y );

        CompositeFieldConstraint comp2 = new CompositeFieldConstraint();
        comp2.compositeJunctionType = CompositeFieldConstraint.COMPOSITE_TYPE_AND;
        final SingleFieldConstraint Q1 = new SingleFieldConstraint();
        Q1.fieldName = "goo";
        Q1.operator = "==";
        Q1.value = "whee";
        Q1.constraintValueType = ISingleFieldConstraint.TYPE_LITERAL;
       
        comp2.addConstraint( Q1 );
       
        final SingleFieldConstraint Q2 = new SingleFieldConstraint();
        Q2.fieldName = "gabba";
        Q2.operator = "==";
        Q2.value = "whee";
        Q2.constraintValueType = ISingleFieldConstraint.TYPE_LITERAL;
       
        comp2.addConstraint( Q2 );
       
        //now nest it
        comp.addConstraint( comp2 );
       
       
       
        final SingleFieldConstraint Z = new SingleFieldConstraint();
        Z.fieldName = "goo3";
        Z.constraintValueType = SingleFieldConstraint.TYPE_LITERAL;
        Z.value = "foo";
        Z.operator = "==";
       
        p.addConstraint( Z );
       
        ActionInsertFact ass = new ActionInsertFact("Whee");
        m.addRhsItem( ass );
       
        String actual = BRDRLPersistence.getInstance().marshal( m );
        String expected = "rule \"with composite\" " +
            " \tdialect \"mvel\"\n when " +
                "p1 : Person( ) " +
View Full Code Here


        assertEqualsIgnoreWhitespace( expected, actual );
       
    }
   
    public void testFieldsDeclaredButNoConstraints() {
        RuleModel m = new RuleModel();
        m.name = "boo";
       
        FactPattern p = new FactPattern();
        p.factType = "Person";
       
        //this isn't an effective constraint, so it should be ignored.
        p.addConstraint( new SingleFieldConstraint("field1") );

        m.addLhsItem( p );
       
        String actual = BRDRLPersistence.getInstance().marshal( m );

        String expected = "rule \"boo\" \tdialect \"mvel\"\n when Person() then end";
       
View Full Code Here

       
    }
   
    public void testLiteralStrings() {
       
        RuleModel m = new RuleModel();
        m.name = "test literal strings";
       
        FactPattern p = new FactPattern("Person");
        SingleFieldConstraint con = new SingleFieldConstraint();
        con.fieldName = "field1";
        con.operator = "==";
        con.value = "goo";
        con.constraintValueType = SingleFieldConstraint.TYPE_LITERAL;
        p.addConstraint( con );
       
       
        SingleFieldConstraint con2 = new SingleFieldConstraint();
        con2.fieldName = "field2";
        con2.operator = "==";
        con2.value = "variableHere";
        con2.constraintValueType = SingleFieldConstraint.TYPE_VARIABLE;
        p.addConstraint( con2 );
       
       
       
        m.addLhsItem( p );
       
        String result = BRDRLPersistence.getInstance().marshal( m );
    
        assertEqualsIgnoreWhitespace( "rule \"test literal strings\"" +
                                          "\tdialect \"mvel\"\n when " +
View Full Code Here

        assertEquals( cleanExpected,
                      cleanActual );
    }
   
    public void testReturnValueConstraint() {
        RuleModel m = new RuleModel();
        m.name = "yeah";
       
        FactPattern p = new FactPattern();
       
        SingleFieldConstraint con = new SingleFieldConstraint();
        con.constraintValueType = SingleFieldConstraint.TYPE_RET_VALUE;
        con.value = "someFunc(x)";
        con.operator = "==";
        con.fieldName = "goo";
        p.factType = "Goober";
       
        p.addConstraint( con );
        m.addLhsItem( p );
       
        String actual = BRDRLPersistence.getInstance().marshal( m );
        //System.err.println(actual);
       
       
View Full Code Here

    }
   
   
    public void testConnective() {
       
        RuleModel m = new RuleModel();
        m.name = "test literal strings";
       
        FactPattern p = new FactPattern("Person");
        SingleFieldConstraint con = new SingleFieldConstraint();
        con.fieldName = "field1";
        con.operator = "==";
        con.value = "goo";
        con.constraintValueType = SingleFieldConstraint.TYPE_VARIABLE;
        p.addConstraint( con );

        ConnectiveConstraint connective = new ConnectiveConstraint();
        connective.constraintValueType = ISingleFieldConstraint.TYPE_LITERAL;
        connective.operator = "|| ==";
        connective.value = "blah";
       
        con.connectives = new ConnectiveConstraint[1];
        con.connectives[0] = connective;
       
        m.addLhsItem( p );
       
        String result = BRDRLPersistence.getInstance().marshal( m );
       
        String expected = "rule \"test literal strings\" " +
            "\tdialect \"mvel\"\n when " +
View Full Code Here

       

    }
   
    public void testInvalidComposite() throws Exception {
        RuleModel m = new RuleModel();
        CompositeFactPattern com = new CompositeFactPattern("not");
        m.addLhsItem( com );
       
        String s = BRDRLPersistence.getInstance().marshal( m );
        assertNotNull(s);
       
        m.addLhsItem( new CompositeFactPattern("or") );
        m.addLhsItem( new CompositeFactPattern("exists") );
        s = BRDRLPersistence.getInstance().marshal( m );
        assertNotNull(s);
    }
View Full Code Here

        s = BRDRLPersistence.getInstance().marshal( m );
        assertNotNull(s);
    }
   
    public void testAssertWithDSL() throws Exception {
        RuleModel m = new RuleModel();
        DSLSentence sen = new DSLSentence();
        sen.sentence = "I CAN HAS DSL";
        m.addRhsItem( sen );
        ActionInsertFact ins = new ActionInsertFact("Shizzle");
        ActionFieldValue val = new ActionFieldValue("goo", "42", "Numeric");
        ins.fieldValues = new ActionFieldValue[1];
        ins.fieldValues[0] = val;
        m.addRhsItem( ins );

        ActionInsertLogicalFact insL = new ActionInsertLogicalFact("Shizzle");
        ActionFieldValue valL = new ActionFieldValue("goo", "42", "Numeric");
        insL.fieldValues = new ActionFieldValue[1];
        insL.fieldValues[0] = valL;
        m.addRhsItem( insL );

        String result = BRDRLPersistence.getInstance().marshal( m );
        assertTrue(result.indexOf( ">insert" ) > -1);
        System.err.println(result);
        assertTrue(result.indexOf( ">insertLogical" ) > -1);
View Full Code Here

        System.err.println(result);
        assertTrue(result.indexOf( ">insertLogical" ) > -1);
    }
   
    public void testDefaultMVEL() {
        RuleModel m = new RuleModel();
       
        String s = BRDRLPersistence.getInstance().marshal( m );
        assertTrue(s.indexOf( "mvel" ) > -1);
       
        m.addAttribute( new RuleAttribute("dialect", "goober") );
        s = BRDRLPersistence.getInstance().marshal( m );
        assertFalse(s.indexOf( "mvel" ) > -1);
        assertTrue(s.indexOf( "goober" ) > -1);
       
    }
View Full Code Here

    try {

      if (fileName.endsWith(DroolsCompilerAntTask.BRLFILEEXTENSION)) {

        RuleModel model = BRXMLPersistence.getInstance().unmarshal(
            loadResource(fileName));
        String packagefile = loadResource(resolvePackageFile(this.srcdir
            .getAbsolutePath()));
        model.name = fileName.replace(DroolsCompilerAntTask.BRLFILEEXTENSION,
            "");
View Full Code Here

import com.thoughtworks.xstream.XStream;

public class RuleModelTest extends TestCase {

    public void testBoundFactFinder() {
        final RuleModel model = new RuleModel();

        assertNull( model.getBoundFact( "x" ) );
        model.lhs = new IPattern[3];

        final FactPattern x = new FactPattern( "Car" );
        model.lhs[0] = x;
        x.boundName = "x";

        assertNotNull( model.getBoundFact( "x" ) );
        assertEquals( x,
                      model.getBoundFact( "x" ) );

        final FactPattern y = new FactPattern( "Car" );
        model.lhs[1] = y;
        y.boundName = "y";

        final FactPattern other = new FactPattern( "House" );
        model.lhs[2] = other;

        assertEquals( y,
                      model.getBoundFact( "y" ) );
        assertEquals( x,
                      model.getBoundFact( "x" ) );

        model.rhs = new IAction[1];
        final ActionSetField set = new ActionSetField();
        set.variable = "x";
        model.rhs[0] = set;

        assertTrue( model.isBoundFactUsed( "x" ) );
        assertFalse( model.isBoundFactUsed( "y" ) );

        assertEquals( 3,
                      model.lhs.length );
        assertFalse( model.removeLhsItem( 0 ) );
        assertEquals( 3,
                      model.lhs.length );

        final ActionRetractFact fact = new ActionRetractFact( "q" );
        model.rhs[0] = fact;
        assertTrue( model.isBoundFactUsed( "q" ) );
        assertFalse( model.isBoundFactUsed( "x" ) );

        final XStream xt = new XStream();
        xt.alias( "rule",
                  RuleModel.class );
        xt.alias( "fact",
View Full Code Here

TOP

Related Classes of org.drools.brms.client.modeldriven.brl.RuleModel

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.