@Override public void inTransaction(final InTransactionNoResult operation) { inSession(new InSessionNoResult() { @Override public void run(@NotNull final DBSession session) { session.inTransaction(operation); } }); }
@Override public <R> R inTransaction(final InTransaction<R> operation) { return inSession(new InSession<R>() { @Override public R run(@NotNull final DBSession session) { return session.inTransaction(operation); } }); }
@Test public void get_intermediate_service() { myFacade.inSession(new InSessionNoResult() { @Override public void run(@NotNull final DBSession session) { final IntegralIntermediateSession intermediateSession = session.getSpecificService( IntegralIntermediateSession.class, ImplementationAccessibleService.Names.INTERMEDIATE_SERVICE); assertThat(intermediateSession).isInstanceOf(JdbcIntermediateSession.class); } }); }
@Test public void get_jdbc_connection() { myFacade.inSession(new InSessionNoResult() { @Override public void run(@NotNull final DBSession session) { java.sql.Connection connection = session.getSpecificService(java.sql.Connection.class, ImplementationAccessibleService.Names.JDBC_CONNECTION); assertThat(connection).isNotNull() .isInstanceOf(java.sql.Connection.class); } }); }
@Test public void transaction_should_close_seances() { myFacade.inSession(new InSessionNoResult() { @Override public void run(@NotNull final DBSession session) { session.command("create table just_table_333 (x integer)").run(); session.inTransaction(new InTransactionNoResult() { @Override public void run(@NotNull final DBTransaction tran) { tran.command("insert into just_table_333 values (111), (222), (333)").run(); tran.query("select * from just_table_333", singleOf(Integer.class)) .packBy(1) .run(); } }); JdbcIntermediateSession intermediateSession = session.getSpecificService(JdbcIntermediateSession.class, ImplementationAccessibleService.Names.INTERMEDIATE_SERVICE); assert intermediateSession != null; assertThat(intermediateSession.countOpenedSeances()).isZero(); assertThat(intermediateSession.countOpenedCursors()).isZero(); } }); }
@Test public void basic_2() { final SqlScript script = new SqlScript("create table TT2(X1 integer)", "drop table TT2"); myFacade.inSession(new InSessionNoResult() { @Override public void run(@NotNull final DBSession session) { session.script(script).run(); } }); }
@Test public void basic_4() { final SqlScript script = new SqlScript("create table TT4(X1 integer)", "insert into TT4 values (44)", "select * from TT4", "drop table TT4"); myFacade.inSession(new InSessionNoResult() { @Override public void run(@NotNull final DBSession session) { session.script(script).run(); } }); }
@Test public void basic_scenario() { myFacade.inSession(new InSessionNoResult() { @Override public void run(@NotNull final DBSession session) { session.command("create table tab1 (x integer)").run(); session.inTransaction(new InTransactionNoResult() { @Override public void run(@NotNull final DBTransaction tran) { tran.command("insert into tab1 values(44)").run(); } }); final SqlQuery<Integer> query = new SqlQuery<Integer>("select * from tab1", singleOf(Integer.class)); int x = session.inTransaction(new InTransaction<Integer>() { @Override public Integer run(@NotNull final DBTransaction tran) { return tran.query(query).run(); } }); session.command("drop table tab1").run(); assertThat(x).isEqualTo(44); } }); checkAllAreClosed(); }
@Test public void iterative_scenario() { myFacade.inSession(new InSessionNoResult() { @Override public void run(@NotNull final DBSession session) { session.command("create table Turbo2000 (x smallint)").run(); DBCommandRunner cr = session.command("insert into Turbo2000 values (?)"); for (short i = 1; i <= 2000; i++) cr.withParams(i).run(); DBQueryRunner<Short[]> qr = session.query("select * from Turbo2000 order by 1", columnOf(Short.class)) .packBy(100); Short[] pack = qr.run(); assertThat(pack).isNotNull() .startsWith((short) 1) .endsWith((short) 100); int packs = 0; while (pack != null) { packs++; pack = qr.nextPack(); } assertThat(packs).isEqualTo(20); // 2000 / 100 = 20 } }); checkAllAreClosed(); }
@Test public void empty_cursor() { final SqlQuery<List<Tetra>> query = new SqlQuery<List<Tetra>>( "select 11,22,33,44 from information_schema.schemata where 1 is null", listOf(structOf(Tetra.class))); myFacade.inSession(new InSessionNoResult() { @Override public void run(@NotNull final DBSession session) { List<Tetra> result = session.query(query).run(); assertThat(result).isEmpty(); } }); }
@Test public void basic_4_with_query() { final SqlScript script = new SqlScript(new SqlCommand("create table TT4a(X1 integer)"), new SqlCommand("insert into TT4a values (44)"), new SqlQuery<Boolean>("select * from TT4a", Layouts.existence()), new SqlCommand("drop table TT4a")); myFacade.inSession(new InSessionNoResult() { @Override public void run(@NotNull final DBSession session) { session.script(script).run(); } }); }