use of com.scalar.db.io.Value in project scalardb by scalar-labs.
the class DistributedStorageSingleClusteringKeyScanIntegrationTestBase method scan_WithoutClusteringKeyRange_ShouldReturnProperResult.
@Test
public void scan_WithoutClusteringKeyRange_ShouldReturnProperResult() throws ExecutionException, IOException {
for (DataType clusteringKeyType : clusteringKeyTypes) {
for (Order clusteringOrder : Order.values()) {
truncateTable(clusteringKeyType, clusteringOrder);
List<Value<?>> clusteringKeyValues = prepareRecords(clusteringKeyType, clusteringOrder);
for (OrderingType orderingType : OrderingType.values()) {
for (boolean withLimit : Arrays.asList(false, true)) {
scan_WithoutClusteringKeyRange_ShouldReturnProperResult(clusteringKeyValues, clusteringKeyType, clusteringOrder, orderingType, withLimit);
}
}
}
}
}
use of com.scalar.db.io.Value in project scalardb by scalar-labs.
the class DistributedStorageSingleClusteringKeyScanIntegrationTestBase method scan_WithClusteringKeyRangeWithSameValues_ShouldReturnProperResult.
@Test
public void scan_WithClusteringKeyRangeWithSameValues_ShouldReturnProperResult() throws ExecutionException, IOException {
for (DataType clusteringKeyType : clusteringKeyTypes) {
for (Order clusteringOrder : Order.values()) {
truncateTable(clusteringKeyType, clusteringOrder);
List<Value<?>> clusteringKeyValues = prepareRecords(clusteringKeyType, clusteringOrder);
for (boolean startInclusive : Arrays.asList(true, false)) {
for (boolean endInclusive : Arrays.asList(true, false)) {
for (OrderingType orderingType : OrderingType.values()) {
for (boolean withLimit : Arrays.asList(false, true)) {
scan_WithClusteringKeyRangeWithSameValues_ShouldReturnProperResult(clusteringKeyValues, clusteringKeyType, clusteringOrder, startInclusive, endInclusive, orderingType, withLimit);
}
}
}
}
}
}
}
use of com.scalar.db.io.Value in project scalardb by scalar-labs.
the class DistributedStorageSingleClusteringKeyScanIntegrationTestBase method scan_WithClusteringKeyRangeWithMinAndMaxValue_ShouldReturnProperResult.
@Test
public void scan_WithClusteringKeyRangeWithMinAndMaxValue_ShouldReturnProperResult() throws ExecutionException, IOException {
for (DataType clusteringKeyType : clusteringKeyTypes) {
for (Order clusteringOrder : Order.values()) {
truncateTable(clusteringKeyType, clusteringOrder);
List<Value<?>> clusteringKeyValues = prepareRecords(clusteringKeyType, clusteringOrder);
for (boolean startInclusive : Arrays.asList(true, false)) {
for (boolean endInclusive : Arrays.asList(true, false)) {
for (OrderingType orderingType : OrderingType.values()) {
for (boolean withLimit : Arrays.asList(false, true)) {
scan_WithClusteringKeyRangeWithMinAndMaxValue_ShouldReturnProperResult(clusteringKeyValues, clusteringKeyType, clusteringOrder, startInclusive, endInclusive, orderingType, withLimit);
}
}
}
}
}
}
}
use of com.scalar.db.io.Value in project scalardb by scalar-labs.
the class DistributedStorageSinglePartitionKeyIntegrationTestBase method getAndScanAndDelete_ShouldBehaveCorrectly.
@Test
public void getAndScanAndDelete_ShouldBehaveCorrectly() throws ExecutionException, IOException {
for (DataType partitionKeyType : partitionKeyTypes) {
truncateTable(partitionKeyType);
List<Value<?>> partitionKeyValues = prepareRecords(partitionKeyType);
String description = description(partitionKeyType);
// for get
for (Value<?> partitionKeyValue : partitionKeyValues) {
// Arrange
Get get = prepareGet(partitionKeyType, partitionKeyValue);
// Act
Optional<Result> result = storage.get(get);
// Assert
assertThat(result).describedAs(description).isPresent();
assertThat(result.get().getValue(PARTITION_KEY).isPresent()).describedAs(description).isTrue();
assertThat(result.get().getValue(PARTITION_KEY).get()).describedAs(description).isEqualTo(partitionKeyValue);
assertThat(result.get().getValue(COL_NAME).isPresent()).describedAs(description).isTrue();
assertThat(result.get().getValue(COL_NAME).get().getAsInt()).describedAs(description).isEqualTo(1);
}
// for scan
for (Value<?> partitionKeyValue : partitionKeyValues) {
// Arrange
Scan scan = prepareScan(partitionKeyType, partitionKeyValue);
// Act Assert
try (Scanner scanner = storage.scan(scan)) {
Optional<Result> result = scanner.one();
assertThat(result).describedAs(description).isPresent();
assertThat(result.get().getValue(PARTITION_KEY).isPresent()).describedAs(description).isTrue();
assertThat(result.get().getValue(PARTITION_KEY).get()).describedAs(description).isEqualTo(partitionKeyValue);
assertThat(result.get().getValue(COL_NAME).isPresent()).describedAs(description).isTrue();
assertThat(result.get().getValue(COL_NAME).get().getAsInt()).describedAs(description).isEqualTo(1);
assertThat(scanner.one()).isNotPresent();
}
}
// for delete
for (Value<?> partitionKeyValue : partitionKeyValues) {
// Arrange
Delete delete = prepareDelete(partitionKeyType, partitionKeyValue);
// Act
storage.delete(delete);
// Assert
Optional<Result> result = storage.get(prepareGet(partitionKeyType, partitionKeyValue));
assertThat(result).describedAs(description).isNotPresent();
}
}
}
use of com.scalar.db.io.Value in project scalardb by scalar-labs.
the class ResultInterpreterTest method interpret_ShouldReturnWhatsSetWithNullValues.
@Test
public void interpret_ShouldReturnWhatsSetWithNullValues() {
// Arrange
Map<String, AttributeValue> item = new HashMap<>();
item.put(DynamoOperation.PARTITION_KEY, AttributeValue.builder().s(ANY_TEXT_1).build());
item.put(ANY_NAME_1, AttributeValue.builder().s(ANY_TEXT_1).build());
item.put(ANY_NAME_2, AttributeValue.builder().s(ANY_TEXT_2).build());
item.put(ANY_COLUMN_NAME_1, AttributeValue.builder().nul(true).build());
item.put(ANY_COLUMN_NAME_2, AttributeValue.builder().nul(true).build());
item.put(ANY_COLUMN_NAME_3, AttributeValue.builder().nul(true).build());
item.put(ANY_COLUMN_NAME_4, AttributeValue.builder().nul(true).build());
item.put(ANY_COLUMN_NAME_5, AttributeValue.builder().nul(true).build());
item.put(ANY_COLUMN_NAME_6, AttributeValue.builder().nul(true).build());
item.put(ANY_COLUMN_NAME_7, AttributeValue.builder().nul(true).build());
List<String> projections = Collections.emptyList();
ResultInterpreter spy = spy(new ResultInterpreter(projections, TABLE_METADATA));
// Act
Result result = spy.interpret(item);
// 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();
}
Aggregations