use of com.scalar.db.api.Get in project scalardb by scalar-labs.
the class StorageIntegrationTestBase method operation_NoTargetGiven_ShouldThrowIllegalArgumentException.
@Test
public void operation_NoTargetGiven_ShouldThrowIllegalArgumentException() {
// Arrange
storage.with(null, TABLE);
Key partitionKey = new Key(COL_NAME1, 0);
Key clusteringKey = new Key(COL_NAME4, 0);
Get get = new Get(partitionKey, clusteringKey);
// Act Assert
assertThatThrownBy(() -> storage.get(get)).isInstanceOf(IllegalArgumentException.class);
}
use of com.scalar.db.api.Get in project scalardb by scalar-labs.
the class StorageIntegrationTestBase method operation_WrongTableGiven_ShouldThrowIllegalArgumentException.
@Test
public void operation_WrongTableGiven_ShouldThrowIllegalArgumentException() {
// Arrange
// a wrong table
storage.with(namespace, "wrong_" + TABLE);
Key partitionKey = new Key(COL_NAME1, 0);
Key clusteringKey = new Key(COL_NAME4, 0);
Get get = new Get(partitionKey, clusteringKey);
// Act Assert
assertThatThrownBy(() -> storage.get(get)).isInstanceOf(IllegalArgumentException.class);
}
use of com.scalar.db.api.Get in project scalardb by scalar-labs.
the class StorageIntegrationTestBase method put_PutWithoutValuesGivenTwice_ShouldStoreProperly.
@Test
public void put_PutWithoutValuesGivenTwice_ShouldStoreProperly() throws ExecutionException {
// Arrange
Key partitionKey = new Key(COL_NAME1, 0);
Key clusteringKey = new Key(COL_NAME4, 0);
// Act
assertThatCode(() -> storage.put(new Put(partitionKey, clusteringKey))).doesNotThrowAnyException();
assertThatCode(() -> storage.put(new Put(partitionKey, clusteringKey))).doesNotThrowAnyException();
// Assert
Optional<Result> result = storage.get(new Get(partitionKey, clusteringKey));
assertThat(result).isPresent();
}
use of com.scalar.db.api.Get in project scalardb by scalar-labs.
the class StorageIntegrationTestBase method get_GetWithProjectionsGiven_ShouldRetrieveSpecifiedValues.
@Test
public void get_GetWithProjectionsGiven_ShouldRetrieveSpecifiedValues() throws ExecutionException {
// Arrange
populateRecords();
int pKey = 0;
int cKey = 0;
// Act
Get get = prepareGet(pKey, cKey);
get.withProjection(COL_NAME1).withProjection(COL_NAME2).withProjection(COL_NAME3);
Optional<Result> actual = storage.get(get);
// Assert
assertThat(actual.isPresent()).isTrue();
assertThat(actual.get().getValue(COL_NAME1)).isEqualTo(Optional.of(new IntValue(COL_NAME1, pKey)));
assertThat(actual.get().getValue(COL_NAME2)).isEqualTo(Optional.of(new TextValue(COL_NAME2, Integer.toString(pKey + cKey))));
assertThat(actual.get().getValue(COL_NAME3)).isEqualTo(Optional.of(new IntValue(COL_NAME3, pKey + cKey)));
// since it's clustering key
assertThat(actual.get().getValue(COL_NAME4).isPresent()).isTrue();
assertThat(actual.get().getValue(COL_NAME5).isPresent()).isFalse();
}
use of com.scalar.db.api.Get in project scalardb by scalar-labs.
the class StorageIntegrationTestBase method put_PutWithIfExistsGivenWhenSuchRecordExists_ShouldUpdateRecord.
@Test
public void put_PutWithIfExistsGivenWhenSuchRecordExists_ShouldUpdateRecord() throws ExecutionException {
// Arrange
int pKey = 0;
int cKey = 0;
List<Put> puts = preparePuts();
Get get = prepareGet(pKey, cKey);
// Act Assert
storage.put(puts.get(0));
puts.get(0).withCondition(new PutIfExists());
puts.get(0).withValue(COL_NAME3, Integer.MAX_VALUE);
assertThatCode(() -> storage.put(puts.get(0))).doesNotThrowAnyException();
// Assert
Optional<Result> actual = storage.get(get);
assertThat(actual.isPresent()).isTrue();
Result result = actual.get();
assertThat(result.getValue(COL_NAME1)).isEqualTo(Optional.of(new IntValue(COL_NAME1, pKey)));
assertThat(result.getValue(COL_NAME4)).isEqualTo(Optional.of(new IntValue(COL_NAME4, cKey)));
assertThat(result.getValue(COL_NAME3)).isEqualTo(Optional.of(new IntValue(COL_NAME3, Integer.MAX_VALUE)));
}
Aggregations