use of com.scalar.db.io.Key in project scalardb by scalar-labs.
the class StorageWithReservedKeywordIntegrationTestBase method delete_WithReservedKeywordAndDeleteWithPartitionKeyAndClusteringKeyGiven_ShouldDeleteSingleRecordProperly.
@Test
public void delete_WithReservedKeywordAndDeleteWithPartitionKeyAndClusteringKeyGiven_ShouldDeleteSingleRecordProperly() throws IOException, ExecutionException {
// Arrange
populateRecords();
int pKey = 0;
int cKey = 0;
Key partitionKey = new Key(columnName1, pKey);
// Act
Delete delete = prepareDelete(pKey, cKey);
assertThatCode(() -> storage.delete(delete)).doesNotThrowAnyException();
// Assert
List<Result> results = scanAll(new Scan(partitionKey));
assertThat(results.size()).isEqualTo(2);
assertThat(results.get(0).getValue(columnName1).isPresent()).isTrue();
assertThat(results.get(0).getValue(columnName1).get().getAsInt()).isEqualTo(0);
assertThat(results.get(0).getValue(columnName4).isPresent()).isTrue();
assertThat(results.get(0).getValue(columnName4).get().getAsInt()).isEqualTo(cKey + 1);
assertThat(results.get(1).getValue(columnName1).isPresent()).isTrue();
assertThat(results.get(1).getValue(columnName1).get().getAsInt()).isEqualTo(0);
assertThat(results.get(1).getValue(columnName4).isPresent()).isTrue();
assertThat(results.get(1).getValue(columnName4).get().getAsInt()).isEqualTo(cKey + 2);
}
use of com.scalar.db.io.Key in project scalardb by scalar-labs.
the class StorageWithReservedKeywordIntegrationTestBase method delete_WithReservedKeywordAndMultipleDeleteWithDifferentConditionsGiven_ShouldDeleteProperly.
@Test
public void delete_WithReservedKeywordAndMultipleDeleteWithDifferentConditionsGiven_ShouldDeleteProperly() throws IOException, ExecutionException {
// Arrange
List<Put> puts = preparePuts();
List<Delete> deletes = prepareDeletes();
storage.mutate(Arrays.asList(puts.get(0), puts.get(1), puts.get(2)));
deletes.get(0).withCondition(new DeleteIfExists());
deletes.get(1).withCondition(new DeleteIf(new ConditionalExpression(columnName2, new TextValue("1"), ConditionalExpression.Operator.EQ)));
// Act
assertThatCode(() -> storage.delete(Arrays.asList(deletes.get(0), deletes.get(1), deletes.get(2)))).doesNotThrowAnyException();
// Assert
List<Result> results = scanAll(new Scan(new Key(columnName1, 0)));
assertThat(results.size()).isEqualTo(0);
}
use of com.scalar.db.io.Key in project scalardb by scalar-labs.
the class StorageWithReservedKeywordIntegrationTestBase method put_WithReservedKeywordAndMultiplePutGiven_ShouldStoreProperly.
@Test
public void put_WithReservedKeywordAndMultiplePutGiven_ShouldStoreProperly() throws IOException, ExecutionException {
// Arrange
int pKey = 0;
int cKey = 0;
List<Put> puts = preparePuts();
Scan scan = new Scan(new Key(columnName1, pKey));
// Act
assertThatCode(() -> storage.put(Arrays.asList(puts.get(0), puts.get(1), puts.get(2)))).doesNotThrowAnyException();
// Assert
List<Result> results = scanAll(scan);
assertThat(results.size()).isEqualTo(3);
assertThat(results.get(0).getValue(columnName1).isPresent()).isTrue();
assertThat(results.get(0).getValue(columnName1).get().getAsInt()).isEqualTo(0);
assertThat(results.get(0).getValue(columnName4).isPresent()).isTrue();
assertThat(results.get(0).getValue(columnName4).get().getAsInt()).isEqualTo(pKey + cKey);
assertThat(results.get(1).getValue(columnName1).isPresent()).isTrue();
assertThat(results.get(1).getValue(columnName1).get().getAsInt()).isEqualTo(0);
assertThat(results.get(1).getValue(columnName4).isPresent()).isTrue();
assertThat(results.get(1).getValue(columnName4).get().getAsInt()).isEqualTo(pKey + cKey + 1);
assertThat(results.get(2).getValue(columnName1).isPresent()).isTrue();
assertThat(results.get(2).getValue(columnName1).get().getAsInt()).isEqualTo(0);
assertThat(results.get(2).getValue(columnName4).isPresent()).isTrue();
assertThat(results.get(2).getValue(columnName4).get().getAsInt()).isEqualTo(pKey + cKey + 2);
}
use of com.scalar.db.io.Key in project scalardb by scalar-labs.
the class StorageWithReservedKeywordIntegrationTestBase method prepareDeletes.
private List<Delete> prepareDeletes() {
List<Delete> deletes = new ArrayList<>();
IntStream.range(0, 5).forEach(i -> IntStream.range(0, 3).forEach(j -> {
Key partitionKey = new Key(columnName1, i);
Key clusteringKey = new Key(columnName4, j);
Delete delete = new Delete(partitionKey, clusteringKey);
deletes.add(delete);
}));
return deletes;
}
use of com.scalar.db.io.Key in project scalardb by scalar-labs.
the class StorageWithReservedKeywordIntegrationTestBase method scan_ScanWithReservedKeywordAndProjectionsGiven_ShouldRetrieveSpecifiedValues.
@Test
public void scan_ScanWithReservedKeywordAndProjectionsGiven_ShouldRetrieveSpecifiedValues() throws IOException, ExecutionException {
// Arrange
populateRecords();
int pKey = 0;
// Act
Scan scan = new Scan(new Key(columnName1, pKey)).withProjection(columnName1).withProjection(columnName2).withProjection(columnName3);
List<Result> actual = scanAll(scan);
// Assert
assertThat(actual.size()).isEqualTo(3);
assertThat(actual.get(0).getValue(columnName1).isPresent()).isTrue();
assertThat(actual.get(0).getValue(columnName1).get().getAsInt()).isEqualTo(0);
assertThat(actual.get(0).getValue(columnName4).isPresent()).isTrue();
assertThat(actual.get(0).getValue(columnName4).get().getAsInt()).isEqualTo(0);
assertThat(actual.get(1).getValue(columnName1).isPresent()).isTrue();
assertThat(actual.get(1).getValue(columnName1).get().getAsInt()).isEqualTo(0);
assertThat(actual.get(1).getValue(columnName4).isPresent()).isTrue();
assertThat(actual.get(1).getValue(columnName4).get().getAsInt()).isEqualTo(1);
assertThat(actual.get(2).getValue(columnName1).isPresent()).isTrue();
assertThat(actual.get(2).getValue(columnName1).get().getAsInt()).isEqualTo(0);
assertThat(actual.get(2).getValue(columnName4).isPresent()).isTrue();
assertThat(actual.get(2).getValue(columnName4).get().getAsInt()).isEqualTo(2);
actual.forEach(a -> {
assertThat(a.getValue(columnName1).isPresent()).isTrue();
assertThat(a.getValue(columnName2).isPresent()).isTrue();
assertThat(a.getValue(columnName3).isPresent()).isTrue();
// since it's clustering key
assertThat(a.getValue(columnName4).isPresent()).isTrue();
assertThat(a.getValue(columnName5).isPresent()).isFalse();
});
}
Aggregations