60 lines
2.2 KiB
Java
60 lines
2.2 KiB
Java
package quant.rich;
|
||
|
||
import java.lang.reflect.Field;
|
||
import java.lang.reflect.Type;
|
||
import java.util.Map;
|
||
import java.util.function.Consumer;
|
||
|
||
import org.junit.jupiter.api.Assertions;
|
||
import org.junit.jupiter.api.Test;
|
||
import quant.rich.emoney.patch.okhttp.RequestContext;
|
||
import quant.rich.emoney.patch.okhttp.PatchOkHttp;
|
||
import quant.rich.emoney.patch.okhttp.PatchOkHttpRule;
|
||
|
||
public class PatchOkHttpTest {
|
||
|
||
@Test
|
||
void test() {
|
||
|
||
PatchOkHttpRule rule;
|
||
RequestContext context;
|
||
|
||
rule = PatchOkHttpRule.when().isHttps().build();
|
||
context = new RequestContext(Map.of(), "https", "localhost");
|
||
|
||
Assertions.assertTrue(rule.matches(context), "测试失败");
|
||
|
||
rule = PatchOkHttpRule.when().hostEndsWith("emoney.cn")
|
||
.or(c -> c.hostContains("localhost"))
|
||
.or(a -> a.hostContains("emapp"))
|
||
.or(b -> b.hasHeaderName("X-Protocol-Id"))
|
||
.overrideIf("User-Agent", "okhttp/3.12.2")
|
||
.build();
|
||
context = new RequestContext(Map.of(), "https", "mbs.emoney.cn");
|
||
|
||
Assertions.assertTrue(rule.matches(context), "测试失败");
|
||
|
||
context = new RequestContext(Map.of(), "https", "emapp-static.oss-cn-shanghai.aliyuncs.com");
|
||
Assertions.assertTrue(rule.matches(context), "测试失败");
|
||
|
||
// 测试 Override
|
||
String[] modifier = new String[] {""};
|
||
Consumer<String> consumer = str -> {
|
||
modifier[0] = str;
|
||
};
|
||
PatchOkHttp.apply(rule);
|
||
PatchOkHttp.match(context, "User-Agent", consumer);
|
||
Assertions.assertTrue("okhttp/3.12.2".equals(modifier[0]), "测试失败:User-Agent 覆写失败");
|
||
|
||
modifier[0] = "";
|
||
context = new RequestContext(Map.of(), "https", "hao123.com");
|
||
Assertions.assertFalse(rule.matches(context), "测试失败");
|
||
PatchOkHttp.match(context, "User-Agent", consumer);
|
||
Assertions.assertTrue("".equals(modifier[0]), "测试失败:User-Agent 不覆写失败");
|
||
|
||
|
||
//Assertions.assertEquals("{\"info\":\"m\",\"weight\":\"100kg/m\"}", JSON.toJSONString(humanWeight));
|
||
}
|
||
|
||
}
|