package quant.rich;

import java.lang.reflect.Field;
import java.lang.reflect.Type;
import java.util.Map;

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.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.com")
                .or(r -> r.hostContains("emapp"))
                .build();
        context = new RequestContext(Map.of(), "https", "mbs.emoney.com");

        Assertions.assertTrue(rule.matches(context), "测试失败");

        context = new RequestContext(Map.of(), "https", "emapp-static.oss-cn-shanghai.aliyuncs.com");
        Assertions.assertTrue(rule.matches(context), "测试失败");
        
        context = new RequestContext(Map.of(), "https", "hao123.com");
        Assertions.assertFalse(rule.matches(context), "测试失败");
        
        
        //Assertions.assertEquals("{\"info\":\"m\",\"weight\":\"100kg/m\"}", JSON.toJSONString(humanWeight));
    }
    
}
