/**
* Alipay.com Inc.
* Copyright (c) 2004-2012 All Rights Reserved.
*/
package com.alipay.zdal.parser;
import java.util.Arrays;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
import java.util.Map.Entry;
import org.junit.Assert;
import org.junit.Test;
import com.alipay.zdal.common.DBType;
import com.alipay.zdal.common.sqljep.function.Comparative;
import com.alipay.zdal.common.sqljep.function.ComparativeOR;
import com.alipay.zdal.parser.result.SqlParserResult;
/**
* ����mysql��select���.
* @author xiaoqing.zhouxq
* @version $Id: SQLParserTest.java, v 0.1 2012-5-25 ����04:23:41 xiaoqing.zhouxq Exp $
*/
public class SQLParserOfDB2WithSelectInTest {
private static final String DB2_SELECT = "select inst_id, finance_exchange_code, reference_no, div_db_flag, gmt_biz_create, gmt_biz_modified, gmt_create, gmt_modified"
+ " from fin_retrieval_serial"
+ " where inst_id in (?,?,?,?)";
private static final Object[] DB2_SELECT_ARGS = new Object[] { "code1", "code2", "create1",
"create2" };
private static final String DB2_SELECT1 = "select inst_id, finance_exchange_code, reference_no, div_db_flag, gmt_biz_create, gmt_biz_modified, gmt_create, gmt_modified"
+ " from fin_retrieval_serial"
+ " where inst_id in ('code1','code2','code3','code4')";
/**
* ������ʱ,in������������.
*/
@Test
public void test1() {
SQLParser sqlParser = new DefaultSQLParser();
SqlParserResult parserResult = sqlParser.parse(DB2_SELECT, DBType.DB2);
Set<String> partinationSet = new HashSet<String>();
partinationSet.add("inst_id");
Map<String, Comparative> patitions = parserResult.getComparativeMapChoicer().getColumnsMap(
Arrays.asList(DB2_SELECT_ARGS), partinationSet);
Assert.assertEquals(1, patitions.size());
for (Entry<String, Comparative> entry : patitions.entrySet()) {
if (entry.getKey().equals("inst_id")) {
Assert.assertEquals(entry.getValue().getClass(), ComparativeOR.class);
}
}
}
/**
* ���Էǰ�����in������������.
*/
@Test
public void test2() {
SQLParser sqlParser = new DefaultSQLParser();
SqlParserResult parserResult = sqlParser.parse(DB2_SELECT1, DBType.DB2);
Set<String> partinationSet = new HashSet<String>();
partinationSet.add("inst_id");
Map<String, Comparative> patitions = parserResult.getComparativeMapChoicer().getColumnsMap(
Arrays.asList(DB2_SELECT_ARGS), partinationSet);
Assert.assertEquals(1, patitions.size());
for (Entry<String, Comparative> entry : patitions.entrySet()) {
if (entry.getKey().equals("inst_id")) {
Assert.assertEquals(entry.getValue().getClass(), ComparativeOR.class);
}
}
}
}