/******************************************************************************* * Copyright (c) 2012-2015 INRIA. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Generoso Pagano - initial API and implementation ******************************************************************************/ package fr.inria.soctrace.test.junit.lib.query; import static org.junit.Assert.assertEquals; import org.junit.Test; import fr.inria.soctrace.lib.model.utils.SoCTraceException; import fr.inria.soctrace.lib.query.conditions.ConditionsConstants.ComparisonOperation; import fr.inria.soctrace.lib.query.conditions.ConditionsConstants.LogicalOperation; import fr.inria.soctrace.lib.query.conditions.LogicalCondition; import fr.inria.soctrace.lib.query.conditions.SimpleCondition; public class LogicalConditionTest { @Test public final void testAddCondition() throws SoCTraceException { LogicalCondition condition = new LogicalCondition(LogicalOperation.OR); for (ComparisonOperation op: ComparisonOperation.values()) { if (op.equals(ComparisonOperation.IN)) condition.addCondition(new SimpleCondition("A", op, "( 1, 2, 3 )")); else if (op.equals(ComparisonOperation.BETWEEN)) condition.addCondition(new SimpleCondition("A", op, "1 AND 4")); else condition.addCondition(new SimpleCondition("A", op, "1")); } } @Test public final void testGetNumberOfConditions() { LogicalCondition condition = new LogicalCondition(LogicalOperation.AND); condition.addCondition(new SimpleCondition("A", ComparisonOperation.EQ, "1")); condition.addCondition(new SimpleCondition("B", ComparisonOperation.NE, "2")); LogicalCondition or = new LogicalCondition(LogicalOperation.OR); or.addCondition(new SimpleCondition("C", ComparisonOperation.GE, "3")); or.addCondition(new SimpleCondition("D", ComparisonOperation.LE, "4")); condition.addCondition(or); assertEquals(3, condition.getNumberOfConditions()); assertEquals(2, or.getNumberOfConditions()); } @Test public final void testGetSQLString() throws SoCTraceException { LogicalCondition condition = new LogicalCondition(LogicalOperation.AND); condition.addCondition(new SimpleCondition("A", ComparisonOperation.EQ, "1")); condition.addCondition(new SimpleCondition("B", ComparisonOperation.NE, "2")); LogicalCondition or = new LogicalCondition(LogicalOperation.OR); or.addCondition(new SimpleCondition("C", ComparisonOperation.GE, "3")); or.addCondition(new SimpleCondition("D", ComparisonOperation.LE, "4")); condition.addCondition(or); assertEquals("( ( A = '1' ) AND ( B <> '2' ) AND ( ( C >= '3' ) OR ( D <= '4' ) ) )", condition.getSQLString()); } }