/*
* 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;
import java.util.ArrayList;
import java.util.List;
import junit.framework.TestCase;
/**
* @author higa
*
*/
public class FromClauseTest extends TestCase {
/**
*
*/
public void testAddSql() {
FromClause fromClause = new FromClause();
fromClause.addSql("AAA", "_T1");
assertEquals(" from AAA _T1", fromClause.toSql());
}
/**
*
*/
public void testAddSql_leftOuterJoin() {
FromClause fromClause = new FromClause();
fromClause.addSql("AAA", "_T1");
List<JoinColumnMeta> joinColumnMetaList = new ArrayList<JoinColumnMeta>();
joinColumnMetaList.add(new JoinColumnMeta("BBB_ID", "BBB_ID"));
fromClause.addSql(JoinType.LEFT_OUTER, "BBB", "_T2", "_T1", "_T2",
joinColumnMetaList, " with (updlock, rowlock)", null);
assertEquals(
" from AAA _T1 left outer join BBB _T2 with (updlock, rowlock) on _T1.BBB_ID = _T2.BBB_ID",
fromClause.toSql());
}
/**
*
*/
public void testAddSql_innerJoin() {
FromClause fromClause = new FromClause();
fromClause.addSql("AAA", "_T1");
List<JoinColumnMeta> joinColumnMetaList = new ArrayList<JoinColumnMeta>();
joinColumnMetaList.add(new JoinColumnMeta("BBB_ID", "BBB_ID"));
fromClause.addSql(JoinType.INNER, "BBB", "_T2", "_T1", "_T2",
joinColumnMetaList, " with (updlock, rowlock)", null);
assertEquals(
" from AAA _T1 inner join BBB _T2 with (updlock, rowlock) on _T1.BBB_ID = _T2.BBB_ID",
fromClause.toSql());
}
/**
*
*/
public void testAddSql_joinColumns() {
FromClause fromClause = new FromClause();
fromClause.addSql("AAA", "_T1");
List<JoinColumnMeta> joinColumnMetaList = new ArrayList<JoinColumnMeta>();
joinColumnMetaList.add(new JoinColumnMeta("BBB_ID", "BBB_ID"));
joinColumnMetaList.add(new JoinColumnMeta("BBB_ID2", "BBB_ID2"));
fromClause.addSql(JoinType.INNER, "BBB", "_T2", "_T1", "_T2",
joinColumnMetaList, " with (updlock, rowlock)",
"_T1.XXX is null and _T2.YYY is not null");
assertEquals(
" from AAA _T1 inner join BBB _T2 with (updlock, rowlock) on _T1.BBB_ID = _T2.BBB_ID and _T1.BBB_ID2 = _T2.BBB_ID2 and _T1.XXX is null and _T2.YYY is not null",
fromClause.toSql());
}
}