Search in sources :

Example 1 with DefaultHalResourceCache

use of org.camunda.bpm.engine.rest.hal.cache.DefaultHalResourceCache in project camunda-bpm-platform by camunda.

the class HalResourceCacheTest method testIdentityLinkCaching.

@Test
public void testIdentityLinkCaching() {
    String[] taskIds = new String[] { "test" };
    // mock identityLinks and query
    IdentityLink link1 = mock(IdentityLink.class);
    when(link1.getTaskId()).thenReturn(taskIds[0]);
    IdentityLink link2 = mock(IdentityLink.class);
    when(link2.getTaskId()).thenReturn(taskIds[0]);
    when(processEngine.getTaskService().getIdentityLinksForTask(anyString())).thenReturn(Arrays.asList(link1, link2));
    // configure cache
    HalRelationCacheConfiguration configuration = new HalRelationCacheConfiguration();
    configuration.setCacheImplementationClass(DefaultHalResourceCache.class);
    Map<String, Object> halIdentityLinkConfig = new HashMap<String, Object>();
    halIdentityLinkConfig.put("capacity", 100);
    halIdentityLinkConfig.put("secondsToLive", 10000);
    configuration.addCacheConfiguration(HalIdentityLink.class, halIdentityLinkConfig);
    contextListener.configureCaches(configuration);
    // cache exists and is empty
    DefaultHalResourceCache cache = (DefaultHalResourceCache) Hal.getInstance().getHalRelationCache(HalIdentityLink.class);
    assertNotNull(cache);
    assertEquals(0, cache.size());
    // get link resolver and resolve identity link
    HalLinkResolver linkResolver = Hal.getInstance().getLinkResolver(IdentityRestService.class);
    List<HalResource<?>> halIdentityLinks = linkResolver.resolveLinks(taskIds, processEngine);
    assertEquals(2, halIdentityLinks.size());
    assertEquals(1, cache.size());
    assertEquals(halIdentityLinks, cache.get(taskIds[0]));
}
Also used : HalIdentityLink(org.camunda.bpm.engine.rest.hal.identitylink.HalIdentityLink) DefaultHalResourceCache(org.camunda.bpm.engine.rest.hal.cache.DefaultHalResourceCache) HashMap(java.util.HashMap) HalLinkResolver(org.camunda.bpm.engine.rest.hal.HalLinkResolver) HalResource(org.camunda.bpm.engine.rest.hal.HalResource) Matchers.anyString(org.mockito.Matchers.anyString) HalRelationCacheConfiguration(org.camunda.bpm.engine.rest.hal.cache.HalRelationCacheConfiguration) IdentityLink(org.camunda.bpm.engine.task.IdentityLink) HalIdentityLink(org.camunda.bpm.engine.rest.hal.identitylink.HalIdentityLink) Test(org.junit.Test) AbstractRestServiceTest(org.camunda.bpm.engine.rest.AbstractRestServiceTest)

Example 2 with DefaultHalResourceCache

use of org.camunda.bpm.engine.rest.hal.cache.DefaultHalResourceCache in project camunda-bpm-platform by camunda.

the class HalResourceCacheTest method createCache.

@Before
public void createCache() {
    cache = new DefaultHalResourceCache(100, 100);
    contextListener = new HalRelationCacheBootstrap();
}
Also used : DefaultHalResourceCache(org.camunda.bpm.engine.rest.hal.cache.DefaultHalResourceCache) HalRelationCacheBootstrap(org.camunda.bpm.engine.rest.hal.cache.HalRelationCacheBootstrap) Before(org.junit.Before)

Example 3 with DefaultHalResourceCache

use of org.camunda.bpm.engine.rest.hal.cache.DefaultHalResourceCache in project camunda-bpm-platform by camunda.

the class HalResourceCacheTest method testCacheCreation.

@Test
public void testCacheCreation() {
    String contextParameter = "{" + "\"" + CONFIG_CACHE_IMPLEMENTATION + "\": \"" + DefaultHalResourceCache.class.getName() + "\"," + "\"" + CONFIG_CACHES + "\": {" + "\"" + HalUser.class.getName() + "\": {" + "\"capacity\": 123, \"secondsToLive\": 123" + "}" + "}" + "}";
    contextListener.configureCaches(contextParameter);
    Cache cache = Hal.getInstance().getHalRelationCache(HalUser.class);
    assertNotNull(cache);
    assertEquals(123, ((DefaultHalResourceCache) cache).getCapacity());
    assertEquals(123, ((DefaultHalResourceCache) cache).getSecondsToLive());
}
Also used : Matchers.anyString(org.mockito.Matchers.anyString) Cache(org.camunda.bpm.engine.rest.cache.Cache) DefaultHalResourceCache(org.camunda.bpm.engine.rest.hal.cache.DefaultHalResourceCache) Test(org.junit.Test) AbstractRestServiceTest(org.camunda.bpm.engine.rest.AbstractRestServiceTest)

Example 4 with DefaultHalResourceCache

use of org.camunda.bpm.engine.rest.hal.cache.DefaultHalResourceCache in project camunda-bpm-platform by camunda.

the class HalResourceCacheTest method testEntityCaching.

@Test
public void testEntityCaching() {
    String[] userIds = new String[] { "test" };
    // mock user and query
    User user = mock(User.class);
    when(user.getId()).thenReturn(userIds[0]);
    when(user.getFirstName()).thenReturn("kermit");
    UserQuery userQuery = mock(UserQuery.class);
    when(userQuery.userIdIn(Matchers.<String[]>anyVararg())).thenReturn(userQuery);
    when(userQuery.listPage(anyInt(), anyInt())).thenReturn(Arrays.asList(user));
    when(processEngine.getIdentityService().createUserQuery()).thenReturn(userQuery);
    // configure cache
    HalRelationCacheConfiguration configuration = new HalRelationCacheConfiguration();
    configuration.setCacheImplementationClass(DefaultHalResourceCache.class);
    Map<String, Object> halUserConfig = new HashMap<String, Object>();
    halUserConfig.put("capacity", 100);
    halUserConfig.put("secondsToLive", 10000);
    configuration.addCacheConfiguration(HalUser.class, halUserConfig);
    contextListener.configureCaches(configuration);
    // cache exists and is empty
    DefaultHalResourceCache cache = (DefaultHalResourceCache) Hal.getInstance().getHalRelationCache(HalUser.class);
    assertNotNull(cache);
    assertEquals(0, cache.size());
    // get link resolver and resolve user
    HalLinkResolver linkResolver = Hal.getInstance().getLinkResolver(UserRestService.class);
    List<HalResource<?>> halUsers = linkResolver.resolveLinks(userIds, processEngine);
    // mocked user was resolved
    assertNotNull(halUsers);
    assertEquals(1, halUsers.size());
    HalUser halUser = (HalUser) halUsers.get(0);
    assertEquals("kermit", halUser.getFirstName());
    // cache contains user
    assertEquals(1, cache.size());
    // change user mock
    when(user.getFirstName()).thenReturn("fritz");
    // resolve users again
    halUsers = linkResolver.resolveLinks(userIds, processEngine);
    // cached mocked user was resolved with old name
    assertNotNull(halUsers);
    assertEquals(1, halUsers.size());
    halUser = (HalUser) halUsers.get(0);
    assertEquals("kermit", halUser.getFirstName());
    forwardTime(cache.getSecondsToLive() * 3);
    // resolve users again
    halUsers = linkResolver.resolveLinks(userIds, processEngine);
    // new mocked user was resolved with old name
    assertNotNull(halUsers);
    assertEquals(1, halUsers.size());
    halUser = (HalUser) halUsers.get(0);
    assertEquals("fritz", halUser.getFirstName());
}
Also used : DefaultHalResourceCache(org.camunda.bpm.engine.rest.hal.cache.DefaultHalResourceCache) HalUser(org.camunda.bpm.engine.rest.hal.user.HalUser) User(org.camunda.bpm.engine.identity.User) HashMap(java.util.HashMap) HalLinkResolver(org.camunda.bpm.engine.rest.hal.HalLinkResolver) HalResource(org.camunda.bpm.engine.rest.hal.HalResource) Matchers.anyString(org.mockito.Matchers.anyString) UserQuery(org.camunda.bpm.engine.identity.UserQuery) HalRelationCacheConfiguration(org.camunda.bpm.engine.rest.hal.cache.HalRelationCacheConfiguration) HalUser(org.camunda.bpm.engine.rest.hal.user.HalUser) Test(org.junit.Test) AbstractRestServiceTest(org.camunda.bpm.engine.rest.AbstractRestServiceTest)

Aggregations

DefaultHalResourceCache (org.camunda.bpm.engine.rest.hal.cache.DefaultHalResourceCache)4 AbstractRestServiceTest (org.camunda.bpm.engine.rest.AbstractRestServiceTest)3 Test (org.junit.Test)3 Matchers.anyString (org.mockito.Matchers.anyString)3 HashMap (java.util.HashMap)2 HalLinkResolver (org.camunda.bpm.engine.rest.hal.HalLinkResolver)2 HalResource (org.camunda.bpm.engine.rest.hal.HalResource)2 HalRelationCacheConfiguration (org.camunda.bpm.engine.rest.hal.cache.HalRelationCacheConfiguration)2 User (org.camunda.bpm.engine.identity.User)1 UserQuery (org.camunda.bpm.engine.identity.UserQuery)1 Cache (org.camunda.bpm.engine.rest.cache.Cache)1 HalRelationCacheBootstrap (org.camunda.bpm.engine.rest.hal.cache.HalRelationCacheBootstrap)1 HalIdentityLink (org.camunda.bpm.engine.rest.hal.identitylink.HalIdentityLink)1 HalUser (org.camunda.bpm.engine.rest.hal.user.HalUser)1 IdentityLink (org.camunda.bpm.engine.task.IdentityLink)1 Before (org.junit.Before)1