package org.apache.smscserver.test.messageManager;
import java.io.File;
import java.io.FileReader;
import java.sql.Connection;
import java.sql.Statement;
import junit.framework.TestCase;
import org.apache.smscserver.message.DBMessageManagerFactory;
import org.apache.smscserver.message.impl.ShortMessageImpl;
import org.apache.smscserver.smsclet.MessageManager;
import org.apache.smscserver.test.TestUtil;
import org.apache.smscserver.util.DBUtils;
import org.apache.smscserver.util.IoUtils;
import org.h2.jdbcx.JdbcDataSource;
public abstract class MessageManagerTemplate extends TestCase {
private static final String SOURCE_ADDR = "source_addr";
private static final String DEST_ADDR = "dest_addr";
private static final String MESSAGE = "Hello World!";
private JdbcDataSource datasource;
private Connection connection;
protected MessageManager messageManager;
public MessageManagerTemplate() {
super();
}
public MessageManagerTemplate(String name) {
super(name);
}
protected ShortMessageImpl createMessage(String serviceType) {
ShortMessageImpl sm = new ShortMessageImpl();
sm.setSourceAddress(MessageManagerTemplate.SOURCE_ADDR);
sm.setDestinationAddress(MessageManagerTemplate.DEST_ADDR);
sm.setMessageLength(MessageManagerTemplate.MESSAGE.length());
sm.setShortMessage(MessageManagerTemplate.MESSAGE);
sm.setServiceType(serviceType);
return sm;
}
/**
* {@inheritDoc}
*
*/
@Override
protected void setUp() throws Exception {
this.messageManager = new DBMessageManagerFactory("h2", "jdbc:h2:mem:smscd").createMessageManager();
this.datasource = new JdbcDataSource();
this.datasource.setURL("jdbc:h2:mem:smscd");
this.datasource.setUser("sa");
this.datasource.setPassword("");
this.connection = this.datasource.getConnection();
File file = new File(TestUtil.getBaseDir(), "src/test/resources/messages-createtable-h2.sql");
String ddl = IoUtils.readFully(new FileReader(file));
Statement stm = this.connection.createStatement();
stm.execute(ddl);
super.setUp();
}
/**
* {@inheritDoc}
*
*/
@Override
protected void tearDown() throws Exception {
DBUtils.closeQuitely(this.connection);
this.messageManager = null;
this.datasource = null;
this.connection = null;
}
}