package com.w11k.lsql.tests;
import com.w11k.lsql.LSql;
import com.w11k.lsql.dialects.H2Dialect;
import com.w11k.lsql.exceptions.DatabaseAccessException;
import com.w11k.lsql.jdbc.ConnectionUtils;
import org.testng.annotations.Test;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.concurrent.Callable;
import static org.testng.Assert.assertNotNull;
public class LSqlTest extends AbstractLSqlTest {
@Test
public void getConnectionFromConnectionFactory() throws SQLException {
assertNotNull(ConnectionUtils.getConnection(lSql));
}
@Test(expectedExceptions = DatabaseAccessException.class)
public void getConnectionThrowsDatabaseAccessException() throws SQLException {
LSql l = new LSql(new H2Dialect(), new Callable<Connection>() {
@Override
public Connection call() throws Exception {
throw new RuntimeException();
}
});
ConnectionUtils.getConnection(l);
}
@Test
public void execute() {
createTable("CREATE TABLE table1 (name TEXT, age INT)");
lSql.executeRawSql("INSERT INTO table1 (name, age) VALUES ('cus1', 20)");
}
@Test(expectedExceptions = RuntimeException.class)
public void executeShouldThrowRuntimeExceptionOnWrongStatement() {
lSql.executeRawSql("CREATE TABLE table1 (name TEXT, age INT)");
lSql.executeRawSql("INSERT INTO tableX (name, age) VALUES ('cus1', 20)");
}
}