use of org.h2.Driver in project sonarqube by SonarSource.
the class DdlUtilsTest method shouldCreateSchema_without_schema_migrations.
@Test
public void shouldCreateSchema_without_schema_migrations() throws SQLException {
DriverManager.registerDriver(new Driver());
try (Connection connection = DriverManager.getConnection("jdbc:h2:mem:sonar_test2")) {
try (Statement statement = connection.createStatement()) {
statement.execute("create table schema_migrations (version varchar(255) not null)");
}
DdlUtils.createSchema(connection, "h2", false);
verifySchemaMigrations(connection);
}
}
use of org.h2.Driver in project sonarqube by SonarSource.
the class DdlUtilsTest method shouldCreateSchema_with_schema_migrations.
@Test
public void shouldCreateSchema_with_schema_migrations() throws SQLException {
DriverManager.registerDriver(new Driver());
try (Connection connection = DriverManager.getConnection("jdbc:h2:mem:sonar_test")) {
DdlUtils.createSchema(connection, "h2", true);
int tableCount = countTables(connection);
assertThat(tableCount).isGreaterThan(30);
verifySchemaMigrations(connection);
}
}
use of org.h2.Driver in project neo4j by neo4j.
the class ProcedureTest method calls_simplistic_procedure.
@Test
public void calls_simplistic_procedure() {
try (Driver driver = GraphDatabase.driver(graphDb.boltURI(), configuration());
Session session = driver.session()) {
StatementResult result = session.run("CALL " + procedureNamespace + ".theAnswer()");
assertThat(result.single().get("value").asLong()).isEqualTo(42L);
}
}
use of org.h2.Driver in project neo4j by neo4j.
the class BoltCausalClusteringIT method sessionShouldExpireOnLeaderSwitch.
@Test
public void sessionShouldExpireOnLeaderSwitch() throws Exception {
// given
cluster = clusterRule.withNumberOfReadReplicas(0).startCluster();
CoreClusterMember leader = cluster.awaitLeader();
Driver driver = GraphDatabase.driver(leader.routingURI(), AuthTokens.basic("neo4j", "neo4j"));
try (Session session = driver.session()) {
session.run("CREATE (n:Person {name: 'Jim'})").consume();
// when
switchLeader(leader);
session.run("CREATE (n:Person {name: 'Mark'})").consume();
fail("Should have thrown exception");
} catch (SessionExpiredException sep) {
// then
assertEquals(String.format("Server at %s no longer accepts writes", leader.boltAdvertisedAddress()), sep.getMessage());
} finally {
driver.close();
}
}
use of org.h2.Driver in project neo4j by neo4j.
the class BoltCausalClusteringIT method shouldSendRequestsToNewlyAddedReadReplicas.
@Test
public void shouldSendRequestsToNewlyAddedReadReplicas() throws Throwable {
// given
cluster = clusterRule.withNumberOfReadReplicas(1).withSharedCoreParams(stringMap(CausalClusteringSettings.cluster_routing_ttl.name(), "1s")).startCluster();
CoreClusterMember leader = cluster.awaitLeader();
Driver driver = GraphDatabase.driver(leader.routingURI(), AuthTokens.basic("neo4j", "neo4j"));
String bookmark = inExpirableSession(driver, (d) -> d.session(AccessMode.WRITE), (session) -> {
try (Transaction tx = session.beginTransaction()) {
tx.run("CREATE (p:Person {name: {name} })", Values.parameters("name", "Jim"));
tx.success();
}
return session.lastBookmark();
});
// when
Set<String> readReplicas = new HashSet<>();
for (ReadReplica readReplica : cluster.readReplicas()) {
readReplicas.add(readReplica.boltAdvertisedAddress());
}
for (int i = 10; i <= 13; i++) {
ReadReplica newReadReplica = cluster.addReadReplicaWithId(i);
readReplicas.add(newReadReplica.boltAdvertisedAddress());
newReadReplica.start();
}
assertEventually("Failed to send requests to all servers", () -> {
for (// don't care about cores
int i = 0; // don't care about cores
i < cluster.readReplicas().size(); // don't care about cores
i++) {
try (Session session = driver.session(AccessMode.READ)) {
BoltServerAddress boltServerAddress = ((RoutingNetworkSession) session).address();
executeReadQuery(bookmark, session);
readReplicas.remove(boltServerAddress.toString());
} catch (Throwable throwable) {
return false;
}
}
// have sent something to all replicas
return readReplicas.size() == 0;
}, is(true), 30, SECONDS);
}
Aggregations