Package net.bugreaper.modules.db
Class PostgreSQL
- All Implemented Interfaces:
SqlConfig<PostgreSQL>,SqlGet,SqlPost
PostgreSQL helper that provides a common API for operating with PostgreSQL.
It is recommended to use a single instance:
PostgreSQL db = PostgreSQL.getInstance();
Provides:
- Assertions with await support
- Data manipulation operations such as create, update, and clean
For more information, see JdbcExecutor.
-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionConstructs a PostgreSQL client using YAML configuration.PostgreSQL(String dbUrl, String username, String passwd) Creates a new PostgreSQL database helper instance with the specified connection parameters. -
Method Summary
Modifier and TypeMethodDescriptionprotected voidassertCountInTableBuilder(String tableName, String conditions, Object[][] conditionsArray, String expectedCount, int awaitMs) static PostgreSQLReturns the instance ofPostgreSQLwith config builderPostgreSQL().protected String[]getTableColumns(String tableName) Returns the list of columns in the table.protected voidrecordExistsBuilder(String tableName, String conditions, Object[][] conditionsArray, int awaitMs) voidrenameTable(String tableName) Renames the specified table by adding the"_X_"suffix.voidrollbackTable(String tableName) Rolls back the table name by removing the"_X_"suffix added bySqlPost.renameTable(java.lang.String).protected voidseeInDbByCondMethod(String tableName, String conditions) protected voidshowDataFromTableMethod(String tableName) voidtruncateTableCascade(String tableName) Truncate(clean) table and all connected by foreign keys tablesMethods inherited from class net.bugreaper.modules.db.jdbc.JdbcExecutor
deleteFromTable, deleteFromTable, deleteFromTable, getConfigSummary, insertIntoTable, insertIntoTable, insertIntoTable, runScript, runScriptFromFile, seeRecordExistsInTable, seeRecordExistsInTable, seeRecordExistsInTableCustom, seeRowsCountInTableExactly, seeRowsCountInTableExactly, seeRowsCountInTableExactly, seeRowsCountInTableExactlyCustom, seeTableIsEmpty, seeTableIsNotEmpty, self, setAwaitMs, setTemplatesDirectory, showDataByCondition, showDataFromTable, truncateTable, truncateTables, updateTable, updateTable, updateTable, withAwaitMs
-
Field Details
-
jdbc
-
getColumnsQuery
-
url
-
username
-
password
-
SELECT_ALL
- See Also:
-
COUNT
- See Also:
-
-
Constructor Details
-
PostgreSQL
Creates a new PostgreSQL database helper instance with the specified connection parameters.- Parameters:
dbUrl- the JDBC connection URL for the PostgreSQL databaseusername- the username used to authenticate with the databasepasswd- the password used to authenticate with the database- Throws:
IllegalArgumentException- if any of the required parameters are null or empty
-
PostgreSQL
public PostgreSQL()Constructs a PostgreSQL client using YAML configuration.Loads configuration values from a YAML file.
Example:PostgreSQL db = new PostgreSQL();postgresql: url: 'jdbc:postgresql://localhost:5434/public' username: user password: pass await: 1000 (optional)
- See Also:
-
-
Method Details
-
getInstance
Returns the instance ofPostgreSQLwith config builderPostgreSQL().This implementation is thread-safe using method-level synchronization.
- Returns:
- the shared instance of
PostgreSQL - Throws:
IllegalArgumentException- if the configuration contains invalid values- See Also:
-
truncateTableCascade
@Step("(DB) Truncate table \'{tableName}\' CASCADE") public void truncateTableCascade(String tableName) Truncate(clean) table and all connected by foreign keys tables- Parameters:
tableName- schema_name.table_name
-
renameTable
Description copied from interface:SqlPostRenames the specified table by adding the"_X_"suffix.Note: Roll back the table name after the test using
SqlPost.rollbackTable(java.lang.String).- Specified by:
renameTablein interfaceSqlPost- Overrides:
renameTablein classJdbcExecutor<PostgreSQL>- Parameters:
tableName- table name in the formatschema_name.table_name
-
rollbackTable
Description copied from interface:SqlPostRolls back the table name by removing the"_X_"suffix added bySqlPost.renameTable(java.lang.String).- Specified by:
rollbackTablein interfaceSqlPost- Overrides:
rollbackTablein classJdbcExecutor<PostgreSQL>- Parameters:
tableName- table name in the formatschema_name.table_name
-
assertCountInTableBuilder
-
recordExistsBuilder
-
showDataFromTableMethod
-
seeInDbByCondMethod
-
getTableColumns
Returns the list of columns in the table.- Parameters:
tableName- table name in the formatschema_name.table_name- Returns:
- array containing column names
-