public void testFetchPlanJoinSyntaxHint() {
String hintName = "openjpa.FetchPlan.JoinSyntax";
EntityManager em = emf.createEntityManager();
OpenJPAEntityManager oem = (OpenJPAEntityManager)em.getDelegate();
JDBCFetchPlan fPlan = (JDBCFetchPlan) oem.getFetchPlan();
JDBCFetchConfigurationImpl fConfig = (JDBCFetchConfigurationImpl)
((EntityManagerImpl) oem).getBroker().getFetchConfiguration();
joinSyntaxHintTest(fPlan, fConfig, hintName, "sql92",
JoinSyntax.SQL92, JoinSyntaxes.SYNTAX_SQL92);
joinSyntaxHintTest(fPlan, fConfig, hintName, JoinSyntax.SQL92.name(),
JoinSyntax.SQL92, JoinSyntaxes.SYNTAX_SQL92);
joinSyntaxHintTest(fPlan, fConfig, hintName, JoinSyntax.SQL92,
JoinSyntax.SQL92, JoinSyntaxes.SYNTAX_SQL92);
joinSyntaxHintTest(fPlan, fConfig, hintName, "traditional",
JoinSyntax.TRADITIONAL, JoinSyntaxes.SYNTAX_TRADITIONAL);
joinSyntaxHintTest(fPlan, fConfig, hintName, JoinSyntax.TRADITIONAL
.name(), JoinSyntax.TRADITIONAL, JoinSyntaxes.SYNTAX_TRADITIONAL);
joinSyntaxHintTest(fPlan, fConfig, hintName, JoinSyntax.TRADITIONAL,
JoinSyntax.TRADITIONAL, JoinSyntaxes.SYNTAX_TRADITIONAL);
joinSyntaxHintTest(fPlan, fConfig, hintName, "database",
JoinSyntax.DATABASE, JoinSyntaxes.SYNTAX_DATABASE);
joinSyntaxHintTest(fPlan, fConfig, hintName,
JoinSyntax.DATABASE.name(), JoinSyntax.DATABASE,
JoinSyntaxes.SYNTAX_DATABASE);
joinSyntaxHintTest(fPlan, fConfig, hintName, JoinSyntax.DATABASE,
JoinSyntax.DATABASE, JoinSyntaxes.SYNTAX_DATABASE);
try {
fPlan.setHint(hintName, "xxxxx", false);
fPlan.setHint(hintName, "yyyyy", true);
fail("Expecting a IllegalArgumentException.");
} catch (Exception e) {
assertTrue("Caught expected exception",
IllegalArgumentException.class.isAssignableFrom(e.getClass()));
}
try {
fPlan.setHint(hintName, "12345", false);
fPlan.setHint(hintName, "67890", true);
fail("Expecting a IllegalArgumentException.");
} catch (Exception e) {
assertTrue("Caught expected exception",
IllegalArgumentException.class.isAssignableFrom(e.getClass()));
}
try {
fPlan.setHint(hintName, -1, false);
fPlan.setHint(hintName, -2, true);
fail("Expecting a IllegalArgumentException.");
} catch (Exception e) {
assertTrue("Caught expected exception",
IllegalArgumentException.class.isAssignableFrom(e.getClass()));
}