use of com.scalar.db.api.Scan in project scalardb by scalar-labs.
the class JdbcServiceTest method whenGetScannerExecuted_withScan_shouldCallQueryBuilder.
@Test
@SuppressFBWarnings("OBL_UNSATISFIED_OBLIGATION")
public void whenGetScannerExecuted_withScan_shouldCallQueryBuilder() throws Exception {
// Arrange
when(queryBuilder.select(any())).thenReturn(selectQueryBuilder);
when(selectQueryBuilder.from(any(), any(), any())).thenReturn(selectQueryBuilder);
when(selectQueryBuilder.where(any(), any(), anyBoolean(), any(), anyBoolean())).thenReturn(selectQueryBuilder);
when(selectQueryBuilder.orderBy(any())).thenReturn(selectQueryBuilder);
when(selectQueryBuilder.limit(anyInt())).thenReturn(selectQueryBuilder);
when(selectQueryBuilder.build()).thenReturn(selectQuery);
when(connection.prepareStatement(any())).thenReturn(preparedStatement);
when(preparedStatement.executeQuery()).thenReturn(resultSet);
when(resultSet.next()).thenReturn(false);
// Act
Scan scan = new Scan(new Key("p1", "val")).forNamespace(NAMESPACE).forTable(TABLE);
jdbcService.getScanner(scan, connection);
// Assert
verify(operationChecker).check(any(Scan.class));
verify(queryBuilder).select(any());
}
use of com.scalar.db.api.Scan in project scalardb by scalar-labs.
the class MultiStorageTest method whenScanDataFromTable1InNamespace2_DataShouldBeScannedFromStorage2.
@Test
public void whenScanDataFromTable1InNamespace2_DataShouldBeScannedFromStorage2() throws ExecutionException {
// Arrange
String namespace = NAMESPACE2;
String table = TABLE1;
Key partitionKey = new Key(COL_NAME1, 1);
Scan scan = new Scan(partitionKey).forNamespace(namespace).forTable(table);
// Act
multiStorage.scan(scan);
// Assert
verify(storage2).scan(any(Scan.class));
}
use of com.scalar.db.api.Scan in project scalardb by scalar-labs.
the class MultiStorageTest method whenScanDataFromTable2_DataShouldBeScannedFromStorage2.
@Test
public void whenScanDataFromTable2_DataShouldBeScannedFromStorage2() throws ExecutionException {
String namespace = NAMESPACE1;
String table = TABLE2;
Key partitionKey = new Key(COL_NAME1, 1);
Scan scan = new Scan(partitionKey).forNamespace(namespace).forTable(table);
// Act
multiStorage.scan(scan);
// Assert
verify(storage2).scan(any(Scan.class));
}
use of com.scalar.db.api.Scan in project scalardb by scalar-labs.
the class ConsensusCommitTest method scan_ScanGiven_ShouldCallCrudHandlerScan.
@Test
public void scan_ScanGiven_ShouldCallCrudHandlerScan() throws CrudException {
// Arrange
Scan scan = prepareScan();
TransactionResult result = mock(TransactionResult.class);
List<Result> results = Collections.singletonList(result);
when(crud.scan(scan)).thenReturn(results);
// Act Assert
List<Result> actual = consensus.scan(scan);
// Assert
assertThat(actual.size()).isEqualTo(1);
verify(crud).scan(scan);
}
use of com.scalar.db.api.Scan in project scalardb by scalar-labs.
the class CrudHandlerTest method scan_PreparedResultGivenFromStorage_ShouldNeverUpdateSnapshotThrowUncommittedRecordException.
@Test
public void scan_PreparedResultGivenFromStorage_ShouldNeverUpdateSnapshotThrowUncommittedRecordException() throws ExecutionException {
// Arrange
Scan scan = prepareScan();
result = prepareResult(TransactionState.PREPARED);
when(scanner.iterator()).thenReturn(Collections.singletonList(result).iterator());
when(storage.scan(scan)).thenReturn(scanner);
// Act
assertThatThrownBy(() -> handler.scan(scan)).isInstanceOf(UncommittedRecordException.class);
// Assert
verify(snapshot, never()).put(any(Snapshot.Key.class), ArgumentMatchers.<Optional<TransactionResult>>any());
}
Aggregations