package com.gosalelab.testcase;
import com.gosalelab.AspectCacheTest;
import com.gosalelab.pojo.CacheSampleEntity;
import com.gosalelab.service.CacheTestService;
import com.gosalelab.aspect.CacheAspect;
import com.gosalelab.generator.KeyGenerator;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(classes = AspectCacheTest.class)
public class CacheTest {
private final Logger logger = LoggerFactory.getLogger(this.getClass());
@Autowired
private CacheTestService cacheTestService;
@Autowired
private KeyGenerator keyGenerator;
@Autowired
public CacheAspect cacheAspect;
private CacheSampleEntity entity = new CacheSampleEntity("test", LocalDateTime.now());
private Object[] arguments = new Object[]{"1111", "2222", entity};
@Test
public void testKeyParserWithSimpleName() {
String simpleKeySpEL = "'test:'+#args[0]";
String key = keyGenerator.getKey(simpleKeySpEL, arguments, null);
logger.info(key);
Assert.assertEquals("test:1111", key);
}
@Test
@SuppressWarnings("unchecked")
public void testKeyParserWithMap() {
Map mapReturnObj = new HashMap(1);
mapReturnObj.put("name", "TestMapName");
String mapKeySpEL = "'test:'+#args[0]+':'+#args[1]+ ':' +#retVal.get('name')";
String key = keyGenerator.getKey(mapKeySpEL, arguments, mapReturnObj);
logger.info(key);
Assert.assertEquals("test:1111:2222:TestMapName", key);
}
@Test
public void testKeyParserWithList() {
List<String> listReturnObj = new ArrayList<>();
listReturnObj.add("ListName");
String listKeySpEL = "'test:'+#args[0]+':'+#args[1]+ ':' +#retVal.get(0) + ':' + #args[2].getName()";
String key = keyGenerator.getKey(listKeySpEL, arguments, listReturnObj);
logger.info(key);
Assert.assertEquals("test:1111:2222:ListName:test", key);
}
@Test
public void testPutGetCache(){
logger.info(cacheAspect.toString());
cacheTestService.createNewEntity("test name");
CacheSampleEntity sample = cacheTestService.getTestEntity("test name");
Assert.assertEquals("test name", sample.getName());
}
@Test
public void testDelCache(){
String delName = "test name";
cacheTestService.createNewEntity(delName);
cacheTestService.delTestEntity(delName);
}
@Test
public void testListValue() {
List<CacheSampleEntity> sampleEntities = new ArrayList<>();
CacheSampleEntity entity1 = new CacheSampleEntity("TestName1", LocalDateTime.now());
CacheSampleEntity entity2 = new CacheSampleEntity("TestName2", LocalDateTime.now());
sampleEntities.add(entity1);
sampleEntities.add(entity2);
cacheTestService.createEntityList(sampleEntities);
List<CacheSampleEntity> entities = cacheTestService.getEntityList("TestName1");
Assert.assertEquals("TestName1", entities.get(0).getName());
Assert.assertEquals("TestName2", entities.get(1).getName());
}
@Test
public void testMapValue() {
Map<Integer, CacheSampleEntity> mapValues = new HashMap<>();
CacheSampleEntity entity1 = new CacheSampleEntity("TestName1", LocalDateTime.now());
CacheSampleEntity entity2 = new CacheSampleEntity("TestName2", LocalDateTime.now());
mapValues.put(1, entity1);
mapValues.put(2, entity2);
logger.info(mapValues.get(1).getName());
logger.info(mapValues.get(2).getName());
cacheTestService.createEntityMap(mapValues);
Map<Integer, CacheSampleEntity> returnEntities = cacheTestService.getEntityMap("TestName1");
logger.info(returnEntities.toString());
Assert.assertEquals("TestName1", returnEntities.get(1).getName());
Assert.assertEquals("TestName2", returnEntities.get(2).getName());
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
Aspect Cache是一个针对Spring Boot,基于AOP注解方式的轻量级缓存,目前支持EHCache,Redis缓存方式。数据类型支持POJO、Map和List数据类型,同时支持自定义缓存key解析,也支持自定义的缓存处理方式,或者扩展支持更多缓存方式。 缓存key使用Spring表达式(SpEL)解析生成
资源推荐
资源详情
资源评论
收起资源包目录
aspect-cache-master.zip (38个子文件)
aspect-cache-master
pom.xml 7KB
LICENSE 592B
aspect-cache-demo
pom.xml 2KB
src
test
resources
ehcache.xml 725B
application.properties 63B
java
com
gosalelab
AspectCacheTest.java 335B
pojo
CacheSampleEntity.java 589B
service
CacheTestService.java 2KB
testcase
CacheTest.java 4KB
.mvn
wrapper
maven-wrapper.properties 110B
maven-wrapper.jar 46KB
aspect-cache
pom.xml 2KB
src
main
java
com
gosalelab
helper
CacheHelper.java 3KB
EnableAspectCache.java 308B
annotation
CacheEvict.java 429B
CacheInject.java 665B
configs
EHCacheConfig.java 3KB
RedisCacheConfig.java 2KB
aspect
CommonJoinPointConfig.java 382B
CacheEvictAspect.java 3KB
CacheAspect.java 4KB
provider
CacheProviderHolder.java 1KB
CacheProvider.java 669B
AbstractCacheProvider.java 2KB
impl
RedisCacheProvider.java 2KB
EHCacheProvider.java 2KB
exception
CacheProviderException.java 253B
CacheKeyGeneratorException.java 235B
generator
CacheKeyGeneratorHolder.java 1KB
impl
DefaultKeyGenerator.java 2KB
KeyGenerator.java 147B
constants
CacheOpType.java 363B
CacheConstants.java 835B
properties
CacheProperties.java 2KB
EHCacheProperties.java 2KB
RedisCacheProperties.java 2KB
AspectCacheAutoConfiguration.java 340B
.gitignore 280B
共 38 条
- 1
资源评论
Java程序员-张凯
- 粉丝: 1w+
- 资源: 6651
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功