private final <T> InterruptHandler handler(final Promise<T> p) { return ex -> { final DataSource<PreparedStatement, Row> ds = dataSourceSupplier.get(); ds.execute("KILL QUERY " + connectionId) .onFailure(e -> log.warn("Can't cancel request. Reason: " + e)) .ensure(() -> ds.close()); }; }
@Test public void extendedExecuteDeleteNoParam() throws CheckedFutureException { final PreparedStatement ps = PreparedStatement.create("DELETE FROM " + table + " WHERE s = 's'"); assertEquals(ds.execute(ps).get(timeout).longValue(), 1L); final Iterator<Row> rows = ds.query("SELECT * FROM " + table).get(timeout).iterator(); assertFalse(rows.hasNext()); }
@Test public void simpleExecuteInsertFailure() throws CheckedFutureException { try { ds.execute("INSERT INTO invalid_table VALUES ('u')").get(timeout); assertTrue(false); } catch (final NdbcException ex) { assertTrue(ex.getMessage().contains("invalid_table")); } }
@Test public void simpleExecuteUpdateFailure() throws CheckedFutureException { try { ds.execute("UPDATE invalid_table SET s = 'u'").get(timeout); assertTrue(false); } catch (final NdbcException ex) { assertTrue(ex.getMessage().contains("invalid_table")); } }
@Test public void simpleExecuteDeleteFailure() throws CheckedFutureException { try { ds.execute("DELETE FROM invalid_table").get(timeout); assertTrue(false); } catch (final NdbcException ex) { assertTrue(ex.getMessage().contains("invalid_table")); } }
@Test public void simpleExecuteUpdate() throws CheckedFutureException { ds.execute("UPDATE " + table + " SET s = 'u'").get(timeout); final Iterator<Row> rows = ds.query("SELECT * FROM " + table).get(timeout).iterator(); assertEquals(rows.next().column(0).getString(), "u"); assertFalse(rows.hasNext()); }
@Test public void extendedExecuteDeleteWithParam() throws CheckedFutureException { final PreparedStatement ps = PreparedStatement.create("DELETE FROM " + table + " WHERE s = ?").setString("s"); assertEquals(ds.execute(ps).get(timeout).longValue(), 1L); final Iterator<Row> rows = ds.query("SELECT * FROM " + table).get(timeout).iterator(); assertFalse(rows.hasNext()); }
@Test public void extendedExecuteUpdateNoParam() throws CheckedFutureException { final PreparedStatement ps = PreparedStatement.create("UPDATE " + table + " SET s = 'u'"); assertEquals(ds.execute(ps).get(timeout).longValue(), 1L); final Iterator<Row> rows = ds.query("SELECT * FROM " + table).get(timeout).iterator(); assertEquals(rows.next().column(0).getString(), "u"); assertFalse(rows.hasNext()); }
@Test public void simpleExecuteInsert() throws CheckedFutureException { ds.execute("INSERT INTO " + table + " VALUES ('u')").get(timeout); final Iterator<Row> rows = ds.query("SELECT * FROM " + table).get(timeout).iterator(); assertEquals(rows.next().column(0).getString(), "s"); assertEquals(rows.next().column(0).getString(), "u"); assertFalse(rows.hasNext()); }
@Test public void extendedExecuteUpdateNoParamFailure() throws CheckedFutureException { final PreparedStatement ps = PreparedStatement.create("UPDATE invalid_table SET s = 'u'"); try { ds.execute(ps).get(timeout); assertTrue(false); } catch (final NdbcException ex) { assertTrue(ex.getMessage().contains("invalid_table")); } }
@Test public void extendedExecuteDeleteNoParamFailure() throws CheckedFutureException { final PreparedStatement ps = PreparedStatement.create("DELETE FROM invalid_table WHERE s = 's'"); try { ds.execute(ps).get(timeout); assertTrue(false); } catch (final NdbcException ex) { assertTrue(ex.getMessage().contains("invalid_table")); } }
@Test public void extendedExecuteUpdateWithParam() throws CheckedFutureException { final PreparedStatement ps = PreparedStatement.create("UPDATE " + table + " SET s = ?").setString("u"); assertEquals(ds.execute(ps).get(timeout).longValue(), 1L); final Iterator<Row> rows = ds.query("SELECT * FROM " + table).get(timeout).iterator(); assertEquals(rows.next().column(0).getString(), "u"); assertFalse(rows.hasNext()); }
@Test public void extendedExecuteInsertNoParamFailure() throws CheckedFutureException { final PreparedStatement ps = PreparedStatement.create("INSERT INTO invalid_table VALUES ('u')"); try { ds.execute(ps).get(timeout); assertTrue(false); } catch (final NdbcException ex) { assertTrue(ex.getMessage().contains("invalid_table")); } }
@Test public void extendedExecuteInsertNoParam() throws CheckedFutureException { final PreparedStatement ps = PreparedStatement.create("INSERT INTO " + table + " VALUES ('u')"); assertEquals(ds.execute(ps).get(timeout).longValue(), 1L); final Iterator<Row> rows = ds.query("SELECT * FROM " + table).get(timeout).iterator(); assertEquals(rows.next().column(0).getString(), "s"); assertEquals(rows.next().column(0).getString(), "u"); assertFalse(rows.hasNext()); }
@Test public void transactionDBFailure() throws CheckedFutureException { final PreparedStatement ps = PreparedStatement.create("DELETE FROM INVALID_TABLE WHERE s = ?").setString("s"); ds.transactional(() -> ds.execute(ps)).join(timeout); final Iterator<Row> rows = ds.query("SELECT * FROM " + table).get(timeout).iterator(); assertTrue(rows.hasNext()); }
@Test public void extendedExecuteInsertWithParam() throws CheckedFutureException { final PreparedStatement ps = PreparedStatement.create("INSERT INTO " + table + " VALUES (?)").setString("u"); assertEquals(ds.execute(ps).get(timeout).longValue(), 1L); final Iterator<Row> rows = ds.query("SELECT * FROM " + table).get(timeout).iterator(); assertEquals(rows.next().column(0).getString(), "s"); assertEquals(rows.next().column(0).getString(), "u"); assertFalse(rows.hasNext()); }
@Test public void extendedExecuteDeleteWithParamFailure() throws CheckedFutureException { final PreparedStatement ps = PreparedStatement.create("DELETE FROM invalid_table WHERE s = ?").setString("s"); try { ds.execute(ps).get(timeout); assertTrue(false); } catch (final NdbcException ex) { assertTrue(ex.getMessage().contains("invalid_table")); } }
@Test public void extendedExecuteInsertWithParamFailure() throws CheckedFutureException { final PreparedStatement ps = PreparedStatement.create("INSERT INTO invalid_table VALUES (?)").setString("u"); try { ds.execute(ps).get(timeout); assertTrue(false); } catch (final NdbcException ex) { assertTrue(ex.getMessage().contains("invalid_table")); } }
@Test public void extendedExecuteUpdteWithParamFailure() throws CheckedFutureException { final PreparedStatement ps = PreparedStatement.create("UPDATE invalid_table SET s = ?").setString("u"); try { ds.execute(ps).get(timeout); assertTrue(false); } catch (final NdbcException ex) { assertTrue(ex.getMessage().contains("invalid_table")); } }