use of jdk.incubator.sql2.DataSourceFactory in project oracle-db-examples by oracle-samples.
the class MultiOperationTest method multiRowOperation.
/**
* Execute a query returning a single result.
*/
@Test
public void multiRowOperation() {
fail("TODO: Fix this test");
DataSourceFactory factory = DataSourceFactory.newFactory(FACTORY_NAME);
try (DataSource ds = factory.builder().url(URL).username(USER).password(PASSWORD).build();
Session session = ds.getSession(t -> fail("ERROR: " + t.getMessage()))) {
assertNotNull(session);
MultiOperation multiOp = session.multiOperation("select * from forum_user").onError(t -> {
fail(t.toString());
});
RowOperation rowOp = multiOp.<Integer>rowOperation();
multiOp.submit();
rowOp.collect(Collector.<Result.RowColumn, int[], Integer>of(() -> new int[1], (int[] a, Result.RowColumn r) -> {
a[0] = a[0] + r.at("sal").get(Integer.class);
}, (l, r) -> l, a -> (Integer) a[0])).onError(t -> {
fail(t.toString());
}).submit().getCompletionStage().thenAccept(n -> {
assertTrue(((long) n > 0));
}).toCompletableFuture().get(TestConfig.getTimeout().toMillis(), TimeUnit.MILLISECONDS);
} catch (Exception e) {
fail(e.getMessage());
e.printStackTrace();
}
}
use of jdk.incubator.sql2.DataSourceFactory in project oracle-db-examples by oracle-samples.
the class MultiOperationTest method multiRowCountOperation.
/**
* Do something that approximates real work. Do a transaction. Uses
* TransactionCompletion, CompletionStage args, and catch Operation.
*/
@Test
public void multiRowCountOperation() throws Exception {
fail("TODO: Fix this test");
DataSourceFactory factory = DataSourceFactory.newFactory(FACTORY_NAME);
try (DataSource ds = factory.builder().url(URL).username(USER).password(PASSWORD).build();
Session session = ds.getSession(t -> fail("ERROR: " + t.getMessage()))) {
assertNotNull(session);
TransactionCompletion trans = session.transactionCompletion();
MultiOperation multiOp = session.multiOperation("update forum_user set city_id = ?" + " where id = ?").set("1", 40, AdbaType.INTEGER).set("2", 7782, AdbaType.INTEGER).onError(t -> {
System.out.println(t.toString());
});
RowCountOperation<Long> cntOp = multiOp.<Long>rowCountOperation();
multiOp.submit();
cntOp.apply(c -> {
long count = c.getCount();
if (count != 1L)
throw new SqlException("updated wrong number of rows", null, null, -1, null, -1);
return count;
}).onError(t -> t.printStackTrace()).submit().getCompletionStage().thenAccept(c -> {
assertTrue((long) c > 0);
});
session.catchErrors();
session.rollback().toCompletableFuture().get(TestConfig.getTimeout().toMillis(), TimeUnit.MILLISECONDS);
}
}
use of jdk.incubator.sql2.DataSourceFactory in project oracle-db-examples by oracle-samples.
the class MultiOperationTest method multiRowCountOperationWithCountHandler.
@Test
public void multiRowCountOperationWithCountHandler() throws Exception {
fail("TODO: Fix this test");
DataSourceFactory factory = DataSourceFactory.newFactory(FACTORY_NAME);
try (DataSource ds = factory.builder().url(URL).username(USER).password(PASSWORD).build();
Session session = ds.getSession(t -> fail("ERROR: " + t.getMessage()))) {
assertNotNull(session);
BiConsumer<Integer, RowCountOperation<Long>> countHandler = (resNum, cntOp) -> {
assertTrue(resNum > 0);
cntOp.apply(c -> {
long count = c.getCount();
if (count != 1L)
fail("updated wrong number of rows");
return count;
}).onError(t -> fail(t.toString())).submit().getCompletionStage().thenAccept(c -> {
assertTrue(c > 0);
});
};
MultiOperation multiOp = session.multiOperation("update forum_user" + " set city_id = ?" + " where id = ?").set("1", 40, AdbaType.INTEGER).set("2", 7782, AdbaType.INTEGER).onError(t -> {
fail(t.toString());
});
multiOp.onCount(countHandler).submit();
session.catchErrors();
session.rollback().toCompletableFuture().get(TestConfig.getTimeout().toMillis(), TimeUnit.MILLISECONDS);
}
}
use of jdk.incubator.sql2.DataSourceFactory in project oracle-db-examples by oracle-samples.
the class DataSourceFactoryTest method testBuilder.
/**
* Assert DataSourceFactory.builder() returns a DataSource.Builder instance.
*/
@Test
public void testBuilder() {
DataSourceFactory factory = DataSourceFactory.newFactory(getDataSourceFactoryName());
DataSource.Builder builder = factory.builder();
assertNotNull(builder);
}
use of jdk.incubator.sql2.DataSourceFactory in project oracle-db-examples by oracle-samples.
the class DataSourceFactoryTest method testNewFactory.
/**
* Assert DataSourceFactory.newFactory(String) returns a DataSourceFactory
* instance if the input is the name of a factory class.
*/
@Test
public void testNewFactory() {
String name = getDataSourceFactoryName();
DataSourceFactory factory = DataSourceFactory.newFactory(name);
assertNotNull(factory);
assertEquals(name, factory.getClass().getName());
}
Aggregations