Class OracleDb

All Implemented Interfaces:
SqlConfig<OracleDb>, SqlGet, SqlPost

public final class OracleDb extends JdbcExecutor<OracleDb>
OracleDb helper that provides a common API for operating with OracleDb.

It is recommended to use a single instance: OracleDb db = OracleDb.getInstance();

Provides:

  • Assertions with await support
  • Data manipulation operations such as create, update, and clean

For more information, see JdbcExecutor.

  • Field Details

  • Constructor Details

    • OracleDb

      public OracleDb(String dbUrl, String username, String passwd)
      Creates a new Oracle database helper instance with the specified connection parameters.
      Parameters:
      dbUrl - the JDBC connection URL for the Oracle database
      username - the username used to authenticate with the database
      passwd - the password used to authenticate with the database
      Throws:
      IllegalArgumentException - if any of the required parameters are null or empty
    • OracleDb

      public OracleDb()
      Constructs an OracleDb client using YAML configuration.

      Loads configuration values from a YAML file.

      Example:

      OracleDb db = new OracleDb();

       oracle:
         url: 'jdbc:oracle:thin:@localhost:1521/xepdb1'
         username: user
         password: pass
         await: 1000 (optional)
       
      See Also:
  • Method Details

    • getInstance

      public static OracleDb getInstance()
      Returns the instance of OracleDb with config builder OracleDb().

      This implementation is thread-safe using method-level synchronization.

      Returns:
      the shared instance of OracleDb
      Throws:
      IllegalArgumentException - if the configuration contains invalid values
      See Also:
    • renameTable

      @Step("(DB) Rename table \'{tableName}\'") public void renameTable(String tableName)
      Description copied from interface: SqlPost
      Renames 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:
      renameTable in interface SqlPost
      Overrides:
      renameTable in class JdbcExecutor<OracleDb>
      Parameters:
      tableName - table name in the format schema_name.table_name
    • rollbackTable

      @Step("(DB) Rollback renamed table \'{tableName}\'") public void rollbackTable(String tableName)
      Description copied from interface: SqlPost
      Rolls back the table name by removing the "_X_" suffix added by SqlPost.renameTable(java.lang.String).
      Specified by:
      rollbackTable in interface SqlPost
      Overrides:
      rollbackTable in class JdbcExecutor<OracleDb>
      Parameters:
      tableName - table name in the format schema_name.table_name
    • assertCountInTableBuilder

      @Step("(DB)[ASSERT] Table: \'{tableName}\' contains EXACTLY <{expectedCount}> record/s {conditions}") protected void assertCountInTableBuilder(String tableName, String conditions, @Param(mode=HIDDEN) Object[][] conditionsArray, String expectedCount, @Param(mode=HIDDEN) int awaitMs)
    • recordExistsBuilder

      @Step("(DB)[ASSERT] Table \'{tableName}\' contains records {conditions}") protected void recordExistsBuilder(String tableName, String conditions, @Param(mode=HIDDEN) Object[][] conditionsArray, @Param(mode=HIDDEN) int awaitMs)
    • showDataFromTableMethod

      protected void showDataFromTableMethod(String tableName)
    • seeInDbByCondMethod

      @Step("(DB) Show data from table \'{tableName}\' {conditions}") protected void seeInDbByCondMethod(String tableName, String conditions)
    • getTableColumns

      protected String[] getTableColumns(String tableName)
      Returns the list of columns in the table.
      Parameters:
      tableName - table name in the format schema_name.table_name
      Returns:
      array containing column names