Skip to content

Commit

Permalink
refactor GetTableMetadata test
Browse files Browse the repository at this point in the history
  • Loading branch information
t-horikawa committed Feb 10, 2025
1 parent bf447c4 commit 2f63ccc
Show file tree
Hide file tree
Showing 3 changed files with 52 additions and 96 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -111,20 +111,6 @@ public FutureResponse<? extends Response> send(int serviceID, byte[] byteArray)
case ROLLBACK:
nextResponse = ProtosForTest.ResultOnlyResponseChecker.builder().build();
break;
case EXPLAIN:
nextResponse = ProtosForTest.ExplainResponseChecker.builder().build();
break;
case DESCRIBE_TABLE:
nextResponse = SqlResponse.Response.newBuilder()
.setDescribeTable(SqlResponse.DescribeTable.newBuilder()
.setSuccess(SqlResponse.DescribeTable.Success.newBuilder()
.setDatabaseName("D")
.setSchemaName("S")
.setTableName(request.getDescribeTable().getName())
.addColumns(Types.column("a", Types.of(int.class)))
)
).build();
break;
case DISPOSE_TRANSACTION:
nextResponse = SqlResponse.Response.newBuilder()
.setDisposeTransaction(SqlResponse.DisposeTransaction.newBuilder()
Expand Down Expand Up @@ -285,18 +271,6 @@ void usePreparedStatementAfterSessionClose() throws Exception {
assertEquals("already closed", e2.getMessage());
}

@Test
void getTableMetadata() throws Exception {
var session = new SessionImpl();
session.connect(new SessionWireMock());
var sqlClient = SqlClient.attach(session);

var info = sqlClient.getTableMetadata("TBL").await();
assertEquals(Optional.of("D"), info.getDatabaseName());
assertEquals(Optional.of("S"), info.getSchemaName());
assertEquals("TBL", info.getTableName());
}

@Test
void requestCancel() throws Exception {
var session = new SessionImpl();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1752,4 +1752,56 @@ void sendDisposeTransactionEngineError() throws Exception {
}
assertFalse(wire.hasRemaining());
}

@Test
void sendGetTableMetadataSuccess() throws Exception {
wire.next(accepts(SqlRequest.Request.RequestCase.DESCRIBE_TABLE,
RequestHandler.returns(SqlResponse.DescribeTable.newBuilder()
.setSuccess(SqlResponse.DescribeTable.Success.newBuilder()
.setDatabaseName("D")
.setSchemaName("S")
.setTableName("TBL")
.addColumns(Types.column("a", Types.of(int.class))))
.build())));

var message = SqlRequest.DescribeTable.newBuilder()
.setName("TBL")
.build();
try (
var service = new SqlServiceStub(session);
var future = service.send(message);
) {

var result = future.get();
assertEquals(Optional.of("D"), result.getDatabaseName());
assertEquals(Optional.of("S"), result.getSchemaName());
assertEquals("TBL", result.getTableName());
var columns = result.getColumns();
assertEquals(1, columns.size());
var column = columns.get(0);
assertEquals("a", column.getName());
assertEquals(SqlCommon.Column.TypeInfoCase.ATOM_TYPE, column.getTypeInfoCase());
assertEquals(SqlCommon.AtomType.INT4, column.getAtomType());
}
assertFalse(wire.hasRemaining());
}

@Test
void sendGetTableMetadataEngineError() throws Exception {
wire.next(accepts(SqlRequest.Request.RequestCase.DESCRIBE_TABLE,
RequestHandler.returns(SqlResponse.DescribeTable.newBuilder()
.setError(newEngineError())
.build())));

var message = SqlRequest.DescribeTable.newBuilder()
.build();
try (
var service = new SqlServiceStub(session);
var future = service.send(message);
) {
var error = assertThrows(SqlServiceException.class, () -> future.await());
assertEquals(SqlServiceCode.SQL_SERVICE_EXCEPTION, error.getDiagnosticCode());
}
assertFalse(wire.hasRemaining());
}
}

This file was deleted.

0 comments on commit 2f63ccc

Please sign in to comment.