Skip to content

Commit

Permalink
完善写法
Browse files Browse the repository at this point in the history
  • Loading branch information
woilsy committed Mar 29, 2023
1 parent 7cc7fb9 commit b7bedc8
Show file tree
Hide file tree
Showing 14 changed files with 617 additions and 421 deletions.
5 changes: 5 additions & 0 deletions mock/src/main/java/com/woilsy/mock/Mocker.java
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
import com.woilsy.mock.utils.GsonUtil;
import com.woilsy.mock.utils.LogUtil;
import com.woilsy.mock.utils.NetUtil;
import org.jetbrains.annotations.NotNull;

import java.util.List;

Expand Down Expand Up @@ -78,24 +79,28 @@ public static void init(Context context, MockOptions options) {
MOCKER.initByOptions(context, options);
}

@NotNull
public static MockDataStore getMockDataStore() {
if (MOCKER.mDataStore == null) {
MOCKER.mDataStore = new MockDataStore(new MockParse(getMockOption()));
}
return MOCKER.mDataStore;
}

@NotNull
public static MockOptions getMockOption() {
if (MOCKER.mMockOptions == null) {
MOCKER.mMockOptions = MockOptions.getDefault();
}
return MOCKER.mMockOptions;
}

@NotNull
public static String getMockBaseUrl() {
return MockDefault.formatMockUrl(getMockOption().getPort());
}

@NotNull
public static String getLocalUrl(Context context) {
String ip = NetUtil.getIp(context);
String host = ip == null ? MockDefault.HOST_NAME : ip;
Expand Down
46 changes: 13 additions & 33 deletions mock/src/main/java/com/woilsy/mock/options/MockOptions.java
Original file line number Diff line number Diff line change
Expand Up @@ -15,54 +15,54 @@
public class MockOptions {

/**
* 生成规则
* mock服务器监听端口
*/
private List<Rule> rules;
private int port;

/**
* mock数据来源
* 生成规则
*/
private DataSource[] dataSources;
private final List<Rule> rules;

/**
* mock服务器监听端口
* mock数据来源
*/
private int port;
private final DataSource[] dataSources;

/**
* 对于自动生成的bean数据,是否每次都重新生成访问
*/
private boolean dynamicAccess;
private final boolean dynamicAccess;

/**
* 是否显示解析log
*/
private boolean showParseLog;
private final boolean showParseLog;

/**
* 生成的List数量,默认为1
*/
private int mockListSize = 1;
private final int mockListSize;

/**
* 最小mock列表数量
*/
private int minMockListSize;
private final int minMockListSize;

/**
* 最大mock列表数量
*/
private int maxMockListSize;
private final int maxMockListSize;

/**
* 生产的List数量随机,从0到mockListCount
*/
private boolean mockListCountRandom = false;
private final boolean mockListCountRandom;

/**
* 是否开启通知栏
*/
private boolean enableNotification = false;
private final boolean enableNotification;

public static MockOptions getDefault() {
return new MockOptions
Expand Down Expand Up @@ -104,34 +104,14 @@ public int getMockListSize() {
return mockListSize;
}

public void setMockListSize(int mockListSize) {
this.mockListSize = mockListSize;
}

public int getPort() {
return port;
}

public void setRules(List<Rule> rules) {
this.rules = rules;
}

public void setDataSources(DataSource[] dataSources) {
this.dataSources = dataSources;
}

public boolean isShowParseLog() {
return showParseLog;
}

public void setShowParseLog(boolean showParseLog) {
this.showParseLog = showParseLog;
}

public void setDynamicAccess(boolean dynamicAccess) {
this.dynamicAccess = dynamicAccess;
}

public boolean isDynamicAccess() {
return dynamicAccess;
}
Expand Down
4 changes: 4 additions & 0 deletions mock/src/main/java/com/woilsy/mock/parse/MockDataParse.java
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
import com.woilsy.mock.utils.ClassUtils;
import com.woilsy.mock.utils.GsonUtil;
import com.woilsy.mock.utils.LogUtil;
import org.jetbrains.annotations.Nullable;

import java.lang.reflect.Method;
import java.lang.reflect.Type;
Expand All @@ -31,6 +32,7 @@ public static String parseType(Type type) {
}
}

@Nullable
public static String getHttpData(String path, String method) {
HttpInfo httpInfo = findHttpInfo(path, method);
if (httpInfo == null) {
Expand All @@ -40,6 +42,7 @@ public static String getHttpData(String path, String method) {
}
}

@Nullable
public static HttpInfo findHttpInfo(String encodedPath, String method) {
//encodedPath是一个实际地址 例如 /op/globalModuleConfig/{location} 但其实际地址 /op/globalModuleConfig/5 所以需要进行匹配
String[] split1 = encodedPath.split("/");
Expand Down Expand Up @@ -155,6 +158,7 @@ public static void parseMethod(MockStrategy mockStrategy, Method m) {
parseMethod(m, getMockPriority(mockStrategy, m));
}

@Nullable
public static MockPriority getMockPriority(MockStrategy mockStrategy, Method m) {
if (mockStrategy == MockStrategy.EXCLUDE) {
MockExclude mockExclude = m.getAnnotation(MockExclude.class);
Expand Down
21 changes: 21 additions & 0 deletions mock/src/main/java/com/woilsy/mock/parse/MockOptionsAgent.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
package com.woilsy.mock.parse;

import com.woilsy.mock.generate.Rule;

import java.util.List;

public interface MockOptionsAgent {

List<Rule> getRules();

boolean isShowParseLog();

boolean isMockListCountRandom();

int getMockListSize();

int getMinMockListSize();

int getMaxMockListSize();

}
Loading

0 comments on commit b7bedc8

Please sign in to comment.