/**
* Copyright 2006-2016 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 mbg.test.mb3.miscellaneous;
import static mbg.test.common.util.TestUtilities.datesAreEqual;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
import java.net.URL;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;
import mbg.test.common.FirstName;
import mbg.test.common.MyTime;
import mbg.test.mb3.common.TestEnum;
import mbg.test.mb3.generated.miscellaneous.mapper.EnumtestMapper;
import mbg.test.mb3.generated.miscellaneous.mapper.MyMapper;
import mbg.test.mb3.generated.miscellaneous.mapper.RegexrenameMapper;
import mbg.test.mb3.generated.miscellaneous.model.Enumtest;
import mbg.test.mb3.generated.miscellaneous.model.MyObject;
import mbg.test.mb3.generated.miscellaneous.model.MyObjectCriteria;
import mbg.test.mb3.generated.miscellaneous.model.MyObjectKey;
import mbg.test.mb3.generated.miscellaneous.model.Regexrename;
import mbg.test.mb3.generated.miscellaneous.model.mbgtest.Anotherawfultable;
/**
* @author Jeff Butler
*
*/
public class MiscellaneousTest extends AbstractMiscellaneousTest {
@Test
public void testMyObjectinsertMyObject() {
SqlSession sqlSession = sqlSessionFactory.openSession();
try {
MyMapper mapper = sqlSession.getMapper(MyMapper.class);
MyObject record = new MyObject();
record.setStartDate(new Date());
record.setDecimal100field(10L);
record.setDecimal155field(15.12345);
record.setDecimal60field(6);
FirstName fn = new FirstName();
fn.setValue("Jeff");
record.setFirstname(fn);
record.setId1(1);
record.setId2(2);
record.setLastname("Butler");
MyTime myTime = new MyTime();
myTime.setHours(12);
myTime.setMinutes(34);
myTime.setSeconds(05);
record.setTimefield(myTime);
record.setTimestampfield(new Date());
mapper.insert(record);
MyObjectKey key = new MyObjectKey();
key.setId1(1);
key.setId2(2);
MyObject returnedRecord = mapper.selectByPrimaryKey(key);
assertNotNull(returnedRecord);
assertTrue(datesAreEqual(record.getStartDate(), returnedRecord
.getStartDate()));
assertEquals(record.getDecimal100field(), returnedRecord
.getDecimal100field());
assertEquals(record.getDecimal155field(), returnedRecord
.getDecimal155field());
assertEquals(record.getDecimal60field(), returnedRecord
.getDecimal60field());
assertEquals(record.getFirstname(), returnedRecord.getFirstname());
assertEquals(record.getId1(), returnedRecord.getId1());
assertEquals(record.getId2(), returnedRecord.getId2());
assertEquals(record.getLastname(), returnedRecord.getLastname());
assertEquals(record.getTimefield(), returnedRecord.getTimefield());
assertEquals(record.getTimestampfield(), returnedRecord
.getTimestampfield());
} finally {
sqlSession.close();
}
}
@Test
public void testMyObjectUpdateByPrimaryKey() {
SqlSession sqlSession = sqlSessionFactory.openSession();
try {
MyMapper mapper = sqlSession.getMapper(MyMapper.class);
MyObject record = new MyObject();
FirstName fn = new FirstName();
fn.setValue("Jeff");
record.setFirstname(fn);
record.setLastname("Smith");
record.setId1(1);
record.setId2(2);
mapper.insert(record);
fn = new FirstName();
fn.setValue("Scott");
record.setFirstname(fn);
record.setLastname("Jones");
int rows = mapper.updateByPrimaryKey(record);
assertEquals(1, rows);
MyObjectKey key = new MyObjectKey();
key.setId1(1);
key.setId2(2);
MyObject record2 = mapper.selectByPrimaryKey(key);
assertEquals(record.getFirstname(), record2.getFirstname());
assertEquals(record.getLastname(), record2.getLastname());
assertEquals(record.getId1(), record2.getId1());
assertEquals(record.getId2(), record2.getId2());
} finally {
sqlSession.close();
}
}
@Test
public void testMyObjectUpdateByPrimaryKeySelective() {
SqlSession sqlSession = sqlSessionFactory.openSession();
try {
MyMapper mapper = sqlSession.getMapper(MyMapper.class);
MyObject record = new MyObject();
FirstName fn = new FirstName();
fn.setValue("Jeff");
record.setFirstname(fn);
record.setLastname("Smith");
record.setDecimal60field(5);
record.setId1(1);
record.setId2(2);
mapper.insert(record);
MyObject newRecord = new MyObject();
newRecord.setId1(1);
newRecord.setId2(2);
fn = new FirstName();
fn.setValue("Scott");
newRecord.setFirstname(fn);
record.setStartDate(new Date());
int rows = mapper.updateByPrimaryKeySelective(newRecord);
assertEquals(1, rows);
MyObjectKey key = new MyObjectKey();
key.setId1(1);
key.setId2(2);
MyObject returnedRecord = mapper.selectByPrimaryKey(key);
assertTrue(datesAreEqual(newRecord.getStartDate(), returnedRecord
.getStartDate()));
assertEquals(record.getDecimal100field(), returnedRecord
.getDecimal100field());
assertEquals(record.getDecimal155field(), returnedRecord
.getDecimal155field());
// with columns mapped to primitive types, the column is always
// updated
assertEquals(newRecord.getDecimal60field(), returnedRecord
.getDecimal60field());
assertEquals(newRecord.getFirstname(), returnedRecord
.getFirstname());
assertEquals(record.getId1(), returnedRecord.getId1());
assertEquals(record.getId2(), returnedRecord.getId2());
assertEquals(record.getLastname(), returnedRecord.getLastname());
assertEquals(record.getTimefield(), returnedRecord.getTimefield());
assertEquals(record.getTimestampfield(), returnedRecord
.getTimestampfield());
} finally {
sqlSession.close();
}
}
@Test
public void testMyObjectDeleteByPrimaryKey() {
SqlSession sqlSession = sqlSessionFactory.openSession();
try {
MyMapper mapper = sqlSession.getMapper(MyMapper.class);
MyObject record = new MyObject();
FirstName fn = new FirstName();
fn.setValue("Jeff");
record.setFirstname(fn);
record.setLastname("Smith");
record.setId1(1);
record.setId2(2);
mapper.insert(record);
MyObjectKey key = new MyObjectKey();
key.setId1(1);
key.setId2(2);
int rows = mapper.deleteByPrimaryKey(key);
assertEquals(1, rows);
MyObjectCriteria example = new MyObjectCriteria();
List<MyObject> answer = mapper.selectByExample(example);
assertEquals(0, answer.size());
} finally {
sqlSession.close();
}
}
@Test
public void testMyObjectDeleteByExample() {
SqlSession sqlSession = sqlSessionFactory.openSession();
try {
MyMapper mapper = sqlSession.getMapper(MyMapper.class);
MyObject record = new MyObject();
FirstName fn = new FirstName();
fn.setValue("Jeff");
record.setFirstname(fn);
record.setLastname("Smith");
record.setId1(1);
record.setId2(2);
mapper.insert(record);
record = new MyObject();
fn = new FirstName();
fn.setValue("Bob");
record.setFirstname(fn);
record.setLastname("Jones");
record.setId1(3);
record.setId2(4);
mapper.insert(record);
MyObjectCriteria example = new MyObjectCriteria();
List<MyObject> answer = mapper.selectByExample(example);
assertEquals(2, answer.size());
example = new MyObjectCriteria();
example.createCriteria().andLastnameLike("J%");
int rows = mapper.deleteByExample(example);
assertEquals(1, rows);
example = new MyObjectCriteria();
answer = mapper.selectByExample(example);
assertEquals(1, answer.size());
} finally {
sqlSession.close();
}
}
@Test
public void testMyObjectSelectByPrimaryKey() {
SqlSession sqlSession = sqlSessionFactory.openSession();
try {
MyMapper mapper = sqlSession.getMapper(MyMapper.class);
MyObject record = new MyObject();
FirstName fn = new FirstName();
fn.setValue("Jeff");
record.setFirstname(fn);
record.setLastname("Smith");
record.setId1(1);
record.setId2(2);
mapper.insert(record);
record = new MyObject();
fn = new FirstName();
fn.setValue("Bob");
record.setFirstname(fn);
record.setLastname("Jones");
record.setId1(3);
record.setId2(4);
mapper.insert(record);
MyObjectKey key = new MyObjectKey();
key.setId1(3);
key.setId2(4);
MyObject newRecord = mapper.selectByPrimaryKey(key);
assertNotNull(newRecord);
assertEquals(record.getFirstname(), newRecord.getFirstname());
assertEquals(record.getLastname(), newRecord.getLastname());
assertEquals(record.getId1(), newRecord.getId1());
assertEquals(record.getId2(), newRecord.getId2());
} finally {
sqlSession.close();
}
}
@Test
public void testMyObjectSelectByExampleLike() {
SqlSession sqlSession = sqlSessionFactory.openSession();
try {
MyMapper mapper = sqlSession.getMapper(MyMapper.class);
MyObject record = new MyObject();
FirstName fn = new FirstName();
fn.setValue("Fred");
record.setFirstname(fn);
record.setLastname("Flintstone");
record.setId1(1);
record.setId2(1);
mapper.insert(record);
record = new MyObject();
fn = new FirstName();
fn.setValue("Wilma");
record.setFirstname(fn);
record.setLastname("Flintstone");
record.setId1(1);
record.setId2(2);
mapper.insert(record);
record = new MyObject();
fn = new FirstName();
fn.setValue("Pebbles");
record.setFirstname(fn);
record.setLastname("Flintstone");
record.setId1(1);
record.setId2(3);
mapper.insert(record);
record = new MyObject();
fn = new FirstName();
fn.setValue("Barney");
record.setFirstname(fn);
record.setLastname("Rubble");
record.setId1(2);
record.setId2(1);
mapper.insert(record);
record = new MyObject();
fn = new FirstName();
fn.setValue("Betty");
record.setFirstname(fn);
record.setLastname("Rubble");
record.setId1(2);
record.setId2(2);
mapper.insert(record);
record = new MyObject();
fn = new FirstName();
fn.setValue("Bamm Bamm");
record.setFirstname(fn);
record.setLastname("Rubble");
record.setId1(2);
record.setId2(3);
mapper.insert(record);
MyObjectCriteria example = new MyObjectCriteria();
fn = new FirstName();
fn.setValue("B%");
example.createCriteria().andFirstnameLike(fn);
example.setOrderByClause("ID1, ID2");
List<MyObject> answer = mapper.selectByExample(example);
assertEquals(3, answer.size());
MyObject returnedRecord = answer.get(0);
assertEquals(2, returnedRecord.getId1().intValue());
assertEquals(1, returnedRecord.getId2().intValue());
returnedRecord = answer.get(1);
assertEquals(2, returnedRecord.getId1().intValue());
assertEquals(2, returnedRecord.getId2().intValue());
returnedRecord = answer.get(2);
assertEquals(2, returnedRecord.getId1().intValue());
assertEquals(3, returnedRecord.getId2().intValue());
} finally {
sqlSession.close();
}
}
@Test
public void testMyObjectSelectByExampleNotLike() {
SqlSession sqlSession = sqlSessionFactory.openSession();
try {
MyMapper mapper = sqlSession.getMapper(MyMapper.class);
MyObject record = new MyObject();
FirstName fn = new FirstName();
fn.setValue("Fred");
record.setFirstname(fn);
record.setLastname("Flintstone");
record.setId1(1);
record.setId2(1);
mapper.insert(record);
record = new MyObject();
fn = new FirstName();
fn.setValue("Wilma");
record.setFirstname(fn);
record.setLastname("Flintstone");
record.setId1(1);
record.setId2(2);
mapper.insert(record);
record = new MyObject();
fn = new FirstName();
fn.setValue("Pebbles");
record.setFirstname(fn);
record.setLastname("Flintstone");
record.setId1(1);
record.setId2(3);
mapper.insert(record);
record = new MyObject();
fn = new FirstName();
fn.setValue("Barney");
record.setFirstname(fn);
record.setLastname("Rubble");
record.setId1(2);
record.setId2(1);
mapper.insert(record);
record = new MyObject();
fn = new FirstName();
fn.setValue("Betty");
record.setFirstname(fn);
record.setLastname("Rubble");
record.setId1(2);
record.setId2(2);
mapper.insert(record);
record = new MyObject();
fn = new FirstName();
fn.setValue("Bamm Bamm");
record.setFirstname(fn);
record.setLastname("Rubble");
record.setId1(2);
record.setId2(3);
mapper.insert(record);
MyObjectCriteria example = new MyObjectCriteria();
fn = new FirstName();
fn.setValue("B%");
example.createCriteria().andFirstnameNotLike(fn);
example.setOrderByClause("ID1, ID2");
List<MyObject> answer = mapper.selectByExample(example);
assertEquals(3, answer.size());
MyObject returnedRecord = answer.get(0);
assertEquals(1, returnedRecord.getId1().intValue());
assertEquals(1, returnedRecord.getId2().intValue());
returnedRecord = answer.get(1);
assertEquals(1, returnedRecord.getId1().intValue());
assertEquals(2, returnedRecord.getId2().intValue());
returnedRecord = answer.get(2);
assertEquals(1, returnedRecord.getId1().intValue());
assertEquals(3, returnedRecord.getId2().intValue());
} finally {
sqlSession.close();
}
}
@Test
public void testMyObjectSelectByExampleComplexLike() {
SqlSession sqlSession = sqlSessionFactory.openSession();
try {
MyMapper mapper = sqlSession.getMapper(MyMapper.class);
MyObject record = new MyObject();
FirstName fn = new FirstName();
fn.setValue("Fred");
record.setFirstname(fn);
record.setLastname("Flintstone");
record.setId1(1);
record.setId2(1);
mapper.insert(record);
record = new MyObject();
fn = new FirstName();
fn.setValue("Wilma");
record.setFirstname(fn);
record.setLastname("Flintstone");
record.setId1(1);
record.setId2(2);
mapper.insert(record);
record = new MyObject();
fn = new FirstName();
fn.setValue("Pebbles");
record.setFirstname(fn);
record.setLastname("Flintstone");
record.setId1(1);
record.setId2(3);
mapper.insert(record);
record = new MyObject();
fn = new FirstName();
fn.setValue("Barney");
record.setFirstname(fn);
record.setLastname("Rubble");
record.setId1(2);
record.setId2(1);
mapper.insert(record);
record = new MyObject();
fn = new FirstName();
fn.setValue("Betty");
record.setFirstname(fn);
record.setLastname("Rubble");
record.setId1(2);
record.setId2(2);
mapper.insert(record);
record = new MyObject();
fn = new FirstName();
fn.setValue("Bamm Bamm");
record.setFirstname(fn);
record.setLastname("Rubble");
record.setId1(2);
record.setId2(3);
mapper.insert(record);
MyObjectCriteria example = new MyObjectCriteria();
fn = new FirstName();
fn.setValue("B%");
example.createCriteria().andFirstnameLike(fn).andId2EqualTo(3);
fn = new FirstName();
fn.setValue("W%");
example.or(example.createCriteria().andFirstnameLike(fn));
example.setOrderByClause("ID1, ID2");
List<MyObject> answer = mapper.selectByExample(example);
assertEquals(2, answer.size());
MyObject returnedRecord = answer.get(0);
assertEquals(1, returnedRecord.getId1().intValue());
assertEquals(2, returnedRecord.getId2().intValue());
returnedRecord = answer.get(1);
assertEquals(2, returnedRecord.getId1().intValue());
assertEquals(3, returnedRecord.getId2().intValue());
} finally {
sqlSession.close();
}
}
@Test
public void testMyObjectSelectByExampleIn() {
SqlSession sqlSession = sqlSessionFactory.openSession();
try {
MyMapper mapper = sqlSession.getMapper(MyMapper.class);
MyObject record = new MyObject();
FirstName fn = new FirstName();
fn.setValue("Fred");
record.setFirstname(fn);
record.setLastname("Flintstone");
record.setId1(1);
record.setId2(1);
mapper.insert(record);
record = new MyObject();
fn = new FirstName();
fn.setValue("Wilma");
record.setFirstname(fn);
record.setLastname("Flintstone");
record.setId1(1);
record.setId2(2);
mapper.insert(record);
record = new MyObject();
fn = new FirstName();
fn.setValue("Pebbles");
record.setFirstname(fn);
record.setLastname("Flintstone");
record.setId1(1);
record.setId2(3);
mapper.insert(record);
record = new MyObject();
fn = new FirstName();
fn.setValue("Barney");
record.setFirstname(fn);
record.setLastname("Rubble");
record.setId1(2);
record.setId2(1);
mapper.insert(record);
record = new MyObject();
fn = new FirstName();
fn.setValue("Betty");
record.setFirstname(fn);
record.setLastname("Rubble");
record.setId1(2);
record.setId2(2);
mapper.insert(record);
record = new MyObject();
fn = new FirstName();
fn.setValue("Bamm Bamm");
record.setFirstname(fn);
record.setLastname("Rubble");
record.setId1(2);
record.setId2(3);
mapper.insert(record);
List<Integer> ids = new ArrayList<Integer>();
ids.add(1);
ids.add(3);
MyObjectCriteria example = new MyObjectCriteria();
example.createCriteria().andId2In(ids);
example.setOrderByClause("ID1, ID2");
List<MyObject> answer = mapper.selectByExample(example);
assertEquals(4, answer.size());
MyObject returnedRecord = answer.get(0);
assertEquals(1, returnedRecord.getId1().intValue());
assertEquals(1, returnedRecord.getId2().intValue());
assertEquals("Flintstone", returnedRecord.getLastname());
returnedRecord = answer.get(1);
assertEquals(1, returnedRecord.getId1().intValue());
assertEquals(3, returnedRecord.getId2().intValue());
assertEquals("Flintstone", returnedRecord.getLastname());
returnedRecord = answer.get(2);
assertEquals(2, returnedRecord.getId1().intValue());
assertEquals(1, returnedRecord.getId2().intValue());
assertEquals("Rubble", returnedRecord.getLastname());
returnedRecord = answer.get(3);
assertEquals(2, returnedRecord.getId1().intValue());
assertEquals(3, returnedRecord.getId2().intValue());
assertEquals("Rubble", returnedRecord.getLastname());
} finally {
sqlSession.close();
}
}
@Test
public void testMyObjectSelectByExampleBetween() {
SqlSession sqlSession = sqlSessionFactory.openSession();
try {
MyMapper mapper = sqlSession.getMapper(MyMapper.class);
MyObject record = new MyObject();
FirstName fn = new FirstName();
fn.setValue("Fred");
record.setFirstname(fn);
record.setLastname("Flintstone");
record.setId1(1);
record.setId2(1);
mapper.insert(record);
record = new MyObject();
fn = new FirstName();
fn.setValue("Wilma");
record.setFirstname(fn);
record.setLastname("Flintstone");
record.setId1(1);
record.setId2(2);
mapper.insert(record);
record = new MyObject();
fn = new FirstName();
fn.setValue("Pebbles");
record.setFirstname(fn);
record.setLastname("Flintstone");
record.setId1(1);
record.setId2(3);
mapper.insert(record);
record = new MyObject();
fn = new FirstName();
fn.setValue("Barney");
record.setFirstname(fn);
record.setLastname("Rubble");
record.setId1(2);
record.setId2(1);
mapper.insert(record);
record = new MyObject();
fn = new FirstName();
fn.setValue("Betty");
record.setFirstname(fn);
record.setLastname("Rubble");
record.setId1(2);
record.setId2(2);
mapper.insert(record);
record = new MyObject();
fn = new FirstName();
fn.setValue("Bamm Bamm");
record.setFirstname(fn);
record.setLastname("Rubble");
record.setId1(2);
record.setId2(3);
mapper.insert(record);
MyObjectCriteria example = new MyObjectCriteria();
example.createCriteria().andId2Between(1, 3);
example.setOrderByClause("ID1, ID2");
List<MyObject> answer = mapper.selectByExample(example);
assertEquals(6, answer.size());
} finally {
sqlSession.close();
}
}
@Test
public void testMyObjectSelectByExampleTimeEquals() {
SqlSession sqlSession = sqlSessionFactory.openSession();
try {
MyMapper mapper = sqlSession.getMapper(MyMapper.class);
MyObject record = new MyObject();
record.setStartDate(new Date());
record.setDecimal100field(10L);
record.setDecimal155field(15.12345);
record.setDecimal60field(6);
FirstName fn = new FirstName();
fn.setValue("Jeff");
record.setFirstname(fn);
record.setId1(1);
record.setId2(2);
record.setLastname("Butler");
MyTime myTime = new MyTime();
myTime.setHours(12);
myTime.setMinutes(34);
myTime.setSeconds(05);
record.setTimefield(myTime);
record.setTimestampfield(new Date());
mapper.insert(record);
MyObjectCriteria example = new MyObjectCriteria();
example.createCriteria().andTimefieldEqualTo(myTime);
List<MyObject> results = mapper.selectByExample(example);
assertEquals(1, results.size());
MyObject returnedRecord = results.get(0);
assertTrue(datesAreEqual(record.getStartDate(), returnedRecord
.getStartDate()));
assertEquals(record.getDecimal100field(), returnedRecord
.getDecimal100field());
assertEquals(record.getDecimal155field(), returnedRecord
.getDecimal155field());
assertEquals(record.getDecimal60field(), returnedRecord
.getDecimal60field());
assertEquals(record.getFirstname(), returnedRecord.getFirstname());
assertEquals(record.getId1(), returnedRecord.getId1());
assertEquals(record.getId2(), returnedRecord.getId2());
assertEquals(record.getLastname(), returnedRecord.getLastname());
assertEquals(record.getTimefield(), returnedRecord.getTimefield());
assertEquals(record.getTimestampfield(), returnedRecord
.getTimestampfield());
} finally {
sqlSession.close();
}
}
@Test(expected=NoSuchFieldException.class)
public void testFieldIgnored() throws NoSuchFieldException {
MyObject.class.getDeclaredField("decimal30field");
}
@Test
public void testFluentBuilderMethodGenerated() {
MyObject myObject = new MyObject();
FirstName firstname = new FirstName();
firstname.setValue( "Bob" );
Integer wierdField = 4711;
myObject.withWierdField( wierdField )
.withFirstname( firstname );
assertEquals( "firstName was set", "Bob", myObject.getFirstname().getValue() );
assertEquals( "wieredField was set", wierdField,myObject.getWierdField());
}
@Test
public void testMyObjectUpdateByExampleSelective() {
SqlSession sqlSession = sqlSessionFactory.openSession();
try {
MyMapper mapper = sqlSession.getMapper(MyMapper.class);
MyObject record = new MyObject();
FirstName fn = new FirstName();
fn.setValue("Jeff");
record.setFirstname(fn);
record.setLastname("Smith");
record.setId1(1);
record.setId2(2);
mapper.insert(record);
record = new MyObject();
fn = new FirstName();
fn.setValue("Bob");
record.setFirstname(fn);
record.setLastname("Jones");
record.setId1(3);
record.setId2(4);
mapper.insert(record);
MyObject newRecord = new MyObject();
newRecord.setLastname("Barker");
MyObjectCriteria example = new MyObjectCriteria();
fn = new FirstName();
fn.setValue("B%");
example.createCriteria().andFirstnameLike(fn);
int rows = mapper.updateByExampleSelective(newRecord, example);
assertEquals(1, rows);
List<MyObject> answer = mapper.selectByExample(example);
assertEquals(1, answer.size());
MyObject returnedRecord = answer.get(0);
assertEquals(newRecord.getLastname(), returnedRecord.getLastname());
assertEquals(record.getFirstname(), returnedRecord.getFirstname());
assertEquals(record.getId1(), returnedRecord.getId1());
assertEquals(record.getId2(), returnedRecord.getId2());
} finally {
sqlSession.close();
}
}
@Test
public void testMyObjectUpdateByExample() {
SqlSession sqlSession = sqlSessionFactory.openSession();
try {
MyMapper mapper = sqlSession.getMapper(MyMapper.class);
MyObject record = new MyObject();
FirstName fn = new FirstName();
fn.setValue("Jeff");
record.setFirstname(fn);
record.setLastname("Smith");
record.setId1(1);
record.setId2(2);
mapper.insert(record);
record = new MyObject();
fn = new FirstName();
fn.setValue("Bob");
record.setFirstname(fn);
record.setLastname("Jones");
record.setId1(3);
record.setId2(4);
mapper.insert(record);
MyObject newRecord = new MyObject();
newRecord.setLastname("Barker");
newRecord.setId1(3);
newRecord.setId2(4);
MyObjectCriteria example = new MyObjectCriteria();
example.createCriteria()
.andId1EqualTo(3)
.andId2EqualTo(4);
int rows = mapper.updateByExample(newRecord, example);
assertEquals(1, rows);
List<MyObject> answer = mapper.selectByExample(example);
assertEquals(1, answer.size());
MyObject returnedRecord = answer.get(0);
assertEquals(newRecord.getLastname(), returnedRecord.getLastname());
assertNull(returnedRecord.getFirstname());
assertEquals(newRecord.getId1(), returnedRecord.getId1());
assertEquals(newRecord.getId2(), returnedRecord.getId2());
} finally {
sqlSession.close();
}
}
@Test
public void testRegexRenameInsert() {
SqlSession sqlSession = sqlSessionFactory.openSession();
try {
RegexrenameMapper mapper = sqlSession.getMapper(RegexrenameMapper.class);
Regexrename record = new Regexrename();
record.setAddress("123 Main Street");
record.setName("Fred");
record.setZipCode("99999");
mapper.insert(record);
Regexrename returnedRecord = mapper.selectByPrimaryKey(1);
assertEquals(record.getAddress(), returnedRecord.getAddress());
assertEquals(1, returnedRecord.getId().intValue());
assertEquals(record.getName(), returnedRecord.getName());
assertEquals(record.getZipCode(), returnedRecord.getZipCode());
} finally {
sqlSession.close();
}
}
@Test
public void testRegexRenameInsertSelective() {
SqlSession sqlSession = sqlSessionFactory.openSession();
try {
RegexrenameMapper mapper = sqlSession.getMapper(RegexrenameMapper.class);
Regexrename record = new Regexrename();
record.setZipCode("99999");
mapper.insertSelective(record);
Integer key = 1;
assertEquals(key, record.getId());
Regexrename returnedRecord = mapper.selectByPrimaryKey(key);
assertNull(returnedRecord.getAddress());
assertEquals(record.getId(), returnedRecord.getId());
assertNull(record.getName(), returnedRecord.getName());
assertEquals(record.getZipCode(), returnedRecord.getZipCode());
} finally {
sqlSession.close();
}
}
@Test
public void testAnotherAwfulTableInsert() {
SqlSession sqlSession = sqlSessionFactory.openSession();
try {
Anotherawfultable record = new Anotherawfultable();
record.setId(5);
record.setSelect("select");
record.setInsert("insert");
sqlSession.insert("mbg.test.mb3.generated.miscellaneous.xml.AnotherawfultableMapper.insert", record);
Anotherawfultable key = new Anotherawfultable();
key.setId(5);
Anotherawfultable returnedRecord = (Anotherawfultable)
sqlSession.selectOne("mbg.test.mb3.generated.miscellaneous.xml.AnotherawfultableMapper.selectByPrimaryKey",
key);
assertEquals(record.getId(), returnedRecord.getId());
assertEquals(record.getSelect(), returnedRecord.getSelect());
assertEquals(record.getInsert(), returnedRecord.getInsert());
assertEquals(record.getUpdate(), returnedRecord.getUpdate());
assertEquals(record.getDelete(), returnedRecord.getDelete());
} finally {
sqlSession.close();
}
}
@Test
public void testMyObjectSelectByExampleLikeInsensitive() {
SqlSession sqlSession = sqlSessionFactory.openSession();
try {
MyMapper mapper = sqlSession.getMapper(MyMapper.class);
MyObject record = new MyObject();
FirstName fn = new FirstName();
fn.setValue("Fred");
record.setFirstname(fn);
record.setLastname("Flintstone");
record.setId1(1);
record.setId2(1);
mapper.insert(record);
record = new MyObject();
fn = new FirstName();
fn.setValue("Wilma");
record.setFirstname(fn);
record.setLastname("Flintstone");
record.setId1(1);
record.setId2(2);
mapper.insert(record);
record = new MyObject();
fn = new FirstName();
fn.setValue("Pebbles");
record.setFirstname(fn);
record.setLastname("Flintstone");
record.setId1(1);
record.setId2(3);
mapper.insert(record);
record = new MyObject();
fn = new FirstName();
fn.setValue("Barney");
record.setFirstname(fn);
record.setLastname("Rubble");
record.setId1(2);
record.setId2(1);
mapper.insert(record);
record = new MyObject();
fn = new FirstName();
fn.setValue("Betty");
record.setFirstname(fn);
record.setLastname("Rubble");
record.setId1(2);
record.setId2(2);
mapper.insert(record);
record = new MyObject();
fn = new FirstName();
fn.setValue("Bamm Bamm");
record.setFirstname(fn);
record.setLastname("Rubble");
record.setId1(2);
record.setId2(3);
mapper.insert(record);
MyObjectCriteria example = new MyObjectCriteria();
example.createCriteria().andLastnameLike("RU%");
example.setOrderByClause("ID1, ID2");
List<MyObject> answer = mapper.selectByExample(example);
assertEquals(0, answer.size());
example.clear();
example.createCriteria().andLastnameLikeInsensitive("RU%");
answer = mapper.selectByExample(example);
assertEquals(3, answer.size());
MyObject returnedRecord = answer.get(0);
assertEquals(2, returnedRecord.getId1().intValue());
assertEquals(1, returnedRecord.getId2().intValue());
returnedRecord = answer.get(1);
assertEquals(2, returnedRecord.getId1().intValue());
assertEquals(2, returnedRecord.getId2().intValue());
returnedRecord = answer.get(2);
assertEquals(2, returnedRecord.getId1().intValue());
assertEquals(3, returnedRecord.getId2().intValue());
} finally {
sqlSession.close();
}
}
@Test
public void testEnum() {
SqlSession sqlSession = sqlSessionFactory.openSession();
try {
EnumtestMapper mapper = sqlSession.getMapper(EnumtestMapper.class);
Enumtest enumTest = new Enumtest();
enumTest.setId(1);
enumTest.setName(TestEnum.FRED);
int rows = mapper.insert(enumTest);
assertEquals(1, rows);
List<Enumtest> returnedRecords = mapper.selectByExample(null);
assertEquals(1, returnedRecords.size());
Enumtest returnedRecord = returnedRecords.get(0);
assertEquals(1, returnedRecord.getId().intValue());
assertEquals(TestEnum.FRED, returnedRecord.getName());
} finally {
sqlSession.close();
}
}
@Test
public void testModelOnly1Nameview() {
if (classExists("mbg.test.mb3.generated.miscellaneous.modelonly1.model.NameviewExample")) {
fail("NameviewExample class should not be generated in model only configuration");
}
if (!classExists("mbg.test.mb3.generated.miscellaneous.modelonly1.model.Nameview")) {
fail("Nameview class should be generated in model only configuration");
}
}
@Test
public void testModelOnly1Anotherawfultable() {
if (classExists("mbg.test.mb3.generated.miscellaneous.modelonly1.model.AnotherawfultableExample")) {
fail("NameviewExample class should not be generated in model only configuration");
}
if (!classExists("mbg.test.mb3.generated.miscellaneous.modelonly1.model.Anotherawfultable")) {
fail("Nameview class should be generated in model only configuration");
}
}
@Test
public void testModelOnly2Pkblobs() {
if (classExists("mbg.test.mb3.generated.miscellaneous.modelonly2.mapper.PkblobsMapper")) {
fail("PkblobsMapper class should not be generated in model only configuration");
}
if (classExists("mbg.test.mb3.generated.miscellaneous.modelonly2.model.PkblobsExample")) {
fail("PkblobsExample class should not be generated in model only configuration");
}
if (!classExists("mbg.test.mb3.generated.miscellaneous.modelonly2.model.Pkblobs")) {
fail("Pkblobs class should be generated in model only configuration");
}
if (!resourceExists("mbg/test/mb3/generated/miscellaneous/modelonly2/xml/PkblobsMapper.xml")) {
fail("PkblobsMapper.xml file should be generated in model only configuration");
}
}
@Test
public void testModelOnly2Pkfields() {
if (classExists("mbg.test.mb3.generated.miscellaneous.modelonly2.mapper.PkfieldsMapper")) {
fail("PkfieldsMapper class should not be generated in model only configuration");
}
if (classExists("mbg.test.mb3.generated.miscellaneous.modelonly2.model.PkfieldsExample")) {
fail("PkfieldsExample class should not be generated in model only configuration");
}
if (!classExists("mbg.test.mb3.generated.miscellaneous.modelonly2.model.Pkfields")) {
fail("Pkfields class should be generated in model only configuration");
}
if (!classExists("mbg.test.mb3.generated.miscellaneous.modelonly2.model.PkfieldsKey")) {
fail("PkfieldsKey class should be generated in model only configuration");
}
if (!resourceExists("mbg/test/mb3/generated/miscellaneous/modelonly2/xml/PkfieldsMapper.xml")) {
fail("PkfieldsMapper.xml file should be generated in model only configuration");
}
}
@Test
public void testModelOnly2Fieldsonly() {
if (!classExists("mbg.test.mb3.generated.miscellaneous.modelonly2.mapper.FieldsonlyMapper")) {
fail("FieldsonlyMapper class should be generated in model only configuration");
}
if (!classExists("mbg.test.mb3.generated.miscellaneous.modelonly2.model.FieldsonlyExample")) {
fail("FieldsonlyExample class should be generated in model only configuration");
}
if (!classExists("mbg.test.mb3.generated.miscellaneous.modelonly2.model.Fieldsonly")) {
fail("Fieldsonly class should be generated in model only configuration");
}
if (!resourceExists("mbg/test/mb3/generated/miscellaneous/modelonly2/xml/FieldsonlyMapper.xml")) {
fail("FieldsonlyMapper.xml file should be generated in model only configuration");
}
}
private boolean classExists(String className) {
try {
Class.forName(className);
return true;
} catch (ClassNotFoundException e) {
return false;
}
}
private boolean resourceExists(String resourceName) {
URL url = getClass().getClassLoader().getResource(resourceName);
return url != null;
}
}