use of com.scalar.db.io.Value in project scalardb by scalar-labs.
the class OperationCheckerTest method whenCheckingPutOperationWithInvalidValues_shouldThrowIllegalArgumentException.
@Test
public void whenCheckingPutOperationWithInvalidValues_shouldThrowIllegalArgumentException() {
// Arrange
Key partitionKey = new Key(PKEY1, 1, PKEY2, "val1");
Key clusteringKey = new Key(CKEY1, 2, CKEY2, "val1");
List<Value<?>> values = Arrays.asList(new IntValue(COL1, 1), new DoubleValue(COL2, 0.1), new BooleanValue("v4", true));
MutationCondition condition = new PutIfExists();
Put put = new Put(partitionKey, clusteringKey).withValues(values).withCondition(condition).forNamespace(NAMESPACE).forTable(TABLE_NAME);
// Act Assert
assertThatThrownBy(() -> operationChecker.check(put)).isInstanceOf(IllegalArgumentException.class);
}
use of com.scalar.db.io.Value in project scalardb by scalar-labs.
the class OperationCheckerTest method whenCheckingPutOperationWithInvalidClusteringKey_shouldThrowIllegalArgumentException.
@Test
public void whenCheckingPutOperationWithInvalidClusteringKey_shouldThrowIllegalArgumentException() {
// Arrange
Key partitionKey = new Key(PKEY1, 1, PKEY2, "val1");
Key clusteringKey = new Key(CKEY1, 2, "c3", "val1");
List<Value<?>> values = Arrays.asList(new IntValue(COL1, 1), new DoubleValue(COL2, 0.1), new BooleanValue(COL3, true));
MutationCondition condition = new PutIfExists();
Put put = new Put(partitionKey, clusteringKey).withValues(values).withCondition(condition).forNamespace(NAMESPACE).forTable(TABLE_NAME);
// Act Assert
assertThatThrownBy(() -> operationChecker.check(put)).isInstanceOf(IllegalArgumentException.class);
}
use of com.scalar.db.io.Value in project scalardb by scalar-labs.
the class OperationCheckerTest method whenCheckingPutOperationWithoutAnyClusteringKey_shouldThrowIllegalArgumentException.
@Test
public void whenCheckingPutOperationWithoutAnyClusteringKey_shouldThrowIllegalArgumentException() {
// Arrange
Key partitionKey = new Key(PKEY1, 1, PKEY2, "val1");
Key clusteringKey = null;
List<Value<?>> values = Arrays.asList(new IntValue(COL1, 1), new DoubleValue(COL2, 0.1), new BooleanValue(COL3, true));
MutationCondition condition = new PutIfNotExists();
Put put = new Put(partitionKey, clusteringKey).withValues(values).withCondition(condition).forNamespace(NAMESPACE).forTable(TABLE_NAME);
// Act Assert
assertThatThrownBy(() -> operationChecker.check(put)).isInstanceOf(IllegalArgumentException.class);
}
use of com.scalar.db.io.Value in project scalardb by scalar-labs.
the class OperationCheckerTest method whenCheckingPutOperationWithInvalidPutIfConditionWithIsNotNull_shouldThrowIllegalArgumentException.
@Test
public void whenCheckingPutOperationWithInvalidPutIfConditionWithIsNotNull_shouldThrowIllegalArgumentException() {
// Arrange
Key partitionKey = new Key(PKEY1, 1, PKEY2, "val1");
Key clusteringKey = new Key(CKEY1, 2, CKEY2, "val1");
List<Value<?>> values = Arrays.asList(new IntValue(COL1, 1), new DoubleValue(COL2, 0.1), new BooleanValue(COL3, true));
MutationCondition condition = ConditionBuilder.putIf(ConditionBuilder.buildConditionalExpression(IntColumn.of(COL1, 1), Operator.IS_NOT_NULL)).build();
Put put = new Put(partitionKey, clusteringKey).withValues(values).withCondition(condition).forNamespace(NAMESPACE).forTable(TABLE_NAME);
// Act Assert
assertThatThrownBy(() -> operationChecker.check(put)).isInstanceOf(IllegalArgumentException.class);
}
use of com.scalar.db.io.Value in project scalardb by scalar-labs.
the class ResultInterpreterTest method interpret_ShouldReturnWhatsSet.
@Test
public void interpret_ShouldReturnWhatsSet() throws SQLException {
// Arrange
when(resultSet.getString(ANY_NAME_1)).thenReturn(ANY_TEXT_1);
when(resultSet.getString(ANY_NAME_2)).thenReturn(ANY_TEXT_2);
when(resultSet.getBoolean(ANY_COLUMN_NAME_1)).thenReturn(true);
when(resultSet.getInt(ANY_COLUMN_NAME_2)).thenReturn(Integer.MAX_VALUE);
when(resultSet.getLong(ANY_COLUMN_NAME_3)).thenReturn(BigIntValue.MAX_VALUE);
when(resultSet.getDouble(ANY_COLUMN_NAME_4)).thenReturn((double) Float.MAX_VALUE);
when(resultSet.getDouble(ANY_COLUMN_NAME_5)).thenReturn(Double.MAX_VALUE);
when(resultSet.getString(ANY_COLUMN_NAME_6)).thenReturn("string");
when(resultSet.getBytes(ANY_COLUMN_NAME_7)).thenReturn("bytes".getBytes(StandardCharsets.UTF_8));
List<String> projections = Collections.emptyList();
ResultInterpreter spy = spy(new ResultInterpreter(projections, TABLE_METADATA));
// Act
Result result = spy.interpret(resultSet);
// Assert
assertThat(result.getValue(ANY_NAME_1).isPresent()).isTrue();
assertThat(result.getValue(ANY_NAME_1).get().getAsString().isPresent()).isTrue();
assertThat(result.getValue(ANY_NAME_1).get().getAsString().get()).isEqualTo(ANY_TEXT_1);
assertThat(result.getValue(ANY_NAME_2).isPresent()).isTrue();
assertThat(result.getValue(ANY_NAME_2).get().getAsString().isPresent()).isTrue();
assertThat(result.getValue(ANY_NAME_2).get().getAsString().get()).isEqualTo(ANY_TEXT_2);
assertThat(result.getValue(ANY_COLUMN_NAME_1).isPresent()).isTrue();
assertThat(result.getValue(ANY_COLUMN_NAME_1).get().getAsBoolean()).isTrue();
assertThat(result.getValue(ANY_COLUMN_NAME_2).isPresent()).isTrue();
assertThat(result.getValue(ANY_COLUMN_NAME_2).get().getAsInt()).isEqualTo(Integer.MAX_VALUE);
assertThat(result.getValue(ANY_COLUMN_NAME_3).isPresent()).isTrue();
assertThat(result.getValue(ANY_COLUMN_NAME_3).get().getAsLong()).isEqualTo(BigIntValue.MAX_VALUE);
assertThat(result.getValue(ANY_COLUMN_NAME_4).isPresent()).isTrue();
assertThat(result.getValue(ANY_COLUMN_NAME_4).get().getAsFloat()).isEqualTo(Float.MAX_VALUE);
assertThat(result.getValue(ANY_COLUMN_NAME_5).isPresent()).isTrue();
assertThat(result.getValue(ANY_COLUMN_NAME_5).get().getAsDouble()).isEqualTo(Double.MAX_VALUE);
assertThat(result.getValue(ANY_COLUMN_NAME_6).isPresent()).isTrue();
assertThat(result.getValue(ANY_COLUMN_NAME_6).get().getAsString().isPresent()).isTrue();
assertThat(result.getValue(ANY_COLUMN_NAME_6).get().getAsString().get()).isEqualTo("string");
assertThat(result.getValue(ANY_COLUMN_NAME_7).isPresent()).isTrue();
assertThat(result.getValue(ANY_COLUMN_NAME_7).get().getAsBytes().isPresent()).isTrue();
assertThat(result.getValue(ANY_COLUMN_NAME_7).get().getAsBytes().get()).isEqualTo("bytes".getBytes(StandardCharsets.UTF_8));
Map<String, Value<?>> values = result.getValues();
assertThat(values.containsKey(ANY_NAME_1)).isTrue();
assertThat(values.get(ANY_NAME_1).getAsString().isPresent()).isTrue();
assertThat(values.get(ANY_NAME_1).getAsString().get()).isEqualTo(ANY_TEXT_1);
assertThat(values.containsKey(ANY_NAME_2)).isTrue();
assertThat(values.get(ANY_NAME_2).getAsString().isPresent()).isTrue();
assertThat(values.get(ANY_NAME_2).getAsString().get()).isEqualTo(ANY_TEXT_2);
assertThat(values.containsKey(ANY_COLUMN_NAME_1)).isTrue();
assertThat(values.get(ANY_COLUMN_NAME_1).getAsBoolean()).isTrue();
assertThat(values.containsKey(ANY_COLUMN_NAME_2)).isTrue();
assertThat(values.get(ANY_COLUMN_NAME_2).getAsInt()).isEqualTo(Integer.MAX_VALUE);
assertThat(values.containsKey(ANY_COLUMN_NAME_3)).isTrue();
assertThat(values.get(ANY_COLUMN_NAME_3).getAsLong()).isEqualTo(BigIntValue.MAX_VALUE);
assertThat(values.containsKey(ANY_COLUMN_NAME_4)).isTrue();
assertThat(values.get(ANY_COLUMN_NAME_4).getAsFloat()).isEqualTo(Float.MAX_VALUE);
assertThat(values.containsKey(ANY_COLUMN_NAME_5)).isTrue();
assertThat(values.get(ANY_COLUMN_NAME_5).getAsDouble()).isEqualTo(Double.MAX_VALUE);
assertThat(values.containsKey(ANY_COLUMN_NAME_6)).isTrue();
assertThat(values.get(ANY_COLUMN_NAME_6).getAsString().isPresent()).isTrue();
assertThat(values.get(ANY_COLUMN_NAME_6).getAsString().get()).isEqualTo("string");
assertThat(values.containsKey(ANY_COLUMN_NAME_7)).isTrue();
assertThat(values.get(ANY_COLUMN_NAME_7).getAsBytes().isPresent()).isTrue();
assertThat(values.get(ANY_COLUMN_NAME_7).getAsBytes().get()).isEqualTo("bytes".getBytes(StandardCharsets.UTF_8));
assertThat(result.isNull(ANY_NAME_1)).isFalse();
assertThat(result.getText(ANY_NAME_1)).isEqualTo(ANY_TEXT_1);
assertThat(result.isNull(ANY_NAME_2)).isFalse();
assertThat(result.getText(ANY_NAME_2)).isEqualTo(ANY_TEXT_2);
assertThat(result.isNull(ANY_COLUMN_NAME_1)).isFalse();
assertThat(result.getBoolean(ANY_COLUMN_NAME_1)).isTrue();
assertThat(result.isNull(ANY_COLUMN_NAME_2)).isFalse();
assertThat(result.getInt(ANY_COLUMN_NAME_2)).isEqualTo(Integer.MAX_VALUE);
assertThat(result.isNull(ANY_COLUMN_NAME_3)).isFalse();
assertThat(result.getBigInt(ANY_COLUMN_NAME_3)).isEqualTo(BigIntValue.MAX_VALUE);
assertThat(result.isNull(ANY_COLUMN_NAME_4)).isFalse();
assertThat(result.getFloat(ANY_COLUMN_NAME_4)).isEqualTo(Float.MAX_VALUE);
assertThat(result.isNull(ANY_COLUMN_NAME_5)).isFalse();
assertThat(result.getDouble(ANY_COLUMN_NAME_5)).isEqualTo(Double.MAX_VALUE);
assertThat(result.isNull(ANY_COLUMN_NAME_6)).isFalse();
assertThat(result.getText(ANY_COLUMN_NAME_6)).isEqualTo("string");
assertThat(result.isNull(ANY_COLUMN_NAME_7)).isFalse();
assertThat(result.getBlob(ANY_COLUMN_NAME_7)).isEqualTo(ByteBuffer.wrap("bytes".getBytes(StandardCharsets.UTF_8)));
assertThat(result.getBlobAsBytes(ANY_COLUMN_NAME_7)).isEqualTo("bytes".getBytes(StandardCharsets.UTF_8));
}
Aggregations