Skip to content

Commit

Permalink
Fix CRUD mode values to enum
Browse files Browse the repository at this point in the history
Needed for #107
  • Loading branch information
nickkkccc committed Sep 6, 2023
1 parent 4063fc7 commit f9e51f3
Show file tree
Hide file tree
Showing 5 changed files with 47 additions and 14 deletions.
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package io.tarantool.driver.api.space.options;

import io.tarantool.driver.api.space.options.enums.crud.Mode;

import java.util.Optional;

/**
Expand All @@ -17,12 +19,8 @@ public interface OperationWithModeOptions<T extends OperationWithModeOptions<T>>
* @param mode mode for operations (select, get, count).
* @return this options instance.
*/
default T withMode(String mode) {
if (!mode.equals("read") && !mode.equals("write")) {
throw new IllegalArgumentException("Mode should be \"read\" or \"write\"");
}

addOption(MODE, mode);
default T withMode(Mode mode) {
addOption(MODE, mode.value());
return self();
}

Expand All @@ -31,8 +29,8 @@ default T withMode(String mode) {
*
* @return mode.
*/
default Optional<String> getMode() {
return getOption(MODE, String.class);
default Optional<Mode> getMode() {
return getOption(MODE, Mode.class);
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package io.tarantool.driver.api.space.options.enums.crud;

/**
* Enum represents the CRUD predefined mode option values.
*
* @author Belonogov Nikolay.
* @see <a href="https://github.com/tarantool/crud">tarantool/crud</a>.
*/
public enum Mode {
WRITE("write"),
READ("read");

private final String value;

Mode(String value) {
this.value = value;
}

public String value() {
return this.value;
}

@Override
public String toString() {
return this.value;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
/**
* Contains enums for CRUD option values.
*
* @author Belonogov Nikolay
*/
package io.tarantool.driver.api.space.options.enums.crud;
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import io.tarantool.driver.api.SingleValueCallResult;
import io.tarantool.driver.api.TarantoolResult;
import io.tarantool.driver.api.conditions.Conditions;
import io.tarantool.driver.api.space.options.enums.crud.Mode;
import io.tarantool.driver.api.space.options.proxy.ProxyDeleteOptions;
import io.tarantool.driver.api.space.options.proxy.ProxyInsertManyOptions;
import io.tarantool.driver.api.space.options.proxy.ProxyInsertOptions;
Expand Down Expand Up @@ -220,15 +221,15 @@ public void selectOperationBuilderTest() {
.withOptions(ProxySelectOptions.create()
.withTimeout(client.getConfig().getRequestTimeout())
.withBatchSize(123456)
.withMode("write")
.withMode(Mode.WRITE)
)
.build();

Map<String, Object> options = new HashMap<>();
options.put(CRUDBaseOptions.TIMEOUT, client.getConfig().getRequestTimeout());
options.put(CRUDSelectOptions.SELECT_BATCH_SIZE, 123456);
options.put(CRUDSelectOptions.SELECT_LIMIT, 100L);
options.put(CRUDSelectOptions.MODE, "write");
options.put(CRUDSelectOptions.MODE, Mode.WRITE.value());

assertEquals(client, op.getClient());
assertEquals("function1", op.getFunctionName());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import io.tarantool.driver.api.conditions.Conditions;
import io.tarantool.driver.api.space.TarantoolSpaceOperations;
import io.tarantool.driver.api.space.options.SelectOptions;
import io.tarantool.driver.api.space.options.enums.crud.Mode;
import io.tarantool.driver.api.space.options.proxy.ProxySelectOptions;
import io.tarantool.driver.api.tuple.DefaultTarantoolTupleFactory;
import io.tarantool.driver.api.tuple.TarantoolTuple;
Expand Down Expand Up @@ -95,7 +96,7 @@ public void withBatchSizeTest() throws ExecutionException, InterruptedException
}

@Test
public void withTimeout() throws ExecutionException, InterruptedException {
public void withTimeoutTest() throws ExecutionException, InterruptedException {
TarantoolSpaceOperations<TarantoolTuple, TarantoolResult<TarantoolTuple>> profileSpace =
client.space(TEST_SPACE_NAME);

Expand Down Expand Up @@ -154,7 +155,7 @@ public void withFieldsTest() throws ExecutionException, InterruptedException {
}

@Test
public void withMode() throws ExecutionException, InterruptedException {
public void withModeTest() throws ExecutionException, InterruptedException {
TarantoolSpaceOperations<TarantoolTuple, TarantoolResult<TarantoolTuple>> operations =
client.space(TEST_SPACE_NAME);

Expand All @@ -167,8 +168,8 @@ public void withMode() throws ExecutionException, InterruptedException {
crudSelectOpts = client.eval("return crud_select_opts").get();
assertNull(((HashMap<?, ?>) crudSelectOpts.get(0)).get("mode"));

operations.select(Conditions.any(), ProxySelectOptions.create().withMode("write")).get();
operations.select(Conditions.any(), ProxySelectOptions.create().withMode(Mode.WRITE)).get();
crudSelectOpts = client.eval("return crud_select_opts").get();
assertEquals("write", ((HashMap<?, ?>) crudSelectOpts.get(0)).get("mode"));
assertEquals(Mode.WRITE, ((HashMap<?, ?>) crudSelectOpts.get(0)).get("mode"));
}
}

0 comments on commit f9e51f3

Please sign in to comment.