use of com.scalar.db.io.Value in project scalardb by scalar-labs.
the class ResultInterpreterTest method interpret_ShouldReturnWhatsSetWithNullValues.
@Test
public void interpret_ShouldReturnWhatsSetWithNullValues() 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(false);
when(resultSet.getInt(ANY_COLUMN_NAME_2)).thenReturn(0);
when(resultSet.getLong(ANY_COLUMN_NAME_3)).thenReturn(0L);
when(resultSet.getDouble(ANY_COLUMN_NAME_4)).thenReturn(0.0D);
when(resultSet.getDouble(ANY_COLUMN_NAME_5)).thenReturn(0.0D);
when(resultSet.getString(ANY_COLUMN_NAME_6)).thenReturn(null);
when(resultSet.getBytes(ANY_COLUMN_NAME_7)).thenReturn(null);
when(resultSet.wasNull()).thenReturn(false).thenReturn(false).thenReturn(true);
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()).isFalse();
assertThat(result.getValue(ANY_COLUMN_NAME_2).isPresent()).isTrue();
assertThat(result.getValue(ANY_COLUMN_NAME_2).get().getAsInt()).isEqualTo(0);
assertThat(result.getValue(ANY_COLUMN_NAME_3).isPresent()).isTrue();
assertThat(result.getValue(ANY_COLUMN_NAME_3).get().getAsLong()).isEqualTo(0L);
assertThat(result.getValue(ANY_COLUMN_NAME_4).isPresent()).isTrue();
assertThat(result.getValue(ANY_COLUMN_NAME_4).get().getAsFloat()).isEqualTo(0.0F);
assertThat(result.getValue(ANY_COLUMN_NAME_5).isPresent()).isTrue();
assertThat(result.getValue(ANY_COLUMN_NAME_5).get().getAsDouble()).isEqualTo(0.0D);
assertThat(result.getValue(ANY_COLUMN_NAME_6).isPresent()).isTrue();
assertThat(result.getValue(ANY_COLUMN_NAME_6).get().getAsString()).isNotPresent();
assertThat(result.getValue(ANY_COLUMN_NAME_7).isPresent()).isTrue();
assertThat(result.getValue(ANY_COLUMN_NAME_7).get().getAsBytes()).isNotPresent();
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()).isFalse();
assertThat(values.containsKey(ANY_COLUMN_NAME_2)).isTrue();
assertThat(values.get(ANY_COLUMN_NAME_2).getAsInt()).isEqualTo(0);
assertThat(values.containsKey(ANY_COLUMN_NAME_3)).isTrue();
assertThat(values.get(ANY_COLUMN_NAME_3).getAsLong()).isEqualTo(0L);
assertThat(values.containsKey(ANY_COLUMN_NAME_4)).isTrue();
assertThat(values.get(ANY_COLUMN_NAME_4).getAsFloat()).isEqualTo(0.0F);
assertThat(values.containsKey(ANY_COLUMN_NAME_5)).isTrue();
assertThat(values.get(ANY_COLUMN_NAME_5).getAsDouble()).isEqualTo(0.0D);
assertThat(values.containsKey(ANY_COLUMN_NAME_6)).isTrue();
assertThat(values.get(ANY_COLUMN_NAME_6).getAsString()).isNotPresent();
assertThat(values.containsKey(ANY_COLUMN_NAME_7)).isTrue();
assertThat(values.get(ANY_COLUMN_NAME_7).getAsBytes()).isNotPresent();
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)).isTrue();
assertThat(result.getBoolean(ANY_COLUMN_NAME_1)).isFalse();
assertThat(result.isNull(ANY_COLUMN_NAME_2)).isTrue();
assertThat(result.getInt(ANY_COLUMN_NAME_2)).isEqualTo(0);
assertThat(result.isNull(ANY_COLUMN_NAME_3)).isTrue();
assertThat(result.getBigInt(ANY_COLUMN_NAME_3)).isEqualTo(0L);
assertThat(result.isNull(ANY_COLUMN_NAME_4)).isTrue();
assertThat(result.getFloat(ANY_COLUMN_NAME_4)).isEqualTo(0.0F);
assertThat(result.isNull(ANY_COLUMN_NAME_5)).isTrue();
assertThat(result.getDouble(ANY_COLUMN_NAME_5)).isEqualTo(0.0D);
assertThat(result.isNull(ANY_COLUMN_NAME_6)).isTrue();
assertThat(result.getText(ANY_COLUMN_NAME_6)).isNull();
assertThat(result.isNull(ANY_COLUMN_NAME_7)).isTrue();
assertThat(result.getBlob(ANY_COLUMN_NAME_7)).isNull();
assertThat(result.getBlobAsBytes(ANY_COLUMN_NAME_7)).isNull();
}
use of com.scalar.db.io.Value in project scalardb by scalar-labs.
the class MergedResultTest method getValues_ResultAndPutGiven_ShouldReturnMergedValues.
@Test
public void getValues_ResultAndPutGiven_ShouldReturnMergedValues() {
// Arrange
Put put = new Put(new Key(ANY_NAME_1, ANY_TEXT_1), new Key(ANY_NAME_2, ANY_TEXT_2)).withValue(ANY_NAME_3, ANY_INT_3);
MergedResult mergedResult = new MergedResult(Optional.of(result), put, TABLE_METADATA);
// Act
Map<String, Value<?>> values = mergedResult.getValues();
// Assert
assertThat(values.get(ANY_NAME_1)).isEqualTo(new TextValue(ANY_NAME_1, ANY_TEXT_1));
assertThat(values.get(ANY_NAME_2)).isEqualTo(new TextValue(ANY_NAME_2, ANY_TEXT_2));
assertThat(values.get(ANY_NAME_3)).isEqualTo(new IntValue(ANY_NAME_3, ANY_INT_3));
assertThat(values.get(ANY_NAME_4)).isEqualTo(new TextValue(ANY_NAME_4, ANY_TEXT_3));
assertThat(values.get(Attribute.ID)).isEqualTo(Attribute.toIdValue(ANY_ID_2));
assertThat(values.get(Attribute.PREPARED_AT)).isEqualTo(Attribute.toPreparedAtValue(ANY_TIME_3));
assertThat(values.get(Attribute.COMMITTED_AT)).isEqualTo(Attribute.toCommittedAtValue(ANY_TIME_4));
assertThat(values.get(Attribute.STATE)).isEqualTo(Attribute.toStateValue(TransactionState.COMMITTED));
assertThat(values.get(Attribute.VERSION)).isEqualTo(Attribute.toVersionValue(ANY_VERSION_2));
assertThat(values.get(Attribute.BEFORE_PREFIX + ANY_NAME_3)).isEqualTo(new IntValue(Attribute.BEFORE_PREFIX + ANY_NAME_3, ANY_INT_1));
assertThat(values.get(Attribute.BEFORE_ID)).isEqualTo(Attribute.toBeforeIdValue(ANY_ID_1));
assertThat(values.get(Attribute.BEFORE_PREPARED_AT)).isEqualTo(Attribute.toBeforePreparedAtValue(ANY_TIME_1));
assertThat(values.get(Attribute.BEFORE_COMMITTED_AT)).isEqualTo(Attribute.toBeforeCommittedAtValue(ANY_TIME_2));
assertThat(values.get(Attribute.BEFORE_STATE)).isEqualTo(Attribute.toBeforeStateValue(TransactionState.COMMITTED));
assertThat(values.get(Attribute.BEFORE_VERSION)).isEqualTo(Attribute.toBeforeVersionValue(ANY_VERSION_1));
}
use of com.scalar.db.io.Value in project scalardb by scalar-labs.
the class TransactionResultTest method getValues_ResultGiven_ShouldReturnCorrectValues.
@Test
public void getValues_ResultGiven_ShouldReturnCorrectValues() {
// Arrange
Result given = prepareResult();
TransactionResult result = prepareResult();
// Act
Map<String, Value<?>> values = result.getValues();
// Assert
assertThat(values.size()).isEqualTo(given.getValues().size());
given.getValues().forEach((k, v) -> assertThat(values.get(v.getName())).isEqualTo(v));
}
use of com.scalar.db.io.Value in project scalardb by scalar-labs.
the class DeleteTest method getPartitionKey_ProperKeyGivenInConstructor_ShouldReturnWhatsSet.
@Test
public void getPartitionKey_ProperKeyGivenInConstructor_ShouldReturnWhatsSet() {
// Arrange
Key expected = new Key(ANY_NAME_1, ANY_TEXT_1);
Key clusteringKey = new Key(ANY_NAME_2, ANY_TEXT_2);
Delete del = new Delete(expected, clusteringKey);
// Act
Key actual = del.getPartitionKey();
// Assert
assertThat((Iterable<? extends Value<?>>) expected).isEqualTo(actual);
}
use of com.scalar.db.io.Value in project scalardb by scalar-labs.
the class PutTest method withXXXValue_ProperValuesGiven_ShouldReturnWhatsSet.
@Test
public void withXXXValue_ProperValuesGiven_ShouldReturnWhatsSet() {
// Arrange
Put put = preparePut();
// Act
put.withBooleanValue("val1", true).withIntValue("val2", 5678).withBigIntValue("val3", 1234L).withFloatValue("val4", 4.56f).withDoubleValue("val5", 1.23).withTextValue("val6", "string_value").withBlobValue("val7", "blob_value".getBytes(StandardCharsets.UTF_8)).withBlobValue("val8", ByteBuffer.wrap("blob_value2".getBytes(StandardCharsets.UTF_8))).withBooleanValue("val9", null).withIntValue("val10", null).withBigIntValue("val11", null).withFloatValue("val12", null).withDoubleValue("val13", null).withTextValue("val14", null).withBlobValue("val15", (ByteBuffer) null).withBlobValue("val16", (byte[]) null);
// Assert
Map<String, Value<?>> values = put.getValues();
assertThat(values.size()).isEqualTo(16);
assertThat(values.get("val1")).isEqualTo(new BooleanValue("val1", true));
assertThat(values.get("val2")).isEqualTo(new IntValue("val2", 5678));
assertThat(values.get("val3")).isEqualTo(new BigIntValue("val3", 1234L));
assertThat(values.get("val4")).isEqualTo(new FloatValue("val4", 4.56f));
assertThat(values.get("val5")).isEqualTo(new DoubleValue("val5", 1.23));
assertThat(values.get("val6")).isEqualTo(new TextValue("val6", "string_value"));
assertThat(values.get("val7")).isEqualTo(new BlobValue("val7", "blob_value".getBytes(StandardCharsets.UTF_8)));
assertThat(values.get("val8")).isEqualTo(new BlobValue("val8", "blob_value2".getBytes(StandardCharsets.UTF_8)));
assertThat(values).containsKey("val9");
assertThat(values.get("val9")).isNull();
assertThat(values).containsKey("val10");
assertThat(values.get("val10")).isNull();
assertThat(values).containsKey("val11");
assertThat(values.get("val11")).isNull();
assertThat(values).containsKey("val12");
assertThat(values.get("val12")).isNull();
assertThat(values).containsKey("val13");
assertThat(values.get("val13")).isNull();
assertThat(values).containsKey("val14");
assertThat(values.get("val14")).isNull();
assertThat(values).containsKey("val15");
assertThat(values.get("val15")).isNull();
assertThat(values).containsKey("val16");
assertThat(values.get("val16")).isNull();
Map<String, Column<?>> columns = put.getColumns();
assertThat(columns.size()).isEqualTo(16);
assertThat(columns.get("val1")).isEqualTo(BooleanColumn.of("val1", true));
assertThat(columns.get("val2")).isEqualTo(IntColumn.of("val2", 5678));
assertThat(columns.get("val3")).isEqualTo(BigIntColumn.of("val3", 1234L));
assertThat(columns.get("val4")).isEqualTo(FloatColumn.of("val4", 4.56f));
assertThat(columns.get("val5")).isEqualTo(DoubleColumn.of("val5", 1.23));
assertThat(columns.get("val6")).isEqualTo(TextColumn.of("val6", "string_value"));
assertThat(columns.get("val7")).isEqualTo(BlobColumn.of("val7", "blob_value".getBytes(StandardCharsets.UTF_8)));
assertThat(columns.get("val8")).isEqualTo(BlobColumn.of("val8", "blob_value2".getBytes(StandardCharsets.UTF_8)));
assertThat(columns.get("val9")).isEqualTo(BooleanColumn.ofNull("val9"));
assertThat(columns.get("val10")).isEqualTo(IntColumn.ofNull("val10"));
assertThat(columns.get("val11")).isEqualTo(BigIntColumn.ofNull("val11"));
assertThat(columns.get("val12")).isEqualTo(FloatColumn.ofNull("val12"));
assertThat(columns.get("val13")).isEqualTo(DoubleColumn.ofNull("val13"));
assertThat(columns.get("val14")).isEqualTo(TextColumn.ofNull("val14"));
assertThat(columns.get("val15")).isEqualTo(BlobColumn.ofNull("val15"));
assertThat(columns.get("val16")).isEqualTo(BlobColumn.ofNull("val16"));
assertThat(put.getContainedColumnNames()).isEqualTo(ImmutableSet.of("val1", "val2", "val3", "val4", "val5", "val6", "val7", "val8", "val9", "val10", "val11", "val12", "val13", "val14", "val15", "val16"));
assertThat(put.containsColumn("val1")).isTrue();
assertThat(put.isNullValue("val1")).isFalse();
assertThat(put.getBooleanValue("val1")).isTrue();
assertThat(put.getValueAsObject("val1")).isEqualTo(true);
assertThat(put.containsColumn("val2")).isTrue();
assertThat(put.isNullValue("val2")).isFalse();
assertThat(put.getIntValue("val2")).isEqualTo(5678);
assertThat(put.getValueAsObject("val2")).isEqualTo(5678);
assertThat(put.containsColumn("val3")).isTrue();
assertThat(put.isNullValue("val3")).isFalse();
assertThat(put.getBigIntValue("val3")).isEqualTo(1234L);
assertThat(put.getValueAsObject("val3")).isEqualTo(1234L);
assertThat(put.containsColumn("val4")).isTrue();
assertThat(put.isNullValue("val4")).isFalse();
assertThat(put.getFloatValue("val4")).isEqualTo(4.56f);
assertThat(put.getValueAsObject("val4")).isEqualTo(4.56f);
assertThat(put.containsColumn("val5")).isTrue();
assertThat(put.isNullValue("val5")).isFalse();
assertThat(put.getDoubleValue("val5")).isEqualTo(1.23);
assertThat(put.getValueAsObject("val5")).isEqualTo(1.23);
assertThat(put.containsColumn("val6")).isTrue();
assertThat(put.isNullValue("val6")).isFalse();
assertThat(put.getTextValue("val6")).isEqualTo("string_value");
assertThat(put.getValueAsObject("val6")).isEqualTo("string_value");
assertThat(put.containsColumn("val7")).isTrue();
assertThat(put.isNullValue("val7")).isFalse();
assertThat(put.getBlobValue("val7")).isEqualTo(ByteBuffer.wrap("blob_value".getBytes(StandardCharsets.UTF_8)));
assertThat(put.getBlobValueAsByteBuffer("val7")).isEqualTo(ByteBuffer.wrap("blob_value".getBytes(StandardCharsets.UTF_8)));
assertThat(put.getBlobValueAsBytes("val7")).isEqualTo("blob_value".getBytes(StandardCharsets.UTF_8));
assertThat(put.getValueAsObject("val7")).isEqualTo(ByteBuffer.wrap("blob_value".getBytes(StandardCharsets.UTF_8)));
assertThat(put.containsColumn("val8")).isTrue();
assertThat(put.isNullValue("val8")).isFalse();
assertThat(put.getBlobValue("val8")).isEqualTo(ByteBuffer.wrap("blob_value2".getBytes(StandardCharsets.UTF_8)));
assertThat(put.getBlobValueAsByteBuffer("val8")).isEqualTo(ByteBuffer.wrap("blob_value2".getBytes(StandardCharsets.UTF_8)));
assertThat(put.getBlobValueAsBytes("val8")).isEqualTo("blob_value2".getBytes(StandardCharsets.UTF_8));
assertThat(put.getValueAsObject("val8")).isEqualTo(ByteBuffer.wrap("blob_value2".getBytes(StandardCharsets.UTF_8)));
assertThat(put.containsColumn("val9")).isTrue();
assertThat(put.isNullValue("val9")).isTrue();
assertThat(put.getBooleanValue("val9")).isFalse();
assertThat(put.getValueAsObject("val9")).isNull();
assertThat(put.containsColumn("val10")).isTrue();
assertThat(put.isNullValue("val10")).isTrue();
assertThat(put.getIntValue("val10")).isEqualTo(0);
assertThat(put.getValueAsObject("val10")).isNull();
assertThat(put.containsColumn("val11")).isTrue();
assertThat(put.isNullValue("val11")).isTrue();
assertThat(put.getBigIntValue("val11")).isEqualTo(0L);
assertThat(put.getValueAsObject("val11")).isNull();
assertThat(put.containsColumn("val12")).isTrue();
assertThat(put.isNullValue("val12")).isTrue();
assertThat(put.getFloatValue("val12")).isEqualTo(0.0F);
assertThat(put.getValueAsObject("val12")).isNull();
assertThat(put.containsColumn("val13")).isTrue();
assertThat(put.isNullValue("val13")).isTrue();
assertThat(put.getDoubleValue("val13")).isEqualTo(0.0);
assertThat(put.getValueAsObject("val13")).isNull();
assertThat(put.containsColumn("val14")).isTrue();
assertThat(put.isNullValue("val14")).isTrue();
assertThat(put.getTextValue("val14")).isNull();
assertThat(put.getValueAsObject("val14")).isNull();
assertThat(put.containsColumn("val15")).isTrue();
assertThat(put.isNullValue("val15")).isTrue();
assertThat(put.getBlobValue("val15")).isNull();
assertThat(put.getValueAsObject("val15")).isNull();
assertThat(put.containsColumn("val16")).isTrue();
assertThat(put.isNullValue("val16")).isTrue();
assertThat(put.getBlobValue("val16")).isNull();
assertThat(put.getValueAsObject("val16")).isNull();
}
Aggregations