/* * Copyright 2004-2015 the Seasar Foundation and the Others. * * 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.seasar.extension.jdbc.where; import junit.framework.TestCase; /** * @author koichik */ public class ComplexWhereTest extends TestCase { /** * */ public void testIsNotNull_false() { ComplexWhere w = new ComplexWhere(); assertSame(w, w.isNotNull("name", false)); assertEquals("", w.getCriteria()); } /** * */ public void testOr2() { ComplexWhere w = new ComplexWhere(); w.eq("a", 1).eq("b", 2).or().eq("c", 3).eq("d", 4); assertEquals("(a = ? and b = ?) or (c = ? and d = ?)", w.getCriteria()); assertEquals(4, w.getParams().length); assertEquals(4, w.getPropertyNames().length); } /** * */ public void testOr3() { ComplexWhere w = new ComplexWhere(); w.eq("a", 1).eq("b", 2).or().eq("c", 3).eq("d", 4).or().eq("e", 5).eq( "f", 6); assertEquals( "(a = ? and b = ?) or (c = ? and d = ?) or (e = ? and f = ?)", w.getCriteria()); assertEquals(6, w.getParams().length); assertEquals(6, w.getPropertyNames().length); } /** * */ public void testOrEnds() { ComplexWhere w = new ComplexWhere(); w.eq("a", 1).eq("b", 2).or().eq("c", 3).eq("d", 4).or(); assertEquals("(a = ? and b = ?) or (c = ? and d = ?)", w.getCriteria()); assertEquals(4, w.getParams().length); assertEquals(4, w.getPropertyNames().length); } /** * */ public void testOrEmptyTerm() { ComplexWhere w = new ComplexWhere(); w.eq("a", null).eq("b", null).or().eq("c", 3).eq("d", 4); assertEquals("c = ? and d = ?", w.getCriteria()); assertEquals(2, w.getParams().length); assertEquals(2, w.getPropertyNames().length); } /** * */ public void testAnd() { ComplexWhere w = new ComplexWhere(); w.eq("a", 1).eq("b", 2).and( new ComplexWhere().eq("c", 3).or().eq("d", 4)).eq("e", 5).eq( "f", 6); assertEquals( "a = ? and b = ? and ((c = ?) or (d = ?)) and e = ? and f = ?", w.getCriteria()); assertEquals(6, w.getParams().length); assertEquals(6, w.getPropertyNames().length); } /** * */ public void testAnd2() { ComplexWhere w = new ComplexWhere(); w.eq("a", null).eq("b", null).and( new ComplexWhere().eq("c", 3).or().eq("d", 4)).eq("e", 5).eq( "f", 6); assertEquals(" ((c = ?) or (d = ?)) and e = ? and f = ?", w .getCriteria()); assertEquals(4, w.getParams().length); assertEquals(4, w.getPropertyNames().length); } }