Logger logger = Logger.getLogger("com.force.sdk.connector");
Level oldLevel = logger.getLevel();
Properties sdkTestProps = PropsUtil.load(PropsUtil.FORCE_SDK_TEST_PROPS);
String expectedLogLine = "ForceServiceConnector Cache: MISS for id: "
+ sdkTestProps.getProperty(PropsUtil.FORCE_USER_PROP);
MockAppender mockAppender = new MockAppender(expectedLogLine);
logger.addAppender(mockAppender);
try {
logger.setLevel(Level.TRACE);
EntityManagerFactory emf =
Persistence.createEntityManagerFactory("SchemaLoadInvocationFTest");
emf.createEntityManager();
} finally {
logger.setLevel(oldLevel);
logger.removeAppender(mockAppender);
}
// if this test is run along with the rest of the force-jpa-test suite, the connector will have
// already been instantiated previously, and the cache will always be hit (expected log line
// will not appear). if this test is run by itself, the cache will be missed only once
// (expected log line will appear only once).
Assert.assertTrue(mockAppender.getLogLineTimes() == 0 || mockAppender.getLogLineTimes() == 1,
"Log line " + expectedLogLine + " appeared unexpected number of times: " + mockAppender.getLogLineTimes());
}