package com.github.jneat.mybatis; import org.apache.ibatis.mapping.Environment; import org.apache.ibatis.session.Configuration; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; import org.apache.ibatis.transaction.TransactionFactory; import org.apache.ibatis.transaction.jdbc.JdbcTransactionFactory; import org.assertj.core.api.Assertions; import java.io.IOException; import java.io.InputStream; import java.io.StringWriter; import java.sql.Connection; import java.sql.SQLException; import java.sql.Statement; import javax.sql.DataSource; public abstract class JsonHandlersTestApi { protected static String getResourceAsString(String resource) throws IOException { // System.out.println(JsonHandlersTestApi.class.getResource(resource).getFile()); // // Assertions.assertThat(JsonHandlersTestApi.class.getResource(resource).getFile()) // .isEqualTo(""); String query; try (final InputStream is = JsonHandlersTestApi.class.getResourceAsStream(resource)) { // try (final InputStream is = JsonHandlersTestApi.class.getResourceAsStream(resource)) { Assertions.assertThat(is).isNotNull(); StringWriter stringWriter = new StringWriter(); int b; while ((b = is.read()) != -1) { stringWriter.write(b); } query = stringWriter.toString(); } return query; } protected static SqlSessionFactory setUpDb(DataSource ds, String initSql) throws SQLException, IOException { try (final Connection cnx = ds.getConnection(); final Statement st = cnx.createStatement()) { st.execute(getResourceAsString(initSql)); } // Init mybatis TransactionFactory transactionFactory = new JdbcTransactionFactory(); Environment environment = new Environment("jneat", transactionFactory, ds); Configuration configuration = new Configuration(environment); configuration.getTypeHandlerRegistry().register("com.github.jneat.mybatis"); configuration.addMapper(JsonMapper.class); return new SqlSessionFactoryBuilder().build(configuration); } }