diff --git a/scfs-api-test/src/main/java/com/czcb/scfs/api/test/RefGenTestMethod.java b/scfs-api-test/src/main/java/com/czcb/scfs/api/test/RefGenTestMethod.java index 70741b3..b23e203 100644 --- a/scfs-api-test/src/main/java/com/czcb/scfs/api/test/RefGenTestMethod.java +++ b/scfs-api-test/src/main/java/com/czcb/scfs/api/test/RefGenTestMethod.java @@ -1,6 +1,7 @@ package com.czcb.scfs.api.test; import lombok.experimental.UtilityClass; +import org.assertj.core.util.Lists; import java.lang.reflect.Method; import java.math.BigDecimal; @@ -182,4 +183,47 @@ public class RefGenTestMethod { .replace("\"", "")); } } + + public static void genService(Class clazz) { + print("import com.czcb.scfs.api.core.ApiClient;\n" + + "import com.czcb.scfs.api.core.http.HttpHeaders;\n" + + "import com.czcb.scfs.api.core.http.HttpResponse;\n" + + "import com.czcb.scfs.api.core.http.RequestBody;\n" + + "import com.czcb.scfs.api.core.util.Json;\n" + + "import com.czcb.scfs.api.service.TestHttpResponse;\n" + + "import com.czcb.scfs.api.service.v2.*;\n" + + "import com.czcb.scfs.api.service.v1.*;\n" + + "import org.assertj.core.util.Lists;\n" + + "import org.junit.jupiter.api.Assertions;\n" + + "import org.junit.jupiter.api.Test;\n" + + "import org.junit.jupiter.api.extension.ExtendWith;\n" + + "import org.mockito.InjectMocks;\n" + + "import org.mockito.Mock;\n" + + "import org.mockito.Mockito;\n" + + "import org.mockito.junit.jupiter.MockitoExtension;\n" + + "\n" + + "import java.math.BigDecimal;\n\n"); + + print("@ExtendWith(MockitoExtension.class)\n"); + print("void %sTest {\n", clazz.getSimpleName()); + print("@InjectMocks\n"); + print("private %s service\n\n", clazz.getSimpleName()); + + print("@Mocks\n"); + print("private ApiClient apiClient\n\n"); + + Method[] methods = clazz.getMethods(); + for (Method method : methods) { + if (Lists.list("getClass", "hashCode", "equals", "clone", "toString", "notify", "notifyAll", "wait", "finalize").contains(method.getName())) { + continue; + } + + String name = method.getName(); + Class response = method.getReturnType(); + Class request = method.getParameterTypes()[0]; + gen(request, response, name, method.getName()); + } + + print("}\n"); + } } diff --git a/scfs-api-test/src/test/java/com/czcb/scfs/api/test/RefGenTestMethodTest.java b/scfs-api-test/src/test/java/com/czcb/scfs/api/test/RefGenTestMethodTest.java index 641c8c7..b332a14 100644 --- a/scfs-api-test/src/test/java/com/czcb/scfs/api/test/RefGenTestMethodTest.java +++ b/scfs-api-test/src/test/java/com/czcb/scfs/api/test/RefGenTestMethodTest.java @@ -1,5 +1,6 @@ package com.czcb.scfs.api.test; +import com.czcb.scfs.api.service.v2.account.AccountService; import com.czcb.scfs.api.service.v2.account.model.*; import com.czcb.scfs.api.service.v2.bills.model.*; import com.czcb.scfs.api.service.v2.bmd.model.*; @@ -273,4 +274,9 @@ class RefGenTestMethodTest { // RefGenTestMethod.gen(TradeOrderRepayRequest.class, TradeOrderRepayResponse.class, // "tradeOrderRepay", "/trade-orders/credit-repay"); } + + @Test + void genServiceTest() { + RefGenTestMethod.genService(AccountService.class); + } } \ No newline at end of file