public void testConnectorSkipCache() throws ConnectionException, AsyncApiException {
Logger logger = Logger.getLogger("com.force.sdk.connector");
Level oldLevel = logger.getLevel();
String expectedCheckLogLine = "ForceServiceConnector Cache: Checking for id";
MockAppender mockCheckAppender = new MockAppender(expectedCheckLogLine);
String expectedMissLogLine = "ForceServiceConnector Cache: MISS for id";
MockAppender mockMissAppender = new MockAppender(expectedMissLogLine);
String expectedHitLogLine = "ForceServiceConnector Cache: HIT for id";
MockAppender mockHitAppender = new MockAppender(expectedHitLogLine);
logger.addAppender(mockCheckAppender);
try {
logger.setLevel(Level.TRACE);
ForceConnectorConfig config = createConfig();
ForceServiceConnector connector = new ForceServiceConnector(config);
// Test: skip cache explicitly.
connector.setSkipCache(true);
connector.getMetadataConnection();
connector.getBulkConnection();
connector.getConnection();
// Test: use a config with null username. Implicilty skip cache.
config = new ForceConnectorConfig();
config.setSessionId("session Id");
config.setServiceEndpoint(userInfo.getServerEndpoint());
connector = new ForceServiceConnector(config);
connector.setSkipCache(false); // no-op. As, this is default.
connector.getMetadataConnection();
connector.getBulkConnection();
connector.getConnection();
} finally {
logger.setLevel(oldLevel);
logger.removeAppender(mockCheckAppender);
}
Assert.assertFalse(mockCheckAppender.receivedLogLine(), "The cache should not be checked when skipCache is set.");
Assert.assertFalse(mockMissAppender.receivedLogLine(), "The cache should not be checked when skipCache is set.");
Assert.assertFalse(mockHitAppender.receivedLogLine(), "The cache should not be checked when skipCache is set.");
}