package org.beanfuse.db.sequence;
import java.util.Iterator;
import java.util.List;
import javax.sql.DataSource;
import org.beanfuse.db.sequence.impl.DefaultSequenceNamePattern;
import org.beanfuse.db.sequence.impl.OracleTableSequenceDao;
import org.beanfuse.db.util.DataSourceUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class OracleTableSequenceDaoTest {
Logger logger = LoggerFactory.getLogger(OracleTableSequenceDaoTest.class);
OracleTableSequenceDao tableSequenceDao;
protected String getDialect() {
return "oracle";
}
@BeforeClass
public void setUp() throws Exception {
DataSource datasource = DataSourceUtil.getDataSource("oracle");
if (null != datasource) {
tableSequenceDao = new OracleTableSequenceDao();
tableSequenceDao.setDataSource(datasource);
tableSequenceDao.setRelation(new DefaultSequenceNamePattern());
}
}
public void testGetSequences() {
if (null != tableSequenceDao) {
List sequences = tableSequenceDao.getAll();
logger.info("find sequence {}", new Integer(sequences.size()));
}
}
public void testGetNoneReferenced() {
if (null != tableSequenceDao) {
List sequences = tableSequenceDao.getNoneReferenced();
logger.info("find none referenced sequence {}", new Integer(sequences.size()));
logger.info("they are {}", sequences);
}
}
public void testGetInconsistent() {
if (null != tableSequenceDao) {
List sequences = tableSequenceDao.getInconsistent();
logger.info("find inconsistent sequence {}", new Integer(sequences.size()));
for (Iterator iter = sequences.iterator(); iter.hasNext();) {
TableSequence seq = (TableSequence) iter.next();
logger.info("{}", seq);
}
}
}
public void testAdjust() {
if (null != tableSequenceDao) {
List sequences = tableSequenceDao.getInconsistent();
logger.info("addjust sequence {}", new Integer(sequences.size()));
for (Iterator iter = sequences.iterator(); iter.hasNext();) {
TableSequence seq = (TableSequence) iter.next();
if (null != seq.getTableName()) {
tableSequenceDao.adjust(seq);
}
}
}
}
public void testDrop() {
if (null != tableSequenceDao) {
List sequences = tableSequenceDao.getNoneReferenced();
logger.info("drop sequence {}", new Integer(sequences.size()));
for (Iterator iter = sequences.iterator(); iter.hasNext();) {
String seq = (String) iter.next();
tableSequenceDao.drop(seq);
}
}
}
}