Skip to content

Commit 5b36407

Browse files
committed
Added UTs
1 parent 2e3cc90 commit 5b36407

2 files changed

Lines changed: 47 additions & 1 deletion

File tree

document-store/src/main/java/org/hypertrace/core/documentstore/postgres/PostgresQueryExecutor.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ protected ResultSet execute(final Connection connection, PostgresQueryParser que
5050

5151
public PreparedStatement buildPreparedStatement(
5252
String sqlQuery, Params params, Connection connection) throws SQLException {
53-
return buildPreparedStatement(sqlQuery, params, connection, 0);
53+
return buildPreparedStatement(sqlQuery, params, connection, this.queryTimeoutSeconds);
5454
}
5555

5656
public PreparedStatement buildPreparedStatement(
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
package org.hypertrace.core.documentstore.postgres;
2+
3+
import static org.mockito.Mockito.verify;
4+
import static org.mockito.Mockito.when;
5+
6+
import java.sql.Connection;
7+
import java.sql.PreparedStatement;
8+
import java.sql.SQLException;
9+
import org.junit.jupiter.api.Test;
10+
import org.junit.jupiter.api.extension.ExtendWith;
11+
import org.mockito.Mock;
12+
import org.mockito.junit.jupiter.MockitoExtension;
13+
14+
@ExtendWith(MockitoExtension.class)
15+
class PostgresQueryExecutorTest {
16+
17+
@Mock private Connection mockConnection;
18+
@Mock private PreparedStatement mockPreparedStatement;
19+
20+
@Test
21+
void testPreparedStatementUsesConfiguredTimeout() throws SQLException {
22+
int configuredTimeoutSeconds = 45;
23+
String sqlQuery = "SELECT * FROM test_table";
24+
Params params = Params.newBuilder().build();
25+
26+
when(mockConnection.prepareStatement(sqlQuery)).thenReturn(mockPreparedStatement);
27+
28+
PostgresQueryExecutor executor = new PostgresQueryExecutor(configuredTimeoutSeconds);
29+
executor.buildPreparedStatement(sqlQuery, params, mockConnection);
30+
verify(mockPreparedStatement).setQueryTimeout(configuredTimeoutSeconds);
31+
}
32+
33+
@Test
34+
void testPreparedStatementUsesOverridenTimeout() throws SQLException {
35+
int defaultTimeoutSeconds = 30;
36+
String sqlQuery = "SELECT * FROM test_table";
37+
Params params = Params.newBuilder().build();
38+
39+
when(mockConnection.prepareStatement(sqlQuery)).thenReturn(mockPreparedStatement);
40+
41+
PostgresQueryExecutor executor = new PostgresQueryExecutor(defaultTimeoutSeconds);
42+
// override timeout to 45s
43+
executor.buildPreparedStatement(sqlQuery, params, mockConnection, 45);
44+
verify(mockPreparedStatement).setQueryTimeout(45);
45+
}
46+
}

0 commit comments

Comments
 (0)