mirror of
https://github.com/actiontech/dble.git
synced 2026-01-08 13:50:19 -06:00
# Conflicts:
# src/main/java/com/actiontech/dble/backend/mysql/nio/handler/builder/MergeBuilder.java
# src/main/java/com/actiontech/dble/route/RouteService.java
# src/main/java/com/actiontech/dble/route/parser/druid/ServerSchemaStatVisitor.java
# src/main/java/com/actiontech/dble/route/parser/druid/impl/DefaultDruidParser.java
# src/main/java/com/actiontech/dble/route/parser/druid/impl/DruidInsertParser.java
# src/main/java/com/actiontech/dble/route/parser/druid/impl/DruidInsertReplaceParser.java
# src/main/java/com/actiontech/dble/route/parser/druid/impl/DruidReplaceParser.java
# src/main/java/com/actiontech/dble/route/parser/druid/impl/DruidSelectParser.java
# src/main/java/com/actiontech/dble/route/parser/druid/impl/DruidSingleUnitSelectParser.java
# src/main/java/com/actiontech/dble/route/util/RouterUtil.java
# src/main/java/com/actiontech/dble/server/handler/ServerLoadDataInfileHandler.java
# src/test/java/com/actiontech/dble/route/HintDBTypeTest.java
# src/test/java/com/actiontech/dble/route/RouteWithOrTest.java
55 lines
1.9 KiB
Java
55 lines
1.9 KiB
Java
/*
|
|
* Copyright (C) 2016-2019 ActionTech.
|
|
* based on code by MyCATCopyrightHolder Copyright (c) 2013, OpenCloudDB/MyCAT.
|
|
* License: http://www.gnu.org/licenses/gpl.html GPL version 2 or higher.
|
|
*/
|
|
package com.actiontech.dble.cache;
|
|
|
|
import com.actiontech.dble.cache.impl.EnchachePool;
|
|
import org.junit.Assert;
|
|
import net.sf.ehcache.Cache;
|
|
import net.sf.ehcache.CacheManager;
|
|
import net.sf.ehcache.config.CacheConfiguration;
|
|
import net.sf.ehcache.config.MemoryUnit;
|
|
import org.junit.Test;
|
|
|
|
public class EnCachePoolTest {
|
|
|
|
private static EnchachePool enCachePool;
|
|
|
|
static {
|
|
CacheConfiguration cacheConf = new CacheConfiguration();
|
|
cacheConf.setName("testcache");
|
|
cacheConf.maxBytesLocalHeap(50, MemoryUnit.MEGABYTES).timeToIdleSeconds(2);
|
|
Cache cache = new Cache(cacheConf);
|
|
CacheManager.create().addCache(cache);
|
|
enCachePool = new EnchachePool(cacheConf.getName(), cache, 50 * 10000);
|
|
}
|
|
|
|
@Test
|
|
public void testBasic() {
|
|
enCachePool.putIfAbsent("2", "dn2");
|
|
enCachePool.putIfAbsent("1", "dn1");
|
|
|
|
Assert.assertEquals("dn2", enCachePool.get("2"));
|
|
Assert.assertEquals("dn1", enCachePool.get("1"));
|
|
Assert.assertEquals(null, enCachePool.get("3"));
|
|
|
|
CacheStatic statics = enCachePool.getCacheStatic();
|
|
Assert.assertEquals(statics.getItemSize(), 2);
|
|
Assert.assertEquals(statics.getPutTimes(), 2);
|
|
Assert.assertEquals(statics.getAccessTimes(), 3);
|
|
Assert.assertEquals(statics.getHitTimes(), 2);
|
|
Assert.assertTrue(statics.getLastAccessTime() > 0);
|
|
Assert.assertTrue(statics.getLastPutTime() > 0);
|
|
Assert.assertTrue(statics.getLastAccessTime() > 0);
|
|
// wait expire
|
|
try {
|
|
Thread.sleep(4000);
|
|
} catch (InterruptedException e) {
|
|
}
|
|
Assert.assertEquals(null, enCachePool.get("2"));
|
|
Assert.assertEquals(null, enCachePool.get("1"));
|
|
}
|
|
|
|
} |