Package org.drools.spi

Examples of org.drools.spi.MockTuple


     */
    public void testConditions() throws Exception
    {
        // Setup
        int testNumber = 0;
        MockTuple tuple;

        DefaultConfiguration cheeseConfiguration = new DefaultConfiguration( "test1" );
        cheeseConfiguration.setText( Cheese.class.getName( ) );
        ObjectTypeFactory objectTypeFactory = module.getObjectTypeFactory( "class" );

        final RuleSet ruleSet = new RuleSet( "test RuleSet",
                                             this.ruleBaseContext );
        final Rule rule = new Rule( "Test Rule 1",
                                    ruleSet );
        rule.setImporter( new DefaultImporter( ) );
        ObjectType cheeseType = objectTypeFactory.newObjectType( rule,
                                                                 this.ruleBaseContext,
                                                                 cheeseConfiguration );

        tuple = new MockTuple( );
        rule.setImporter( new DefaultImporter( ) );
        tuple.setRule( rule );
        tuple.setWorkingMemory( new MockWorkingMemory( ) );

        // simple condition checks
        assertTrue( testCondition( testNumber++,
                                   tuple,
                                   rule ) ); // 0
        assertFalse( testCondition( testNumber++,
                                    tuple,
                                    rule ) ); // 1
        assertTrue( testCondition( testNumber++,
                                   tuple,
                                   rule ) ); // 2
        assertTrue( testCondition( testNumber++,
                                   tuple,
                                   rule ) ); // 3
        assertTrue( testCondition( testNumber++,
                                   tuple,
                                   rule ) ); // 4

        Declaration camembertDecl = rule.addParameterDeclaration( "camembert",
                                                                  cheeseType );
        Declaration stiltonDecl = rule.addParameterDeclaration( "stilton",
                                                                cheeseType );
        rule.setImporter( this.importer );
        // condition check with a single declaration
        tuple.put( camembertDecl,
                   new Cheese( "camembert" ) );
        assertTrue( testCondition( testNumber++,
                                   tuple,
                                   rule ) ); // 5
        assertFalse( testCondition( testNumber++,
                                    tuple,
                                    rule ) ); // 6

        // condition check with a single declaration
        tuple = new MockTuple( );
        rule.setImporter( this.importer );
        tuple.setRule( rule );
        tuple.setWorkingMemory( new MockWorkingMemory( ) );
        tuple.put( stiltonDecl,
                   new Cheese( "stilton" ) );
        assertTrue( testCondition( testNumber++,
                                   tuple,
                                   rule ) ); // 7
        assertFalse( testCondition( testNumber++,
                                    tuple,
                                    rule ) ); // 8

        // condition check with two declarations
        tuple = new MockTuple( );
        rule.setImporter( this.importer );
        tuple.setRule( rule );
        tuple.setWorkingMemory( new MockWorkingMemory( ) );
        tuple.put( stiltonDecl,
                   new Cheese( "stilton" ) );
        tuple.put( camembertDecl,
                   new Cheese( "camembert" ) );
        assertFalse( testCondition( testNumber++,
                                    tuple,
                                    rule ) ); // 9
        assertTrue( testCondition( testNumber++,
                                   tuple,
                                   rule ) ); // 10
        assertTrue( testCondition( testNumber++,
                                   tuple,
                                   rule ) ); // 11
        assertFalse( testCondition( testNumber++,
                                    tuple,
                                    rule ) ); // 12

        // condition check with 2 declarations and application data
        WorkingMemory workingMemory = new MockWorkingMemory( );
        workingMemory.setApplicationData( "bites",
                                          new Integer( 3 ) );
        workingMemory.setApplicationData( "favouriteCheese",
                                          new Cheese( "camembert" ) );
        tuple.setWorkingMemory( workingMemory );

        HashMap applicationData = new HashMap( );
        applicationData.put( "bites",
                             Integer.class );
        applicationData.put( "favouriteCheese",
                             Cheese.class );

        rule.setApplicationData( applicationData );

        assertTrue( testCondition( testNumber++,
                                   tuple,
                                   rule ) ); // 13
        assertFalse( testCondition( testNumber++,
                                    tuple,
                                    rule ) ); // 14
        assertTrue( testCondition( testNumber++,
                                   tuple,
                                   rule ) ); // 15

        // test code works no matter what the order of decl are
        tuple = new MockTuple( );
        rule.setImporter( this.importer );
        rule.setApplicationData( new HashMap( ) );
        tuple.setRule( rule );
        workingMemory = new MockWorkingMemory( );
        tuple.setWorkingMemory( workingMemory );

        DefaultConfiguration stringConfiguration = new DefaultConfiguration( "test2" );
        stringConfiguration.setText( String.class.getName( ) );
        ObjectType stringType = objectTypeFactory.newObjectType( rule,
                                                                 this.ruleBaseContext,
                                                                 stringConfiguration );
        Declaration favouriteCheeseDecl = rule.addParameterDeclaration( "favouriteCheese",
                                                                        stringType );

        tuple.put( favouriteCheeseDecl,
                   "camembert" );
        tuple.put( camembertDecl,
                   new Cheese( "camembert" ) );
        assertTrue( testCondition( testNumber++,
                                   tuple,
                                   rule ) ); // 16
        assertTrue( testCondition( testNumber++,
                                   tuple,
                                   rule ) ); // 17

        // test condition syntax with commas - Drools Issue #77
        assertTrue( testCondition( testNumber++,
                                   tuple,
                                   rule ) ); // 18

        // test exceptions
        rule.setImporter( this.importer );
        tuple.setRule( rule );
        try
        {
            testCondition( testNumber++,
                           tuple,
                           rule );
            fail( "Condition should throw an exception" );
        }
        catch ( ConditionException e )
        {
            // expected
        }

        // need to add a test for declaration order

        // 20
        // test imports
        tuple = new MockTuple( );
        rule.setImporter( this.importer );
        tuple.setRule( rule );
        workingMemory = new MockWorkingMemory( );
        tuple.setWorkingMemory( workingMemory );

        assertTrue( testCondition( testNumber++,
                                   tuple,
                                   rule ) ); // 20
    }
View Full Code Here


    /**
     * Tests each of the extracted tests from consequences.data
     */
    public void testConsequences() throws Exception
    {
        MockTuple tuple;

        DefaultConfiguration cheeseConfiguration = new DefaultConfiguration( "test1" );
        cheeseConfiguration.setText( Cheese.class.getName( ) );
        ObjectTypeFactory objectTypeFactory = module.getObjectTypeFactory( "class" );

        final RuleSet ruleSet = new RuleSet( "test RuleSet",
                                             this.ruleBaseContext );
        Rule rule = new Rule( "Test Rule 1",
                              ruleSet );

        rule.setImporter( new DefaultImporter( ) );
        ObjectType cheeseType = objectTypeFactory.newObjectType( rule,
                                                                 this.ruleBaseContext,
                                                                 cheeseConfiguration );

        tuple = new MockTuple( );
        rule.setImporter( this.importer );
        tuple.setRule( rule );
        tuple.setWorkingMemory( new MockWorkingMemory( ) );

        // simple condition, no declrations
        testConsequence( 0,
                         tuple,
                         rule );

        // need to declare so that the tests have SMFTestFrameWork.Cheese
        // imported
        Declaration camembertDecl = rule.addParameterDeclaration( "camembert",
                                                                  cheeseType );
        Declaration stiltonDecl = rule.addParameterDeclaration( "stilton",
                                                                cheeseType );

        Cheese camembert = new Cheese( "camembert" );
        Cheese stilton = new Cheese( "stilton" );
        tuple.put( camembertDecl,
                   camembert );
        tuple.put( stiltonDecl,
                   stilton );

        // tests nested classes, public static class SMFTestFrameWork.Cheese,
        // works
        testConsequence( 1,
                         tuple,
                         rule );

        // now start doing tests with declarations
        // first confirm that biteLeft is 3
        assertEquals( 3,
                      camembert.getBitesLeft( ) );
        assertEquals( 3,
                      stilton.getBitesLeft( ) );
        // execute consequence that calles eatCheese()
        testConsequence( 2,
                         tuple,
                         rule );
        // camembert should be eaten once, and stilton twice
        assertEquals( 2,
                      camembert.getBitesLeft( ) );
        assertEquals( 1,
                      stilton.getBitesLeft( ) );

        // test condition with declarations and application data
        WorkingMemory workingMemory = new MockWorkingMemory( );
        workingMemory.setApplicationData( "bites",
                                          new Integer( 3 ) );
        workingMemory.setApplicationData( "cheeses",
                                          new HashMap( ) );

        HashMap applicationData = new HashMap( );
        applicationData.put( "bites",
                             Integer.class );
        applicationData.put( "cheeses",
                             HashMap.class );

        rule.setApplicationData( applicationData );

        tuple.setWorkingMemory( workingMemory );
        testConsequence( 3,
                         tuple,
                         rule );
        assertEquals( 1,
                      camembert.getBitesLeft( ) );
        assertEquals( 0,
                      stilton.getBitesLeft( ) );
        Map map = (Map) workingMemory.getApplicationData( "cheeses" );
        assertEquals( camembert,
                      map.get( "favourite cheese" ) );
        assertEquals( 3,
                      ((Integer) map.get( "bites" )).intValue( ) );

        // 4
        // test exceptions
        rule = new Rule( "Test Rule 1",
                         ruleSet );
        rule.setImporter( this.importer );
        tuple.setRule( rule );
        try
        {
            testConsequence( 6,
                             tuple,
                             rule );
            fail( "Consequence should throw an exception" );
        }
        catch ( ConsequenceException e )
        {
            // expected
        }

        // 7
        // test imports
        tuple = new MockTuple( );
        rule = new Rule( "Test Rule 1",
                         ruleSet );
        rule.setImporter( this.importer );
        tuple.setRule( rule );
        workingMemory = new MockWorkingMemory( );
        tuple.setWorkingMemory( workingMemory );
        try
        {
            testConsequence( 7,
                             tuple,
                             rule );
View Full Code Here

        camembertRule.isValid( true );

        stiltonRule = new InstrumentedRule( "stilton" );
        stiltonRule.isValid( true );

        brie = new MockAgendaItem( new MockTuple( ), brieRule );
    }
View Full Code Here

        brieRule = new InstrumentedRule( "brie" );
        camembertRule = new InstrumentedRule( "camembert" );
        stiltonRule = new InstrumentedRule( "stilton" );

        brie = new MockAgendaItem( new MockTuple( ), brieRule );
        camembert = new MockAgendaItem( new MockTuple( ), camembertRule );
        stilton = new MockAgendaItem( new MockTuple( ), stiltonRule );
    }
View Full Code Here

        brieRule = new InstrumentedRule( "brie" );
        camembertRule = new InstrumentedRule( "camembert" );
        stiltonRule = new InstrumentedRule( "stilton" );

        brie = new MockAgendaItem( new MockTuple( ), brieRule );
        camembert = new MockAgendaItem( new MockTuple( ), camembertRule );
        stilton = new MockAgendaItem( new MockTuple( ), stiltonRule );

        MockTuple tuple = ( MockTuple ) brie.getTuple( );
        tuple.setLeastRecentFactTimeStamp( 1 );
        tuple = ( MockTuple ) camembert.getTuple( );
        tuple.setLeastRecentFactTimeStamp( 2 );
        tuple = ( MockTuple ) stilton.getTuple( );
        tuple.setLeastRecentFactTimeStamp( 3 );
    }
View Full Code Here

        brieRule = new InstrumentedRule( "brie" );
        camembertRule = new InstrumentedRule( "camembert" );
        stiltonRule = new InstrumentedRule( "stilton" );

        brie = new MockAgendaItem( new MockTuple( ), brieRule );
        camembert = new MockAgendaItem( new MockTuple( ), camembertRule );
        stilton = new MockAgendaItem( new MockTuple( ), stiltonRule );

        MockTuple tuple = ( MockTuple ) brie.getTuple( );
        tuple.setMostRecentFactTimeStamp( 1 );
        tuple = ( MockTuple ) camembert.getTuple( );
        tuple.setMostRecentFactTimeStamp( 2 );
        tuple = ( MockTuple ) stilton.getTuple( );
        tuple.setMostRecentFactTimeStamp( 3 );
    }
View Full Code Here

        brieRule = new InstrumentedRule( "brie" );
        camembertRule = new InstrumentedRule( "camembert" );
        stiltonRule = new InstrumentedRule( "stilton" );

        brie = new MockAgendaItem( new MockTuple( ), brieRule );
        camembert = new MockAgendaItem( new MockTuple( ), camembertRule );
        stilton = new MockAgendaItem( new MockTuple( ), stiltonRule );

        brieRule.addCondition( new InstrumentedCondition( ) );

        camembertRule.addCondition( new InstrumentedCondition( ) );
        camembertRule.addCondition( new InstrumentedCondition( ) );
View Full Code Here

        brieRule = new InstrumentedRule( "brie" );
        camembertRule = new InstrumentedRule( "camembert" );
        stiltonRule = new InstrumentedRule( "stilton" );

        brie = new MockAgendaItem( new MockTuple( ), brieRule );
        camembert = new MockAgendaItem( new MockTuple( ), camembertRule );
        stilton = new MockAgendaItem( new MockTuple( ), stiltonRule );

        brieRule.addCondition( new InstrumentedCondition( ) );

        camembertRule.addCondition( new InstrumentedCondition( ) );
        camembertRule.addCondition( new InstrumentedCondition( ) );
View Full Code Here

        fetaRule.isValid( true );

        mozzarellaRule = new InstrumentedRule( "mozzarella" );
        mozzarellaRule.isValid( true );

        brie = new MockAgendaItem( new MockTuple( ), brieRule );
        camembert = new MockAgendaItem( new MockTuple( ), camembertRule );
        stilton = new MockAgendaItem( new MockTuple( ), stiltonRule );
        cheddar = new MockAgendaItem( new MockTuple( ), cheddarRule );
        feta = new MockAgendaItem( new MockTuple( ), fetaRule );
        mozzarella = new MockAgendaItem( new MockTuple( ), mozzarellaRule );

        MockTuple tuple = ( MockTuple ) brie.getTuple( );
        tuple.setMostRecentFactTimeStamp( 1 );
        tuple = ( MockTuple ) feta.getTuple( );
        tuple.setMostRecentFactTimeStamp( 2 );
        tuple = ( MockTuple ) camembert.getTuple( );
        tuple.setMostRecentFactTimeStamp( 3 );

        brieRule.setSalience( 1 );
        fetaRule.setSalience( 1 );
        camembertRule.setSalience( 2 );
        stiltonRule.setSalience( 3 );
View Full Code Here

        brieRule = new InstrumentedRule( "brie" );
        camembertRule = new InstrumentedRule( "camembert" );
        stiltonRule = new InstrumentedRule( "stilton" );

        brie = new MockAgendaItem( new MockTuple( ), brieRule );
        camembert = new MockAgendaItem( new MockTuple( ), camembertRule );
        stilton = new MockAgendaItem( new MockTuple( ), stiltonRule );
    }
View Full Code Here

TOP

Related Classes of org.drools.spi.MockTuple

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.