package org.hsweb.web.starter;
import org.hsweb.ezorm.rdb.RDBDatabase;
import org.hsweb.ezorm.rdb.executor.AbstractJdbcSqlExecutor;
import org.hsweb.ezorm.rdb.executor.SqlExecutor;
import org.hsweb.ezorm.rdb.meta.RDBDatabaseMetaData;
import org.hsweb.ezorm.rdb.render.dialect.H2RDBDatabaseMetaData;
import org.hsweb.ezorm.rdb.render.dialect.MysqlRDBDatabaseMetaData;
import org.hsweb.ezorm.rdb.simple.SimpleDatabase;
import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
/**
* @author zhouhao
* @TODO
*/
public class TestInstall {
SqlExecutor sqlExecutor;
RDBDatabase database;
Connection connection;
@Before
public void setup() throws Exception {
// Class.forName("org.h2.Driver");
// Connection connection = DriverManager.getConnection("jdbc:h2:file:./target/data/h2db;", "sa", "");
Class.forName("org.h2.Driver");
connection = DriverManager.getConnection("jdbc:h2:file:./target/data/h2db;", "sa", "");
// Class.forName("com.mysql.jdbc.Driver");
// connection = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test_db?useUnicode=true&characterEncoding=utf-8&useSSL=false", "root", "19920622");
sqlExecutor = new AbstractJdbcSqlExecutor() {
@Override
public Connection getConnection() {
return connection;
}
@Override
public void releaseConnection(Connection connection) throws SQLException {
//connection.close();
}
};
RDBDatabaseMetaData databaseMetaData = new H2RDBDatabaseMetaData();
database = new SimpleDatabase(databaseMetaData, sqlExecutor);
}
@Test
public void testInstall() throws Exception {
SystemVersion version = new SystemVersion();
version.setVersion(2, 2, 4, true);
version.setName("hsweb");
version.setComment("测试");
SystemInitialize initialize = new SystemInitialize(version, sqlExecutor, database, "sa", "h2");
initialize.afterPropertiesSet();
Assert.assertEquals(sqlExecutor.tableExists("s_oauth2_client"), true);
}
@After
public void uninstall() throws SQLException {
connection.close();
}
}