### Question:
ExtendedNamingStrategy extends DefaultNamingStrategy { @Override public String getPropertyNameForForeignKey(String fkName, EntityType entityType) { String[] split = SPLIT.split(fkName); if (split.length > 2) { return getPropertyName(split[split.length - 2], entityType); } else { return super.getPropertyNameForForeignKey(fkName, entityType); } }  @Override String getPropertyNameForForeignKey(String fkName, EntityType entityType); @Override String getPropertyNameForInverseForeignKey(String fkName, EntityType entityType);  }### Answer:
@Test public void getPropertyNameForForeignKey() { assertEquals("superiorFk", namingStrategy.getPropertyNameForForeignKey("fk_superior", entityModel)); assertEquals("superiorFk", namingStrategy.getPropertyNameForForeignKey("FK_SUPERIOR", entityModel)); assertEquals("order", namingStrategy.getPropertyNameForForeignKey("fk_order_rows", entityModel)); assertEquals("category", namingStrategy.getPropertyNameForForeignKey("fk_category_events", entityModel)); }