package com.baidu.disconf.client.test.scan.inner;
import java.lang.reflect.Method;
import java.util.List;
import java.util.Map;
import java.util.Set;
import org.junit.Assert;
import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.baidu.disconf.client.DisconfMgrBean;
import com.baidu.disconf.client.scan.inner.statically.model.ScanStaticModel;
import com.baidu.disconf.client.scan.inner.statically.strategy.ScanStaticStrategy;
import com.baidu.disconf.client.scan.inner.statically.strategy.impl.ReflectionScanStatic;
import com.baidu.disconf.client.test.common.BaseSpringTestCase;
import com.baidu.disconf.client.support.utils.ScanPrinterUtils;
import com.baidu.disconf.client.support.utils.StringUtil;
/**
* 扫描测试
*
* @author liaoqiqi
* @version 2014-6-16
*/
public class ScanPackTestCase extends BaseSpringTestCase {
protected static final Logger LOGGER = LoggerFactory.getLogger(ScanPackTestCase.class);
public static final String SCAN_PACK_NAME = "com.baidu.disconf.client.test";
public static final List<String> SCAN_PACK_NAME_LIST =
StringUtil.parseStringToStringList(SCAN_PACK_NAME, DisconfMgrBean.SCAN_SPLIT_TOKEN);
@Test
public void scan() {
try {
ScanStaticStrategy scanStaticStrategy = new ReflectionScanStatic();
ScanStaticModel scanModel = scanStaticStrategy.scan(SCAN_PACK_NAME_LIST);
// PRINT SCAN STORE
ScanPrinterUtils.printStoreMap(scanModel.getReflections());
// disconf file item
LOGGER.info("=============DISCONF FILE ITEM===================");
Set<Method> methods = scanModel.getDisconfFileItemMethodSet();
ScanPrinterUtils.printFileItemMethod(methods);
Assert.assertEquals(6, methods.size());
Assert.assertEquals(4, scanModel.getDisconfFileClassSet().size());
// disconf file item
LOGGER.info("=============DISCONF FILE===================");
Map<Class<?>, Set<Method>> fileMap = scanModel.getDisconfFileItemMap();
Assert.assertEquals(4, fileMap.size());
// disconf item
LOGGER.info("=============DISCONF ITEM===================");
methods = scanModel.getDisconfItemMethodSet();
ScanPrinterUtils.printFileItemMethod(methods);
Assert.assertEquals(1, methods.size());
// Active backup
LOGGER.info("=============DISCONF ACTIVE BACKUP===================");
Set<Class<?>> classSet = scanModel.getDisconfActiveBackupServiceClassSet();
ScanPrinterUtils.printActiveBackup(classSet);
Assert.assertEquals(0, classSet.size());
// Update service
LOGGER.info("=============DISCONF Update service===================");
classSet = scanModel.getDisconfUpdateService();
ScanPrinterUtils.printUpdateFile(classSet);
Assert.assertEquals(2, classSet.size());
} catch (Exception e) {
Assert.assertTrue(false);
}
}
}