use of com.scalar.db.api.ScanAll in project scalardb by scalar-labs.
the class SelectStatementHandlerTest method prepare_ScanAllOperationWithoutLimit_ShouldPrepareProperQuery.
@Test
public void prepare_ScanAllOperationWithoutLimit_ShouldPrepareProperQuery() {
// Arrange
String expected = Joiner.on(" ").skipNulls().join(new String[] { "SELECT * FROM", ANY_NAMESPACE_NAME + "." + ANY_TABLE_NAME + ";" });
configureBehavior(expected);
ScanAll scanAll = prepareScanAll();
// Act
handler.prepare(scanAll);
// Assert
verify(session).prepare(expected);
}
use of com.scalar.db.api.ScanAll in project scalardb by scalar-labs.
the class SelectStatementHandlerTest method prepare_ScanAllOperationWithProjectedColumns_ShouldPrepareProperQuery.
@Test
public void prepare_ScanAllOperationWithProjectedColumns_ShouldPrepareProperQuery() {
// Arrange
String expected = Joiner.on(" ").skipNulls().join(new String[] { "SELECT", ANY_NAME_1 + "," + ANY_NAME_2, "FROM", ANY_NAMESPACE_NAME + "." + ANY_TABLE_NAME + ";" });
configureBehavior(expected);
ScanAll scanAll = prepareScanAll().withProjections(Arrays.asList(ANY_NAME_1, ANY_NAME_2));
// Act
handler.prepare(scanAll);
// Assert
verify(session).prepare(expected);
}
use of com.scalar.db.api.ScanAll in project scalardb by scalar-labs.
the class OperationCheckerTest method whenCheckingScanAllOperationWithNegativeLimitNumber_shouldThrowIllegalArgumentException.
@Test
public void whenCheckingScanAllOperationWithNegativeLimitNumber_shouldThrowIllegalArgumentException() {
// Arrange
List<String> projections = Arrays.asList(COL1, COL2, COL3);
int limit = -10;
ScanAll scanAll = new ScanAll().withProjections(projections).withLimit(limit).forNamespace(NAMESPACE).forTable(TABLE_NAME);
// Act Assert
assertThatThrownBy(() -> operationChecker.check(scanAll)).isInstanceOf(IllegalArgumentException.class);
}
use of com.scalar.db.api.ScanAll in project scalardb by scalar-labs.
the class SelectStatementHandlerTest method prepare_ScanAllOperationWithProjectedColumns_ShouldPrepareProperQuery.
@Test
public void prepare_ScanAllOperationWithProjectedColumns_ShouldPrepareProperQuery() {
// Arrange
when(client.scan(any(ScanRequest.class))).thenReturn(scanResponse);
when(scanResponse.items()).thenReturn(Collections.singletonList(new HashMap<>()));
ScanAll scanAll = prepareScanAll().withProjection(ANY_NAME_1).withProjection(ANY_NAME_2).forNamespace(ANY_NAMESPACE_NAME).forTable(ANY_TABLE_NAME);
Map<String, String> expectedExpressionAttributeNames = new HashMap<>();
expectedExpressionAttributeNames.put(DynamoOperation.COLUMN_NAME_ALIAS + "0", ANY_NAME_1);
expectedExpressionAttributeNames.put(DynamoOperation.COLUMN_NAME_ALIAS + "1", ANY_NAME_2);
// Act Assert
assertThatCode(() -> handler.handle(scanAll)).doesNotThrowAnyException();
// Assert
ArgumentCaptor<ScanRequest> captor = ArgumentCaptor.forClass(ScanRequest.class);
verify(client).scan(captor.capture());
ScanRequest actualRequest = captor.getValue();
assertThat(actualRequest.expressionAttributeNames()).isEqualTo(expectedExpressionAttributeNames);
assertThat(actualRequest.projectionExpression()).isEqualTo(DynamoOperation.COLUMN_NAME_ALIAS + "0," + DynamoOperation.COLUMN_NAME_ALIAS + "1");
}
use of com.scalar.db.api.ScanAll in project scalardb by scalar-labs.
the class SelectStatementHandlerTest method prepare_ScanAllOperationWithoutLimit_ShouldPrepareProperQuery.
@Test
public void prepare_ScanAllOperationWithoutLimit_ShouldPrepareProperQuery() {
// Arrange
when(client.scan(any(ScanRequest.class))).thenReturn(scanResponse);
when(scanResponse.items()).thenReturn(Collections.singletonList(new HashMap<>()));
ScanAll scanAll = prepareScanAll();
// Act Assert
assertThatCode(() -> handler.handle(scanAll)).doesNotThrowAnyException();
// Assert
ArgumentCaptor<ScanRequest> captor = ArgumentCaptor.forClass(ScanRequest.class);
verify(client).scan(captor.capture());
ScanRequest actualRequest = captor.getValue();
assertThat(actualRequest.limit()).isEqualTo(null);
}
Aggregations