use of com.scalar.db.api.Result 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.api.Result in project scalardb by scalar-labs.
the class StorageWithReservedKeywordIntegrationTestBase method get_GetWithReservedKeywordAndPartitionKeyAndClusteringKeyGiven_ShouldRetrieveSingleResult.
@Test
public void get_GetWithReservedKeywordAndPartitionKeyAndClusteringKeyGiven_ShouldRetrieveSingleResult() throws ExecutionException {
// Arrange
populateRecords();
int pKey = 0;
// Act
Get get = prepareGet(pKey, 0);
Optional<Result> actual = storage.get(get);
// Assert
assertThat(actual.isPresent()).isTrue();
assertThat(actual.get().getValue(columnName1)).isEqualTo(Optional.of(new IntValue(columnName1, pKey)));
assertThat(actual.get().getValue(columnName4)).isEqualTo(Optional.of(new IntValue(columnName4, 0)));
}
use of com.scalar.db.api.Result 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();
});
}
use of com.scalar.db.api.Result in project scalardb by scalar-labs.
the class ConsensusCommitIntegrationTestBase method get_DeleteCalledBefore_ShouldReturnEmpty.
@Test
public void get_DeleteCalledBefore_ShouldReturnEmpty() throws CommitException, UnknownTransactionStatusException, CrudException {
// Arrange
ConsensusCommit transaction = manager.start();
transaction.put(preparePut(0, 0, namespace1, TABLE_1).withValue(BALANCE, 1));
transaction.commit();
// Act
ConsensusCommit transaction1 = manager.start();
Get get = prepareGet(0, 0, namespace1, TABLE_1);
Optional<Result> resultBefore = transaction1.get(get);
transaction1.delete(prepareDelete(0, 0, namespace1, TABLE_1));
Optional<Result> resultAfter = transaction1.get(get);
assertThatCode(transaction1::commit).doesNotThrowAnyException();
// Assert
assertThat(resultBefore.isPresent()).isTrue();
assertThat(resultAfter.isPresent()).isFalse();
}
use of com.scalar.db.api.Result in project scalardb by scalar-labs.
the class ConsensusCommitIntegrationTestBase method delete_PutCalledBefore_ShouldDelete.
@Test
public void delete_PutCalledBefore_ShouldDelete() throws CommitException, UnknownTransactionStatusException, CrudException {
// Arrange
ConsensusCommit transaction = manager.start();
transaction.put(preparePut(0, 0, namespace1, TABLE_1).withValue(BALANCE, 1));
transaction.commit();
// Act
ConsensusCommit transaction1 = manager.start();
Get get = prepareGet(0, 0, namespace1, TABLE_1);
Optional<Result> resultBefore = transaction1.get(get);
transaction1.put(preparePut(0, 0, namespace1, TABLE_1).withValue(BALANCE, 2));
transaction1.delete(prepareDelete(0, 0, namespace1, TABLE_1));
assertThatCode(transaction1::commit).doesNotThrowAnyException();
// Assert
ConsensusCommit transaction2 = manager.start();
Optional<Result> resultAfter = transaction2.get(get);
transaction2.commit();
assertThat(resultBefore.isPresent()).isTrue();
assertThat(resultAfter.isPresent()).isFalse();
}
Aggregations