### Question:
PhysicalNamingStrategyShogunCore implements PhysicalNamingStrategy, Serializable { public void setTablePrefix(String tablePrefix) { this.tablePrefix = tablePrefix; }  @Override Identifier toPhysicalSequenceName(Identifier name, JdbcEnvironment jdbcEnvironment); @Override Identifier toPhysicalCatalogName(Identifier name, JdbcEnvironment jdbcEnvironment); @Override Identifier toPhysicalSchemaName(Identifier name, JdbcEnvironment jdbcEnvironment); @Override Identifier toPhysicalTableName(Identifier tableIdentifier, JdbcEnvironment context); @Override Identifier toPhysicalColumnName(Identifier columnIdentifier, JdbcEnvironment context); String getTablePrefix(); void setTablePrefix(String tablePrefix);  }### Answer:
@Test public void testIfTablePrefixIsBeingUsed() throws SQLException { String tablePrefix = "TBL_"; namingStrategy.setTablePrefix(tablePrefix); String className = "SomeCamelCaseClass"; String expectedPhysicalName = "tbl_somecamelcaseclass"; Dialect dialect = new H2Dialect(); assertExpectedPhysicalTableName(dialect, className, expectedPhysicalName); }
@Test public void testIfTablePrefixIsNull() throws SQLException { String tablePrefix = null; namingStrategy.setTablePrefix(tablePrefix); String className = "SomeCamelCaseClass"; String expectedPhysicalName = "somecamelcaseclass"; Dialect dialect = new H2Dialect(); assertExpectedPhysicalTableName(dialect, className, expectedPhysicalName); }
@Test public void testIfTablePrefixIsEmpty() throws SQLException { String tablePrefix = ""; namingStrategy.setTablePrefix(tablePrefix); String className = "SomeCamelCaseClass"; String expectedPhysicalName = "somecamelcaseclass"; Dialect dialect = new H2Dialect(); assertExpectedPhysicalTableName(dialect, className, expectedPhysicalName); }