package org.deephacks.westty.datasource;
import org.deephacks.westty.test.WesttyJUnit4Runner;
import org.junit.Test;
import org.junit.runner.RunWith;
import javax.inject.Inject;
import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import static org.hamcrest.core.Is.is;
import static org.junit.Assert.*;
@RunWith(WesttyJUnit4Runner.class)
public class DataSourceTest {
@Inject
private DataSource dataSource;
/**
* Test that DataSource can be injected, statements can be
* executed and transactions can be committed.
*/
@Test
public void test_datasource_connection() throws Exception {
try (Connection c = dataSource.getConnection()) {
PreparedStatement prep = c.prepareStatement("CREATE TABLE TEST (ID varchar(255) PRIMARY KEY)");
prep.execute();
c.commit();
}
try (Connection c = dataSource.getConnection()) {
String id = "id";
Statement stmt = c.createStatement();
stmt.executeUpdate("INSERT INTO TEST VALUES ('" + id + "')");
ResultSet result = stmt.executeQuery("SELECT * FROM TEST");
result.next();
assertThat(result.getString("ID"), is(id));
c.commit();
}
}
}