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 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)); } }