@SuppressWarnings("unchecked") private final <T> Encoding<T, Value<T>> resolve(final Key key) { Encoding<T, Value<T>> enc; if ((enc = (Encoding<T, Value<T>>) byKey.get(key)) != null) return enc; else throw new NdbcException("Can't decode value " + key); }
@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 simpleQueryFailure() throws CheckedFutureException { try { ds.query("SELECT * FROM invalid_table").get(timeout); assertTrue(false); } catch (final NdbcException ex) { assertTrue(ex.getMessage().contains("invalid_table")); } }
@SuppressWarnings("unchecked") private final <T> Encoding<T, Value<T>> resolve(final Value<?> value) { Encoding<T, Value<T>> enc; if ((enc = (Encoding<T, Value<T>>) byValueClass.get(value.getClass())) != null) return enc; else throw new NdbcException("Can't encode value: " + value); }
@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")); } }
@SuppressWarnings("unchecked") private final <T> T loadEncoding(final String cls) { try { return (T) Class.forName(cls).newInstance(); } catch (InstantiationException | IllegalAccessException | ClassNotFoundException e) { throw new NdbcException("Can't load encoding " + cls + ". Make sure to provide an empty constructor.", e); } }
@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")); } }
@SuppressWarnings("unchecked") public final <T> void encodeBinary(final Value<T> value, final BufferWriter writer) { Encoding<T, Value<T>> enc; if ((enc = (Encoding<T, Value<T>>) byValueClass.get(value.getClass())) != null) enc.encodeBinary(value, writer); else throw new NdbcException("Can't encode value: " + value); }
@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")); } }
public final Value<?> decode(final int oid, final Format format, final BufferReader reader) { Encoding<?, ?> enc; if ((enc = byOid.get(oid)) != null) return enc.decode(format, reader); else throw new NdbcException("Can't decode value of type " + oid); }
@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")); } }
public final FieldType fieldType(final Value<?> value) { final Encoding<?, ?> encoding = byValueClass.get(value.getClass()); if (encoding == null) throw new NdbcException("Can't encode " + value); return encoding.key().fieldType; }
@Test public void extendedQueryNoParamsFailure() throws CheckedFutureException { final PreparedStatement ps = PreparedStatement.create("SELECT * FROM invalid_table"); try { ds.query(ps).get(timeout); assertTrue(false); } catch (final NdbcException ex) { assertTrue(ex.getMessage().contains("invalid_table")); } }
private static final <T> T getRequiredProperty(final String prefix, final Properties properties, final String name, final Function<String, T> parser) { final String value = getRequiredProperty(prefix, properties, name); try { return parser.apply(value); } catch (final Exception ex) { throw new NdbcException("Can't parse value `" + value + "` for config `" + prefix + "." + name + "`.", ex); } }
@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")); } }
private static final String getRequiredProperty(final String prefix, final Properties properties, final String name) { return getProperty(prefix, properties, name).orElseGet(() -> { throw new NdbcException("Missing config `" + prefix + "." + name + "`."); }); }
@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")); } }
private static final <T> Optional<T> getProperty(final String prefix, final Properties properties, final String name, final Function<String, T> parser) { return getProperty(prefix, properties, name).map(value -> { try { return parser.apply(value); } catch (final Exception ex) { throw new NdbcException( "Can't parse value `" + value + "` for config `" + prefix + "." + name + "`.", ex); } }); }
@Test public void extendedQueryWithParamsFailure() throws CheckedFutureException { final PreparedStatement ps = PreparedStatement.create("SELECT * FROM invalid_table WHERE s = ?").setString("s"); try { ds.query(ps).get(timeout); assertTrue(false); } catch (final NdbcException ex) { assertTrue(ex.getMessage().contains("invalid_table")); } }
static <R> Exchange<R> fail(final String error) { return fail(new NdbcException(error)); }