diff --git a/.github/badges/branches.svg b/.github/badges/branches.svg
index 48caf6a..b465eec 100644
--- a/.github/badges/branches.svg
+++ b/.github/badges/branches.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/.github/badges/coverage-summary.json b/.github/badges/coverage-summary.json
index 20b6685..e87a0ff 100644
--- a/.github/badges/coverage-summary.json
+++ b/.github/badges/coverage-summary.json
@@ -1 +1 @@
-{"branches": 90.08620689655173, "coverage": 92.81062776764783}
\ No newline at end of file
+{"branches": 89.49579831932773, "coverage": 92.6923076923077}
\ No newline at end of file
diff --git a/.github/badges/jacoco.svg b/.github/badges/jacoco.svg
index 7fc4eb7..92dfa69 100644
--- a/.github/badges/jacoco.svg
+++ b/.github/badges/jacoco.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/client/src/main/java/com/tigrisdata/db/client/StandardTigrisDBAsyncClient.java b/client/src/main/java/com/tigrisdata/db/client/StandardTigrisDBAsyncClient.java
index 70ba679..b4b00af 100644
--- a/client/src/main/java/com/tigrisdata/db/client/StandardTigrisDBAsyncClient.java
+++ b/client/src/main/java/com/tigrisdata/db/client/StandardTigrisDBAsyncClient.java
@@ -18,6 +18,7 @@
import com.tigrisdata.db.api.v1.grpc.Api;
import com.tigrisdata.db.api.v1.grpc.TigrisDBGrpc;
import static com.tigrisdata.db.client.ErrorMessages.CREATE_DB_FAILED;
+import static com.tigrisdata.db.client.ErrorMessages.DB_ALREADY_EXISTS;
import static com.tigrisdata.db.client.ErrorMessages.DROP_DB_FAILED;
import static com.tigrisdata.db.client.ErrorMessages.LIST_DBS_FAILED;
import static com.tigrisdata.db.client.TypeConverter.toCreateDatabaseRequest;
@@ -25,14 +26,19 @@
import static com.tigrisdata.db.client.TypeConverter.toListDatabasesRequest;
import com.tigrisdata.db.client.auth.AuthorizationToken;
import com.tigrisdata.db.client.config.TigrisDBConfiguration;
+import com.tigrisdata.db.client.error.TigrisDBException;
import io.grpc.ManagedChannel;
import io.grpc.ManagedChannelBuilder;
+import io.grpc.Status;
+import io.grpc.StatusRuntimeException;
import java.util.ArrayList;
import java.util.List;
+import java.util.Optional;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.Executor;
import java.util.concurrent.Executors;
+import java.util.function.BiConsumer;
/** Async client for TigrisDB */
public class StandardTigrisDBAsyncClient extends AbstractTigrisDBClient
@@ -119,22 +125,22 @@ public CompletableFuture> listDatabases(
}
@Override
- public CompletableFuture createDatabase(
- String databaseName, DatabaseOptions databaseOptions) {
+ public CompletableFuture createDatabaseIfNotExists(String databaseName) {
ListenableFuture createDatabaseResponse =
- stub.createDatabase(toCreateDatabaseRequest(databaseName, databaseOptions));
+ stub.createDatabase(
+ toCreateDatabaseRequest(databaseName, DatabaseOptions.DEFAULT_INSTANCE));
return Utilities.transformFuture(
createDatabaseResponse,
apiResponse -> new TigrisDBResponse(apiResponse.getMsg()),
executor,
- CREATE_DB_FAILED);
+ CREATE_DB_FAILED,
+ Optional.of(CreateDatabaseExceptionHandler.DEFAULT_INSTANCE));
}
@Override
- public CompletableFuture dropDatabase(
- String databaseName, DatabaseOptions databaseOptions) {
+ public CompletableFuture dropDatabase(String databaseName) {
ListenableFuture dropDatabaseResponse =
- stub.dropDatabase(toDropDatabaseRequest(databaseName, databaseOptions));
+ stub.dropDatabase(toDropDatabaseRequest(databaseName, DatabaseOptions.DEFAULT_INSTANCE));
return Utilities.transformFuture(
dropDatabaseResponse,
apiResponse -> new TigrisDBResponse(apiResponse.getMsg()),
@@ -151,4 +157,28 @@ public void close() {
ManagedChannel getChannel() {
return channel;
}
+
+ /**
+ * This is the exception handler for CreateDatabase operation, here it will swallow the exception
+ * if the server says database already exists, it will pass the exception further otherwise.
+ */
+ static class CreateDatabaseExceptionHandler
+ implements BiConsumer, Throwable> {
+ static final CreateDatabaseExceptionHandler DEFAULT_INSTANCE =
+ new CreateDatabaseExceptionHandler();
+
+ @Override
+ public void accept(CompletableFuture completableFuture, Throwable throwable) {
+ if (throwable instanceof StatusRuntimeException) {
+ if (((StatusRuntimeException) throwable).getStatus().getCode()
+ == Status.ALREADY_EXISTS.getCode()) {
+ // swallow the already exists exception
+ completableFuture.complete(new TigrisDBResponse(DB_ALREADY_EXISTS));
+ return;
+ }
+ }
+ // pass on the error otherwise
+ completableFuture.completeExceptionally(new TigrisDBException(CREATE_DB_FAILED, throwable));
+ }
+ }
}
diff --git a/client/src/main/java/com/tigrisdata/db/client/StandardTigrisDBClient.java b/client/src/main/java/com/tigrisdata/db/client/StandardTigrisDBClient.java
index 1c2302e..94788bb 100644
--- a/client/src/main/java/com/tigrisdata/db/client/StandardTigrisDBClient.java
+++ b/client/src/main/java/com/tigrisdata/db/client/StandardTigrisDBClient.java
@@ -87,12 +87,12 @@ public List listDatabases(DatabaseOptions listDatabaseOptions)
}
@Override
- public TigrisDBResponse createDatabaseIfNotExists(
- String databaseName, DatabaseOptions databaseOptions) throws TigrisDBException {
+ public TigrisDBResponse createDatabaseIfNotExists(String databaseName) throws TigrisDBException {
Api.CreateDatabaseResponse createDatabaseResponse = null;
try {
createDatabaseResponse =
- stub.createDatabase(toCreateDatabaseRequest(databaseName, databaseOptions));
+ stub.createDatabase(
+ toCreateDatabaseRequest(databaseName, DatabaseOptions.DEFAULT_INSTANCE));
return new TigrisDBResponse(createDatabaseResponse.getMsg());
} catch (StatusRuntimeException statusRuntimeException) {
// ignore the error if the database is already exists
@@ -104,11 +104,10 @@ public TigrisDBResponse createDatabaseIfNotExists(
}
@Override
- public TigrisDBResponse dropDatabase(String databaseName, DatabaseOptions databaseOptions)
- throws TigrisDBException {
+ public TigrisDBResponse dropDatabase(String databaseName) throws TigrisDBException {
try {
Api.DropDatabaseResponse dropDatabaseResponse =
- stub.dropDatabase(toDropDatabaseRequest(databaseName, databaseOptions));
+ stub.dropDatabase(toDropDatabaseRequest(databaseName, DatabaseOptions.DEFAULT_INSTANCE));
return new TigrisDBResponse(dropDatabaseResponse.getMsg());
} catch (StatusRuntimeException statusRuntimeException) {
throw new TigrisDBException(DROP_DB_FAILED, statusRuntimeException);
diff --git a/client/src/main/java/com/tigrisdata/db/client/StandardTigrisDatabase.java b/client/src/main/java/com/tigrisdata/db/client/StandardTigrisDatabase.java
index 132562a..e53b961 100644
--- a/client/src/main/java/com/tigrisdata/db/client/StandardTigrisDatabase.java
+++ b/client/src/main/java/com/tigrisdata/db/client/StandardTigrisDatabase.java
@@ -66,8 +66,7 @@ public List listCollections() throws TigrisDBException {
}
@Override
- public TigrisDBResponse createCollectionsInTransaction(List collectionsSchemas)
- throws TigrisDBException {
+ public TigrisDBResponse applySchemas(List collectionsSchemas) throws TigrisDBException {
TransactionSession transactionSession = null;
try {
transactionSession = beginTransaction(new TransactionOptions());
@@ -76,7 +75,7 @@ public TigrisDBResponse createCollectionsInTransaction(List collectionsSche
transactionSession.createOrUpdateCollection(schema, CollectionOptions.DEFAULT_INSTANCE);
}
transactionSession.commit();
- return new TigrisDBResponse("Collections creates successfully");
+ return new TigrisDBResponse("Collections created successfully");
} catch (Exception exception) {
if (transactionSession != null) {
transactionSession.rollback();
@@ -86,15 +85,14 @@ public TigrisDBResponse createCollectionsInTransaction(List collectionsSche
}
@Override
- public TigrisDBResponse createCollectionsInTransaction(File schemaDirectory)
- throws TigrisDBException {
+ public TigrisDBResponse applySchemas(File schemaDirectory) throws TigrisDBException {
List schemaURLs = new ArrayList<>();
try {
for (File file :
schemaDirectory.listFiles(file -> file.getName().toLowerCase().endsWith(".json"))) {
schemaURLs.add(file.toURI().toURL());
}
- return createCollectionsInTransaction(schemaURLs);
+ return applySchemas(schemaURLs);
} catch (NullPointerException | MalformedURLException ex) {
throw new TigrisDBException("Failed to process schemaDirectory", ex);
}
diff --git a/client/src/main/java/com/tigrisdata/db/client/TigrisDBAsyncClient.java b/client/src/main/java/com/tigrisdata/db/client/TigrisDBAsyncClient.java
index 12ccc53..f688380 100644
--- a/client/src/main/java/com/tigrisdata/db/client/TigrisDBAsyncClient.java
+++ b/client/src/main/java/com/tigrisdata/db/client/TigrisDBAsyncClient.java
@@ -37,22 +37,18 @@ public interface TigrisDBAsyncClient extends Closeable {
CompletableFuture> listDatabases(DatabaseOptions listDatabaseOptions);
/**
- * Creates the database
+ * Creates the database if not already present
*
* @param databaseName name of the database
- * @param databaseOptions options
* @return a future to the {@link TigrisDBResponse}
*/
- CompletableFuture createDatabase(
- String databaseName, DatabaseOptions databaseOptions);
+ CompletableFuture createDatabaseIfNotExists(String databaseName);
/**
* Drops the database
*
* @param databaseName name of the database
- * @param databaseOptions options
* @return a future to the {@link TigrisDBResponse}
*/
- CompletableFuture dropDatabase(
- String databaseName, DatabaseOptions databaseOptions);
+ CompletableFuture dropDatabase(String databaseName);
}
diff --git a/client/src/main/java/com/tigrisdata/db/client/TigrisDBClient.java b/client/src/main/java/com/tigrisdata/db/client/TigrisDBClient.java
index 010ce97..94f9f31 100644
--- a/client/src/main/java/com/tigrisdata/db/client/TigrisDBClient.java
+++ b/client/src/main/java/com/tigrisdata/db/client/TigrisDBClient.java
@@ -42,21 +42,17 @@ public interface TigrisDBClient extends Closeable {
* Creates the database if the database is not already present
*
* @param databaseName name of the database
- * @param databaseOptions options
* @return an instance of {@link TigrisDBResponse} from server
* @throws TigrisDBException in case of auth error or any other failure.
*/
- TigrisDBResponse createDatabaseIfNotExists(String databaseName, DatabaseOptions databaseOptions)
- throws TigrisDBException;
+ TigrisDBResponse createDatabaseIfNotExists(String databaseName) throws TigrisDBException;
/**
* Drops the database
*
* @param databaseName name of the database
- * @param databaseOptions options
* @return an instance of {@link TigrisDBResponse} from server
* @throws TigrisDBException in case of auth error or any other failure.
*/
- TigrisDBResponse dropDatabase(String databaseName, DatabaseOptions databaseOptions)
- throws TigrisDBException;
+ TigrisDBResponse dropDatabase(String databaseName) throws TigrisDBException;
}
diff --git a/client/src/main/java/com/tigrisdata/db/client/TigrisDatabase.java b/client/src/main/java/com/tigrisdata/db/client/TigrisDatabase.java
index e4c10b8..77616c5 100644
--- a/client/src/main/java/com/tigrisdata/db/client/TigrisDatabase.java
+++ b/client/src/main/java/com/tigrisdata/db/client/TigrisDatabase.java
@@ -30,23 +30,23 @@ public interface TigrisDatabase {
*/
List listCollections() throws TigrisDBException;
/**
- * Creates the collection in a transaction
+ * Creates or updates the collection schemas on the current database/
*
* @param collectionsSchemas list of URL pointing to schema files
* @return response
* @throws TigrisDBException in case of an error.
*/
- TigrisDBResponse createCollectionsInTransaction(List collectionsSchemas)
- throws TigrisDBException;
+ TigrisDBResponse applySchemas(List collectionsSchemas) throws TigrisDBException;
/**
- * Reads schema files from a directory and creates the collection in a transaction
+ * Reads schema files from a directory and Creates or updates the collection schemas on the
+ * current database.
*
* @param schemaDirectory directory containing schema files
* @return response
* @throws TigrisDBException in case of an error.
*/
- TigrisDBResponse createCollectionsInTransaction(File schemaDirectory) throws TigrisDBException;
+ TigrisDBResponse applySchemas(File schemaDirectory) throws TigrisDBException;
/**
* Drops the collection.
*
diff --git a/client/src/main/java/com/tigrisdata/db/client/Utilities.java b/client/src/main/java/com/tigrisdata/db/client/Utilities.java
index b74b78d..e11b1ff 100644
--- a/client/src/main/java/com/tigrisdata/db/client/Utilities.java
+++ b/client/src/main/java/com/tigrisdata/db/client/Utilities.java
@@ -19,16 +19,18 @@
import com.tigrisdata.db.client.error.TigrisDBException;
import java.util.Iterator;
+import java.util.Optional;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.Executor;
+import java.util.function.BiConsumer;
import java.util.function.Function;
final class Utilities {
private Utilities() {}
// TODO update this once server sends the message back
- public static final String INSERT_SUCCESS_RESPONSE = "inserted";
- public static final String DELETE_SUCCESS_RESPONSE = "deleted";
+ static final String INSERT_SUCCESS_RESPONSE = "inserted";
+ static final String DELETE_SUCCESS_RESPONSE = "deleted";
/**
* Converts from {@link Iterator} of Type F to {@link Iterator} of type T
@@ -39,8 +41,7 @@ private Utilities() {}
* @param destination type
* @return an instance of {@link Iterator} of type T
*/
- public static Iterator transformIterator(
- Iterator iterator, Function converter) {
+ static Iterator transformIterator(Iterator iterator, Function converter) {
return new ConvertedIterator<>(iterator, converter);
}
@@ -54,11 +55,30 @@ public static Iterator transformIterator(
* @param to type
* @return an instance of {@link CompletableFuture}
*/
- public static CompletableFuture transformFuture(
+ static CompletableFuture transformFuture(
ListenableFuture listenableFuture,
Function converter,
Executor executor,
String errorMessage) {
+ return transformFuture(listenableFuture, converter, executor, errorMessage, Optional.empty());
+ }
+ /**
+ * Converts {@link ListenableFuture} of type F to {@link CompletableFuture} of type T
+ *
+ * @param listenableFuture source listenable future
+ * @param converter function that converts type F to type T
+ * @param executor executor to run callback that transforms Future when source Future is complete
+ * @param exceptionHandler handles exception
+ * @param from type
+ * @param to type
+ * @return an instance of {@link CompletableFuture}
+ */
+ static CompletableFuture transformFuture(
+ ListenableFuture listenableFuture,
+ Function converter,
+ Executor executor,
+ String errorMessage,
+ Optional, Throwable>> exceptionHandler) {
CompletableFuture result = new CompletableFuture<>();
Futures.addCallback(
listenableFuture,
@@ -70,7 +90,11 @@ public void onSuccess(F f) {
@Override
public void onFailure(Throwable throwable) {
- result.completeExceptionally(new TigrisDBException(errorMessage, throwable));
+ if (exceptionHandler.isPresent()) {
+ exceptionHandler.get().accept(result, throwable);
+ } else {
+ result.completeExceptionally(new TigrisDBException(errorMessage, throwable));
+ }
}
},
executor);
diff --git a/client/src/test/java/com/tigrisdata/db/client/StandardTigrisDBAsyncClientTest.java b/client/src/test/java/com/tigrisdata/db/client/StandardTigrisDBAsyncClientTest.java
index 6d6173c..044a5cf 100644
--- a/client/src/test/java/com/tigrisdata/db/client/StandardTigrisDBAsyncClientTest.java
+++ b/client/src/test/java/com/tigrisdata/db/client/StandardTigrisDBAsyncClientTest.java
@@ -85,8 +85,7 @@ public void testListDatabases() throws InterruptedException, ExecutionException
@Test
public void testCreateDatabase() throws InterruptedException, ExecutionException {
TigrisDBAsyncClient asyncClient = TestUtils.getTestAsyncClient(SERVER_NAME, grpcCleanup);
- CompletableFuture response =
- asyncClient.createDatabase("db4", DatabaseOptions.DEFAULT_INSTANCE);
+ CompletableFuture response = asyncClient.createDatabaseIfNotExists("db4");
Assert.assertEquals("db4 created", response.get().getMessage());
// 4th db created
Assert.assertEquals(
@@ -94,10 +93,18 @@ public void testCreateDatabase() throws InterruptedException, ExecutionException
}
@Test
- public void testDropDatabase() throws InterruptedException, ExecutionException {
+ public void testAlreadyExisingDatabaseCreation() throws InterruptedException, ExecutionException {
TigrisDBAsyncClient asyncClient = TestUtils.getTestAsyncClient(SERVER_NAME, grpcCleanup);
CompletableFuture response =
- asyncClient.dropDatabase("db2", DatabaseOptions.DEFAULT_INSTANCE);
+ asyncClient.createDatabaseIfNotExists("pre-existing-db-name");
+ // no exception is thrown, response with message is served
+ Assert.assertEquals("Database already exists", response.get().getMessage());
+ }
+
+ @Test
+ public void testDropDatabase() throws InterruptedException, ExecutionException {
+ TigrisDBAsyncClient asyncClient = TestUtils.getTestAsyncClient(SERVER_NAME, grpcCleanup);
+ CompletableFuture response = asyncClient.dropDatabase("db2");
Assert.assertEquals("db2 dropped", response.get().getMessage());
// 4th db created
Assert.assertEquals(
diff --git a/client/src/test/java/com/tigrisdata/db/client/StandardTigrisDBClientFailureTest.java b/client/src/test/java/com/tigrisdata/db/client/StandardTigrisDBClientFailureTest.java
index 5a10721..a081509 100644
--- a/client/src/test/java/com/tigrisdata/db/client/StandardTigrisDBClientFailureTest.java
+++ b/client/src/test/java/com/tigrisdata/db/client/StandardTigrisDBClientFailureTest.java
@@ -59,7 +59,7 @@ public void testCreateDatabase() {
String dbName = UUID.randomUUID().toString();
TigrisDBClient client = TestUtils.getTestClient(SERVER_NAME, grpcCleanup);
try {
- client.createDatabaseIfNotExists(dbName, DatabaseOptions.DEFAULT_INSTANCE);
+ client.createDatabaseIfNotExists(dbName);
Assert.fail("This must fail");
} catch (TigrisDBException tigrisDBException) {
Assert.assertEquals(
@@ -73,7 +73,7 @@ public void testDropDatabase() {
String dbName = UUID.randomUUID().toString();
TigrisDBClient client = TestUtils.getTestClient(SERVER_NAME, grpcCleanup);
try {
- client.dropDatabase(dbName, DatabaseOptions.DEFAULT_INSTANCE);
+ client.dropDatabase(dbName);
Assert.fail("This must fail");
} catch (TigrisDBException tigrisDBException) {
Assert.assertEquals(
diff --git a/client/src/test/java/com/tigrisdata/db/client/StandardTigrisDBClientTest.java b/client/src/test/java/com/tigrisdata/db/client/StandardTigrisDBClientTest.java
index 7ea7376..61590bb 100644
--- a/client/src/test/java/com/tigrisdata/db/client/StandardTigrisDBClientTest.java
+++ b/client/src/test/java/com/tigrisdata/db/client/StandardTigrisDBClientTest.java
@@ -83,8 +83,7 @@ public void testListDatabases() throws TigrisDBException {
@Test
public void testCreateDatabase() throws TigrisDBException {
TigrisDBClient client = TestUtils.getTestClient(SERVER_NAME, grpcCleanup);
- TigrisDBResponse response =
- client.createDatabaseIfNotExists("db4", DatabaseOptions.DEFAULT_INSTANCE);
+ TigrisDBResponse response = client.createDatabaseIfNotExists("db4");
Assert.assertEquals("db4 created", response.getMessage());
// 4th db created
Assert.assertEquals(4, client.listDatabases(DatabaseOptions.DEFAULT_INSTANCE).size());
@@ -93,7 +92,7 @@ public void testCreateDatabase() throws TigrisDBException {
@Test
public void testDropDatabase() throws TigrisDBException {
TigrisDBClient client = TestUtils.getTestClient(SERVER_NAME, grpcCleanup);
- TigrisDBResponse response = client.dropDatabase("db2", DatabaseOptions.DEFAULT_INSTANCE);
+ TigrisDBResponse response = client.dropDatabase("db2");
Assert.assertEquals("db2 dropped", response.getMessage());
// 4th db created
Assert.assertEquals(2, client.listDatabases(DatabaseOptions.DEFAULT_INSTANCE).size());
diff --git a/client/src/test/java/com/tigrisdata/db/client/StandardTigrisDatabaseFailureTest.java b/client/src/test/java/com/tigrisdata/db/client/StandardTigrisDatabaseFailureTest.java
index 8f74276..1596c37 100644
--- a/client/src/test/java/com/tigrisdata/db/client/StandardTigrisDatabaseFailureTest.java
+++ b/client/src/test/java/com/tigrisdata/db/client/StandardTigrisDatabaseFailureTest.java
@@ -68,8 +68,7 @@ public void testCreateCollectionFromURLs() throws IOException {
String dbName = UUID.randomUUID().toString();
TigrisDatabase db1 = client.getDatabase(dbName);
try {
- db1.createCollectionsInTransaction(
- Collections.singletonList(new URL("file:src/test/resources/db1_c5.json")));
+ db1.applySchemas(Collections.singletonList(new URL("file:src/test/resources/db1_c5.json")));
Assert.fail("This must fail");
} catch (TigrisDBException tigrisDBException) {
Assert.assertEquals(
@@ -82,10 +81,9 @@ public void testCreateCollectionFromURLs() throws IOException {
}
}
- /**
+ /*
* pass begin transaction, fail during createOrUpdateCollection, then rollback the transaction
*
- * @throws IOException
*/
@Test
public void testCreateCollectionFromURLsFailAndRollback() throws IOException {
@@ -96,8 +94,7 @@ public void testCreateCollectionFromURLsFailAndRollback() throws IOException {
+ FailingTestUserService.ALLOW_ROLLBACK_TRANSACTION_DB_NAME;
TigrisDatabase db1 = client.getDatabase(dbName);
try {
- db1.createCollectionsInTransaction(
- Collections.singletonList(new URL("file:src/test/resources/db1_c5.json")));
+ db1.applySchemas(Collections.singletonList(new URL("file:src/test/resources/db1_c5.json")));
Assert.fail("This must fail");
} catch (TigrisDBException tigrisDBException) {
Assert.assertEquals(
@@ -135,7 +132,7 @@ public void testBeginTransaction() {
TigrisDBClient client = TestUtils.getTestClient(SERVER_NAME, grpcCleanup);
TigrisDatabase db = client.getDatabase(dbName);
try {
- db.beginTransaction(new TransactionOptions());
+ db.beginTransaction(TransactionOptions.DEFAULT_INSTANCE);
Assert.fail("This must fail");
} catch (TigrisDBException tigrisDBException) {
Assert.assertEquals(
@@ -153,7 +150,8 @@ public void testCommitTransaction() {
TigrisDBClient client = TestUtils.getTestClient(SERVER_NAME, grpcCleanup);
TigrisDatabase db = client.getDatabase(dbName);
try {
- TransactionSession transactionSession = db.beginTransaction(new TransactionOptions());
+ TransactionSession transactionSession =
+ db.beginTransaction(TransactionOptions.DEFAULT_INSTANCE);
Assert.assertNotNull(transactionSession);
transactionSession.commit();
Assert.fail("commit() must fail");
@@ -173,7 +171,8 @@ public void testRollbackTransaction() {
TigrisDBClient client = TestUtils.getTestClient(SERVER_NAME, grpcCleanup);
TigrisDatabase db = client.getDatabase(dbName);
try {
- TransactionSession transactionSession = db.beginTransaction(new TransactionOptions());
+ TransactionSession transactionSession =
+ db.beginTransaction(TransactionOptions.DEFAULT_INSTANCE);
Assert.assertNotNull(transactionSession);
transactionSession.rollback();
Assert.fail("rollback() must fail");
diff --git a/client/src/test/java/com/tigrisdata/db/client/StandardTigrisDatabaseTest.java b/client/src/test/java/com/tigrisdata/db/client/StandardTigrisDatabaseTest.java
index 742b0df..31be49f 100644
--- a/client/src/test/java/com/tigrisdata/db/client/StandardTigrisDatabaseTest.java
+++ b/client/src/test/java/com/tigrisdata/db/client/StandardTigrisDatabaseTest.java
@@ -76,9 +76,8 @@ public void testCreateCollectionFromURLs() throws TigrisDBException, IOException
TigrisDBClient client = TestUtils.getTestClient(SERVER_NAME, grpcCleanup);
TigrisDatabase db1 = client.getDatabase("db1");
TigrisDBResponse response =
- db1.createCollectionsInTransaction(
- Collections.singletonList(new URL("file:src/test/resources/db1_c5.json")));
- Assert.assertEquals("Collections creates successfully", response.getMessage());
+ db1.applySchemas(Collections.singletonList(new URL("file:src/test/resources/db1_c5.json")));
+ Assert.assertEquals("Collections created successfully", response.getMessage());
MatcherAssert.assertThat(
db1.listCollections(),
Matchers.containsInAnyOrder(
@@ -94,9 +93,8 @@ public void testCreateCollectionFromURLs() throws TigrisDBException, IOException
public void testCreateCollectionFromDir() throws TigrisDBException {
TigrisDBClient client = TestUtils.getTestClient(SERVER_NAME, grpcCleanup);
TigrisDatabase db1 = client.getDatabase("db1");
- TigrisDBResponse response =
- db1.createCollectionsInTransaction(new File("src/test/resources/test-dir"));
- Assert.assertEquals("Collections creates successfully", response.getMessage());
+ TigrisDBResponse response = db1.applySchemas(new File("src/test/resources/test-dir"));
+ Assert.assertEquals("Collections created successfully", response.getMessage());
MatcherAssert.assertThat(
db1.listCollections(),
Matchers.containsInAnyOrder(
@@ -114,8 +112,7 @@ public void testCreateCollectionFromNonExistingDir() {
TigrisDBClient client = TestUtils.getTestClient(SERVER_NAME, grpcCleanup);
TigrisDatabase db1 = client.getDatabase("db1");
try {
- db1.createCollectionsInTransaction(
- new File("/" + UUID.randomUUID() + "/" + UUID.randomUUID()));
+ db1.applySchemas(new File("/" + UUID.randomUUID() + "/" + UUID.randomUUID()));
Assert.fail("This must fail");
} catch (TigrisDBException tigrisDBException) {
System.out.println(tigrisDBException.getMessage());
@@ -151,7 +148,8 @@ public void testGetCollection() {
public void testBeginTransaction() throws TigrisDBException {
TigrisDBClient client = TestUtils.getTestClient(SERVER_NAME, grpcCleanup);
TigrisDatabase db1 = client.getDatabase("db1");
- TransactionSession transactionSession = db1.beginTransaction(new TransactionOptions());
+ TransactionSession transactionSession =
+ db1.beginTransaction(TransactionOptions.DEFAULT_INSTANCE);
transactionSession.commit();
}
@@ -159,7 +157,8 @@ public void testBeginTransaction() throws TigrisDBException {
public void testCommitTransaction() throws TigrisDBException {
TigrisDBClient client = TestUtils.getTestClient(SERVER_NAME, grpcCleanup);
TigrisDatabase db1 = client.getDatabase("db1");
- TransactionSession transactionSession = db1.beginTransaction(new TransactionOptions());
+ TransactionSession transactionSession =
+ db1.beginTransaction(TransactionOptions.DEFAULT_INSTANCE);
transactionSession.commit();
}
@@ -167,7 +166,8 @@ public void testCommitTransaction() throws TigrisDBException {
public void testRollbackTransaction() throws TigrisDBException {
TigrisDBClient client = TestUtils.getTestClient(SERVER_NAME, grpcCleanup);
TigrisDatabase db1 = client.getDatabase("db1");
- TransactionSession transactionSession = db1.beginTransaction(new TransactionOptions());
+ TransactionSession transactionSession =
+ db1.beginTransaction(TransactionOptions.DEFAULT_INSTANCE);
transactionSession.rollback();
}
@@ -200,8 +200,8 @@ public void testHashcode() {
public void testEquals() {
TigrisDatabase db1 = new StandardTigrisDatabase("db1", null, null, null);
TigrisDatabase db2 = new StandardTigrisDatabase("db1", null, null, null);
- Assert.assertTrue(db1.equals(db2));
- Assert.assertTrue(db1.equals(db1));
+ Assert.assertEquals(db1, db2);
+ Assert.assertEquals(db1, db1);
Assert.assertFalse(db1.equals(null));
Assert.assertFalse(db1.equals("string-obj"));
diff --git a/client/src/test/java/com/tigrisdata/db/client/grpc/TestUserService.java b/client/src/test/java/com/tigrisdata/db/client/grpc/TestUserService.java
index 5ad674e..c4e1640 100644
--- a/client/src/test/java/com/tigrisdata/db/client/grpc/TestUserService.java
+++ b/client/src/test/java/com/tigrisdata/db/client/grpc/TestUserService.java
@@ -18,6 +18,8 @@
import com.google.protobuf.ByteString;
import com.tigrisdata.db.api.v1.grpc.Api;
import com.tigrisdata.db.api.v1.grpc.TigrisDBGrpc;
+import io.grpc.Status;
+import io.grpc.StatusRuntimeException;
import io.grpc.stub.StreamObserver;
import java.util.ArrayList;
@@ -299,6 +301,11 @@ public void listCollections(
public void createDatabase(
Api.CreateDatabaseRequest request,
StreamObserver responseObserver) {
+ // to test already exists
+ if (request.getDb().equals("pre-existing-db-name")) {
+ responseObserver.onError(new StatusRuntimeException(Status.ALREADY_EXISTS));
+ return;
+ }
this.dbs.add(request.getDb());
responseObserver.onNext(
Api.CreateDatabaseResponse.newBuilder().setMsg(request.getDb() + " created").build());