use of com.adaptris.core.services.cache.translators.StringPayloadCacheTranslator in project interlok by adaptris.
the class AddValueToCacheTest method testDoService_AbsoluteExpiry_Date.
@Test
public void testDoService_AbsoluteExpiry_Date() throws Exception {
AdaptrisMessage msg = AdaptrisMessageFactory.getDefaultInstance().newMessage("Hello World");
ExpiringMapCache cache = createCacheInstanceForTests();
MyCacheEventListener listener = new MyCacheEventListener();
cache.getEventListener().addEventListener(listener);
AddValueToCache service = new AddValueToCache().withExpiry("%message{expiry}").withValueTranslator(new StringPayloadCacheTranslator()).withKey("%message{%uniqueId}").withConnection(new CacheConnection().withCacheInstance(cache));
try {
start(service);
// Expire in 2 seconds or so.
Date expiry = new Date(System.currentTimeMillis() + ThreadLocalRandom.current().nextInt(1000) + 1000);
msg.addMetadata("expiry", DateFormatUtil.format(expiry));
service.doService(msg);
Object value = cache.get(msg.getUniqueId());
assertEquals("Hello World", value);
// Default expiration is > 5 seconds.
await().atMost(Duration.ofSeconds(5)).with().pollInterval(Duration.ofMillis(100)).until(listener::expiredCount, greaterThanOrEqualTo(1));
assertEquals(0, cache.size());
} finally {
stop(service);
}
}
use of com.adaptris.core.services.cache.translators.StringPayloadCacheTranslator in project interlok by adaptris.
the class AddValueToCacheTest method testDoService_RelativeExpiry.
@Test
public void testDoService_RelativeExpiry() throws Exception {
AdaptrisMessage msg = AdaptrisMessageFactory.getDefaultInstance().newMessage("Hello World");
ExpiringMapCache cache = createCacheInstanceForTests();
MyCacheEventListener listener = new MyCacheEventListener();
cache.getEventListener().addEventListener(listener);
AddValueToCache service = new AddValueToCache().withExpiry("%message{expiry}").withValueTranslator(new StringPayloadCacheTranslator()).withKey("%message{%uniqueId}").withConnection(new CacheConnection().withCacheInstance(cache));
try {
start(service);
// relative expiry, 500ms
msg.addMetadata("expiry", "500");
service.doService(msg);
Object value = cache.get(msg.getUniqueId());
assertEquals("Hello World", value);
// Default expiration is > 5 seconds.
await().atMost(Duration.ofSeconds(5)).with().pollInterval(Duration.ofMillis(100)).until(listener::expiredCount, greaterThanOrEqualTo(1));
assertEquals(0, cache.size());
} finally {
stop(service);
}
}
use of com.adaptris.core.services.cache.translators.StringPayloadCacheTranslator in project interlok by adaptris.
the class AddValueToCacheTest method testDoService_WithError.
@Test
public void testDoService_WithError() throws Exception {
AdaptrisMessage msg = new DefectiveMessageFactory(EnumSet.of(WhenToBreak.METADATA_GET)).newMessage("Hello World");
msg.addMetadata("metadataKey", "value");
Cache cache = createCacheInstanceForTests();
AddValueToCache service = new AddValueToCache().withValueTranslator(new StringPayloadCacheTranslator()).withKey("%message{metadataKey}").withConnection(new CacheConnection().withCacheInstance(cache));
try {
start(service);
service.doService(msg);
fail();
} catch (ServiceException expected) {
} finally {
stop(service);
}
}
use of com.adaptris.core.services.cache.translators.StringPayloadCacheTranslator in project interlok by adaptris.
the class AddValueToCacheTest method testDoService.
@Test
public void testDoService() throws Exception {
AdaptrisMessage msg = AdaptrisMessageFactory.getDefaultInstance().newMessage("Hello World");
Cache cache = createCacheInstanceForTests();
AddValueToCache service = new AddValueToCache().withValueTranslator(new StringPayloadCacheTranslator()).withKey("%message{%uniqueId}").withConnection(new CacheConnection().withCacheInstance(cache));
try {
start(service);
service.doService(msg);
Object value = cache.get(msg.getUniqueId());
assertEquals("Hello World", value);
} finally {
stop(service);
}
}
use of com.adaptris.core.services.cache.translators.StringPayloadCacheTranslator in project interlok by adaptris.
the class GetValueFromCacheTest method testDoService_WithError.
@Test
public void testDoService_WithError() throws Exception {
AdaptrisMessage msg = AdaptrisMessageFactory.getDefaultInstance().newMessage("Hello World");
Cache cache = createCacheInstanceForTests();
GetValueFromCache service = new GetValueFromCache().withExceptionIfNotFound(true).withValueTranslator(new StringPayloadCacheTranslator()).withKey("%message{%uniqueId}").withConnection(new CacheConnection().withCacheInstance(cache));
try {
start(service);
service.doService(msg);
fail();
} catch (ServiceException expected) {
} finally {
stop(service);
}
}
Aggregations