package com.baidu.disconf.client.test.fetcher.inner.restful; import java.io.File; import org.apache.commons.io.FileUtils; import com.baidu.disconf.client.test.support.utils.DirUtils; import com.baidu.disconf.core.common.constants.Constants; import com.baidu.disconf.core.common.json.ValueVo; import com.baidu.disconf.core.common.restful.RestfulMgr; import com.baidu.disconf.core.common.restful.core.RemoteUrl; import com.baidu.disconf.core.common.utils.http.HttpClientUtil; import mockit.Mock; import mockit.MockUp; /** * Jmockit法测试的MOck * * @author liaoqiqi * @version 2014-7-29 */ public class RestfulMgrMock extends MockUp<RestfulMgr> { public static final String defaultValue = "10000"; public static final String defaultFileName = "confA.properties"; public static final String defaultFileContent = "varA=400000\r\nvarA2=500000"; /** * 获取JSON数据 * * @param clazz * @param remoteUrl * * @return * * @throws Exception */ @SuppressWarnings("unchecked") @Mock public <T> T getJsonData(Class<T> clazz, RemoteUrl remoteUrl, int retryTimes, int retrySleepSeconds) throws Exception { ValueVo valueVo = new ValueVo(); valueVo.setMessage(""); valueVo.setStatus(Constants.OK); valueVo.setValue(defaultValue); return (T) valueVo; } /** * @param remoteUrl 远程地址 * @param fileName 文件名 * @param localFileDir 本地文件地址 * * @return 如果是放到Classpath目录下,则返回相对Classpath的路径,如果不是,则返回全路径 * * @throws Exception */ @Mock public String downloadFromServer(RemoteUrl remoteUrl, String fileName, String localFileDir, String localFileDirTemp, String targetDirPath, boolean download2Classpath, int retryTimes, int retrySleepSeconds) throws Exception { File tempFile = DirUtils.createTempDirectory(); File tempFile2 = DirUtils.createTempDirectory(); String tempFilePath = tempFile.getAbsolutePath() + "/" + defaultFileName; String tempFile2Path = tempFile2.getAbsolutePath() + "/" + defaultFileName; FileUtils.writeStringToFile(new File(tempFilePath), defaultFileContent); FileUtils.writeStringToFile(new File(tempFile2Path), defaultFileContent); return fileName; } @Mock public void close() { HttpClientUtil.close(); } }