public void testToMap() throws Exception { Configuration cfg = CacheTestUtil.buildConfiguration("test", SharedJBossCacheRegionFactory.class, true, true); JBossCacheRegionFactory regionFactory = CacheTestUtil.startRegionFactory(cfg, getCacheTestSupport()); Region region = createRegion(regionFactory, "test/test", cfg.getProperties(), getCacheDataDescription()); Map map = region.toMap(); assertNotNull(map); assertEquals(0, map.size()); putInRegion(region, "key1", "value1"); putInRegion(region, "key2", "value2"); map = region.toMap(); assertNotNull(map); assertEquals(2, map.size()); assertEquals("value1", map.get("key1")); assertEquals("value2", map.get("key2")); removeFromRegion(region, "key1"); map = region.toMap(); assertNotNull(map); assertEquals(1, map.size()); assertEquals("value2", map.get("key2")); }
/** * Tests proper handling of region initialization and destruction. * * @throws Exception */ public void testActivationDeactivation() throws Exception { // Set up a cache to monitor affects of starting the region Cache remoteCache = DefaultCacheFactory.getInstance() .createCache(SharedCacheInstanceManager.DEFAULT_CACHE_RESOURCE, false); // This test assumes replication; verify that's correct assertEquals( "Cache is REPL_SYNC", "REPL_SYNC", remoteCache.getConfiguration().getCacheModeString()); JChannelFactory channelFactory = new JChannelFactory(); channelFactory.setMultiplexerConfig(SharedCacheInstanceManager.DEF_JGROUPS_RESOURCE); remoteCache.getConfiguration().getRuntimeConfig().setMuxChannelFactory(channelFactory); remoteCache.start(); // Make sure we stop the remoteCache registerCache(remoteCache); Fqn regionFqn = getRegionFqn("test/test", "test"); assertNull("No region node", remoteCache.getRoot().getChild(regionFqn)); Configuration cfg = CacheTestUtil.buildConfiguration("test", SharedJBossCacheRegionFactory.class, true, true); JBossCacheRegionFactory regionFactory = CacheTestUtil.startRegionFactory(cfg, getCacheTestSupport()); Region region = createRegion(regionFactory, "test/test", cfg.getProperties(), getCacheDataDescription()); Cache localCache = getJBossCache(regionFactory); // This test assumes replication; verify that's correct assertEquals( "Cache is REPL_SYNC", "REPL_SYNC", localCache.getConfiguration().getCacheModeString()); // Region creation should not have affected remoteCache assertNull("No region node", remoteCache.getRoot().getChild(regionFqn)); Node regionRoot = localCache.getRoot().getChild(regionFqn); assertTrue("Has a node at " + regionFqn, regionRoot != null); assertTrue(regionFqn + " is resident", regionRoot.isResident()); // Confirm region destroy does not affect remote cache Option option = new Option(); option.setCacheModeLocal(true); remoteCache.getInvocationContext().setOptionOverrides(option); remoteCache.put(regionFqn, "test", "test"); assertEquals("Put succeeded", "test", remoteCache.get(regionFqn, "test")); assertNull("Put was local", localCache.get(regionFqn, "test")); region.destroy(); assertEquals("Remote cache unchanged", "test", remoteCache.get(regionFqn, "test")); assertNull("No region node", localCache.getRoot().getChild(regionFqn)); }