/* * Copyright 2005 the original author or authors. * * 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.wamblee.conditions; import junit.framework.TestCase; import java.util.ArrayList; import java.util.List; /** * Tests the Or Condition. * * @author Erik Brakkee */ public class AndConditionTest extends TestCase { public void checkResult(boolean aFirst, boolean aSecond, boolean aResult) { AndCondition and = new AndCondition( new FixedCondition(aFirst), new FixedCondition( aSecond)); assertEquals(aResult, and.matches(0)); } public void checkResult(boolean[] aValues, boolean aResult) { List> conditions = new ArrayList>(); for (boolean value : aValues) { conditions.add(new FixedCondition(value)); } AndCondition and = new AndCondition(conditions); assertEquals(aResult, and.matches(new Integer(0))); } /** * Checks all combinations of two conditions. * */ public void testTwoConditions() { checkResult(false, false, false); checkResult(true, false, false); checkResult(false, true, false); checkResult(true, true, true); } public void testMultipleConditions() { checkResult(new boolean[] { false, false, false }, false); checkResult(new boolean[] { true, false, false }, false); checkResult(new boolean[] { false, true, false }, false); checkResult(new boolean[] { false, false, true }, false); checkResult(new boolean[] { true, true, true }, true); } }