Search in sources :

Example 36 with Value

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();
}
Also used : Value(com.scalar.db.io.Value) BigIntValue(com.scalar.db.io.BigIntValue) Result(com.scalar.db.api.Result) Test(org.junit.jupiter.api.Test)

Example 37 with Value

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));
}
Also used : TextValue(com.scalar.db.io.TextValue) IntValue(com.scalar.db.io.IntValue) TextValue(com.scalar.db.io.TextValue) Value(com.scalar.db.io.Value) IntValue(com.scalar.db.io.IntValue) Put(com.scalar.db.api.Put) Key(com.scalar.db.io.Key) Test(org.junit.jupiter.api.Test)

Example 38 with Value

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));
}
Also used : IntValue(com.scalar.db.io.IntValue) TextValue(com.scalar.db.io.TextValue) Value(com.scalar.db.io.Value) Result(com.scalar.db.api.Result) Test(org.junit.jupiter.api.Test)

Example 39 with Value

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);
}
Also used : Value(com.scalar.db.io.Value) Key(com.scalar.db.io.Key) Test(org.junit.jupiter.api.Test)

Example 40 with Value

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();
}
Also used : ByteBuffer(java.nio.ByteBuffer) BlobValue(com.scalar.db.io.BlobValue) DoubleValue(com.scalar.db.io.DoubleValue) IntColumn(com.scalar.db.io.IntColumn) BooleanColumn(com.scalar.db.io.BooleanColumn) TextColumn(com.scalar.db.io.TextColumn) DoubleColumn(com.scalar.db.io.DoubleColumn) BigIntColumn(com.scalar.db.io.BigIntColumn) FloatColumn(com.scalar.db.io.FloatColumn) Column(com.scalar.db.io.Column) BlobColumn(com.scalar.db.io.BlobColumn) TextValue(com.scalar.db.io.TextValue) BooleanValue(com.scalar.db.io.BooleanValue) IntValue(com.scalar.db.io.IntValue) DoubleValue(com.scalar.db.io.DoubleValue) TextValue(com.scalar.db.io.TextValue) Value(com.scalar.db.io.Value) FloatValue(com.scalar.db.io.FloatValue) BigIntValue(com.scalar.db.io.BigIntValue) BlobValue(com.scalar.db.io.BlobValue) BooleanValue(com.scalar.db.io.BooleanValue) FloatValue(com.scalar.db.io.FloatValue) IntValue(com.scalar.db.io.IntValue) BigIntValue(com.scalar.db.io.BigIntValue) BigIntValue(com.scalar.db.io.BigIntValue) Test(org.junit.jupiter.api.Test)

Aggregations

Value (com.scalar.db.io.Value)85 Test (org.junit.jupiter.api.Test)50 TextValue (com.scalar.db.io.TextValue)36 IntValue (com.scalar.db.io.IntValue)34 Put (com.scalar.db.api.Put)31 BooleanValue (com.scalar.db.io.BooleanValue)30 DoubleValue (com.scalar.db.io.DoubleValue)30 Key (com.scalar.db.io.Key)30 Result (com.scalar.db.api.Result)19 BigIntValue (com.scalar.db.io.BigIntValue)18 DataType (com.scalar.db.io.DataType)18 Order (com.scalar.db.api.Scan.Ordering.Order)16 Test (org.junit.Test)14 MutationCondition (com.scalar.db.api.MutationCondition)12 ArrayList (java.util.ArrayList)12 BlobValue (com.scalar.db.io.BlobValue)10 FloatValue (com.scalar.db.io.FloatValue)10 Scan (com.scalar.db.api.Scan)8 ExecutionException (com.scalar.db.exception.storage.ExecutionException)8 HashSet (java.util.HashSet)8