/**
* Copyright 2004-2017 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 com.ibatis.sqlmap;
import testdomain.Account;
import testdomain.MyBean;
import java.sql.SQLException;
import java.util.Arrays;
import java.util.List;
public class DynamicPrependTest extends BaseSqlMapTest {
@Override
protected void setUp() throws Exception {
initSqlMap("com/ibatis/sqlmap/maps/SqlMapConfig.xml", null);
initScript("scripts/account-init.sql");
}
@Override
protected void tearDown() throws Exception {
}
// Iterate with prepend
public void testIterateWithPrepend1() throws SQLException {
List params = Arrays.asList(new Integer[] { new Integer(1), new Integer(2), new Integer(3) });
List list = sqlMap.queryForList("dynamicIterateWithPrepend1", params);
assertAccount1((Account) list.get(0));
assertEquals(3, list.size());
}
public void testIterateWithPrepend2() throws SQLException {
List params = Arrays.asList(new Integer[] { new Integer(1), new Integer(2), new Integer(3) });
List list = sqlMap.queryForList("dynamicIterateWithPrepend2", params);
assertAccount1((Account) list.get(0));
assertEquals(3, list.size());
}
public void testIterateWithPrepend2b() throws SQLException {
Account account1, account2, account3;
account1 = new Account();
account1.setId(1);
account2 = new Account();
account2.setId(2);
account3 = new Account();
account3.setId(3);
List params = Arrays.asList(new Account[] { account1, account2, account3 });
List list = sqlMap.queryForList("dynamicIterateWithPrepend2b", params);
assertAccount1((Account) list.get(0));
assertEquals(3, list.size());
}
public void testIterateWithPrepend2c() throws SQLException {
Account account1, account2, account3;
account1 = new Account();
account1.setId(1);
account2 = new Account();
account2.setId(2);
account3 = new Account();
account3.setId(3);
List params = Arrays.asList(new Account[] { account1, account2, account3 });
MyBean x = new MyBean();
x.setMyList(params);
List list = sqlMap.queryForList("dynamicIterateWithPrepend2c", x);
assertAccount1((Account) list.get(0));
assertEquals(3, list.size());
assertEquals(1, ((Account) list.get(0)).getId());
assertEquals(2, ((Account) list.get(1)).getId());
}
public void testIterateWithPrepend2d() throws SQLException {
List params = Arrays.asList(new Integer[] { new Integer(1), new Integer(2), new Integer(3) });
MyBean x = new MyBean();
x.setMyList(params);
List list = sqlMap.queryForList("dynamicIterateWithPrepend2d", x);
assertAccount1((Account) list.get(0));
assertEquals(2, list.size());
assertEquals(1, ((Account) list.get(0)).getId());
assertEquals(3, ((Account) list.get(1)).getId());
}
public void testIterateWithPrepend2e() throws SQLException {
Object[] params = new Object[] { new Integer(1), new Integer(2), new Integer(3) };
MyBean x = new MyBean();
x.setMyArray(params);
List list = sqlMap.queryForList("dynamicIterateWithPrepend2e", x);
assertAccount1((Account) list.get(0));
assertEquals(2, list.size());
assertEquals(1, ((Account) list.get(0)).getId());
assertEquals(3, ((Account) list.get(1)).getId());
}
public void testIterateWithPrepend2f() throws SQLException {
int[] params = new int[] { 1, 2, 3 };
MyBean x = new MyBean();
x.setIntArray(params);
List list = sqlMap.queryForList("dynamicIterateWithPrepend2f", x);
assertAccount1((Account) list.get(0));
assertEquals(2, list.size());
assertEquals(1, ((Account) list.get(0)).getId());
assertEquals(3, ((Account) list.get(1)).getId());
}
public void testIterateWithPrepend3() throws SQLException {
List params = Arrays.asList(new Integer[] { new Integer(1), new Integer(2), new Integer(3) });
List list = sqlMap.queryForList("dynamicIterateWithPrepend3", params);
assertAccount1((Account) list.get(0));
assertEquals(3, list.size());
}
public void testDynamicWithPrepend1() throws SQLException {
Account account = new Account();
account.setId(1);
account = (Account) sqlMap.queryForObject("dynamicWithPrepend", account);
assertAccount1(account);
}
public void testDynamicWithPrepend2() throws SQLException {
Account account = new Account();
account.setId(1);
account.setFirstName("Clinton");
account = (Account) sqlMap.queryForObject("dynamicWithPrepend", account);
assertAccount1(account);
}
public void testDynamicWithPrepend3() throws SQLException {
Account account = new Account();
account.setId(1);
account.setFirstName("Clinton");
account.setLastName("Begin");
account = (Account) sqlMap.queryForObject("dynamicWithPrepend", account);
assertAccount1(account);
}
public void testIterateWithPrepend4() throws SQLException {
List list = sqlMap.queryForList("dynamicWithPrepend", null);
assertAccount1((Account) list.get(0));
assertEquals(5, list.size());
}
public void testIterateWithTwoPrepends() throws SQLException {
Account account = new Account();
account.setId(1);
account.setFirstName("Clinton");
account = (Account) sqlMap.queryForObject("dynamicWithPrepend", account);
assertNotNull(account);
assertAccount1(account);
List list = sqlMap.queryForList("dynamicWithTwoDynamicElements", account);
assertAccount1((Account) list.get(0));
}
public void testComplexDynamic() throws SQLException {
Account account = new Account();
account.setId(1);
account.setFirstName("Clinton");
account.setLastName("Begin");
List list = sqlMap.queryForList("complexDynamicStatement", account);
assertAccount1((Account) list.get(0));
}
}