/** * Copyright 2010 JBoss Inc * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.drools.ide.common.modeldriven; import junit.framework.TestCase; import org.drools.ide.common.client.modeldriven.brl.CompositeFieldConstraint; import org.drools.ide.common.client.modeldriven.brl.FactPattern; import org.drools.ide.common.client.modeldriven.brl.SingleFieldConstraint; public class FactPatternTest extends TestCase { public void testAddConstraint() { final FactPattern p = new FactPattern(); final SingleFieldConstraint x = new SingleFieldConstraint( "x" ); p.addConstraint( x ); assertEquals( 1, p.constraintList.constraints.length ); assertEquals( x, p.constraintList.constraints[0] ); final SingleFieldConstraint y = new SingleFieldConstraint( "y" ); p.addConstraint( y ); assertEquals( 2, p.constraintList.constraints.length ); assertEquals( x, p.constraintList.constraints[0] ); assertEquals( y, p.constraintList.constraints[1] ); } public void testWithCompositeNesting() { final FactPattern p = new FactPattern(); final SingleFieldConstraint x = new SingleFieldConstraint( "x" ); p.addConstraint( x ); assertEquals( 1, p.constraintList.constraints.length ); assertEquals( x, p.constraintList.constraints[0] ); final CompositeFieldConstraint y = new CompositeFieldConstraint(); y.addConstraint( new SingleFieldConstraint("y") ); y.addConstraint( new SingleFieldConstraint("z") ); p.addConstraint( y ); assertEquals( 2, p.constraintList.constraints.length ); assertEquals( x, p.constraintList.constraints[0] ); assertEquals( y, p.constraintList.constraints[1] ); } public void testRemoveConstraint() { final FactPattern p = new FactPattern(); final SingleFieldConstraint x = new SingleFieldConstraint( "x" ); p.addConstraint( x ); final SingleFieldConstraint y = new SingleFieldConstraint( "y" ); p.addConstraint( y ); assertEquals( 2, p.constraintList.constraints.length ); p.removeConstraint( 1 ); assertEquals( 1, p.constraintList.constraints.length ); assertEquals( x, p.constraintList.constraints[0] ); } public void testIsBound() { FactPattern pat = new FactPattern(); pat.boundName = "x"; assertTrue(pat.isBound()); pat = new FactPattern(); assertFalse(pat.isBound()); } public void testGetFieldConstraints() { FactPattern pat = new FactPattern(); assertEquals(0, pat.getFieldConstraints().length); assertNull(pat.constraintList); pat.addConstraint( new SingleFieldConstraint() ); assertNotNull(pat.constraintList); assertEquals(1, pat.getFieldConstraints().length); } }