From e67c8567e04862ef854791190d030d5b79b8391e Mon Sep 17 00:00:00 2001 From: 13009 Date: Thu, 20 Jun 2024 17:13:16 +0800 Subject: [PATCH] =?UTF-8?q?test:=20cat=20=E5=8D=95=E5=85=83=E6=B5=8B?= =?UTF-8?q?=E8=AF=95=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../czcb/scfs/service/cat/cipher/KeyText.java | 94 +++ .../scfs/service/cat/cipher/MockResponse.java | 87 +++ .../service/cat/cipher/TestHttpResponse.java | 27 + .../scfs/service/cat/cipher/TestPrivacy.java | 35 ++ .../cat/cipher/TestPrivacyDecryptor.java | 16 + .../cat/cipher/TestPrivacyEncryptor.java | 16 + .../scfs/service/cat/cipher/TestProfile.java | 13 + .../service/cat/cipher/TestSecretCipher.java | 10 + .../scfs/service/cat/cipher/TestSigner.java | 19 + .../scfs/service/cat/cipher/TestVerifier.java | 17 + .../service/cat/order/OrderServiceTest.java | 549 ++++++++++++++++++ .../cat/project/ProjectServiceTest.java | 549 ++++++++++++++++++ .../scfs/api/test/RefGenTestMethodTest.java | 44 ++ 13 files changed, 1476 insertions(+) create mode 100644 scfs-api-service-cat/src/test/java/com/czcb/scfs/service/cat/cipher/KeyText.java create mode 100644 scfs-api-service-cat/src/test/java/com/czcb/scfs/service/cat/cipher/MockResponse.java create mode 100644 scfs-api-service-cat/src/test/java/com/czcb/scfs/service/cat/cipher/TestHttpResponse.java create mode 100644 scfs-api-service-cat/src/test/java/com/czcb/scfs/service/cat/cipher/TestPrivacy.java create mode 100644 scfs-api-service-cat/src/test/java/com/czcb/scfs/service/cat/cipher/TestPrivacyDecryptor.java create mode 100644 scfs-api-service-cat/src/test/java/com/czcb/scfs/service/cat/cipher/TestPrivacyEncryptor.java create mode 100644 scfs-api-service-cat/src/test/java/com/czcb/scfs/service/cat/cipher/TestProfile.java create mode 100644 scfs-api-service-cat/src/test/java/com/czcb/scfs/service/cat/cipher/TestSecretCipher.java create mode 100644 scfs-api-service-cat/src/test/java/com/czcb/scfs/service/cat/cipher/TestSigner.java create mode 100644 scfs-api-service-cat/src/test/java/com/czcb/scfs/service/cat/cipher/TestVerifier.java create mode 100644 scfs-api-service-cat/src/test/java/com/czcb/scfs/service/cat/order/OrderServiceTest.java create mode 100644 scfs-api-service-cat/src/test/java/com/czcb/scfs/service/cat/project/ProjectServiceTest.java diff --git a/scfs-api-service-cat/src/test/java/com/czcb/scfs/service/cat/cipher/KeyText.java b/scfs-api-service-cat/src/test/java/com/czcb/scfs/service/cat/cipher/KeyText.java new file mode 100644 index 0000000..946f072 --- /dev/null +++ b/scfs-api-service-cat/src/test/java/com/czcb/scfs/service/cat/cipher/KeyText.java @@ -0,0 +1,94 @@ +package com.czcb.scfs.service.cat.cipher; + +import com.czcb.scfs.api.core.util.PemFile; + +import java.security.PrivateKey; +import java.security.cert.X509Certificate; + +/** + * @author wangwei + * @date 2024/2/20 + */ +public final class KeyText { + + public static final String PRIVATE_TEXT_SM2 = "-----BEGIN PRIVATE KEY-----\n" + + "MIGTAgEAMBMGByqGSM49AgEGCCqBHM9VAYItBHkwdwIBAQQgEbNA+Qs8+nMspo7ikBiR9KRl8nc2\n" + + "DL337j+2lmK9McCgCgYIKoEcz1UBgi2hRANCAAR3JQFY2SNjXJIwwQVfa3v+fjpUpi+CYAWJ1Umo\n" + + "/AjGWv28USDdp9nmBzj2Y+ts+iFbt5vTOoO+8z4L5ybEnKJ4\n" + + "-----END PRIVATE KEY-----"; + + public static final String CERTIFICATE_TEXT_SM2 = "-----BEGIN CERTIFICATE-----\n" + + "MIICKTCCAc+gAwIBAgIhALR78lDRPW3HLShp00DN+Lgw8s/TILZSWGw9SGH4bKNVMAoGCCqBHM9V\n" + + "AYN1MIGNMQswCQYDVQQGEwJDTjESMBAGA1UECAwJ5rWZ5rGf55yBMRIwEAYDVQQHDAnmna3lt57l\n" + + "uIIxITAfBgNVBAoMGOa1meaxn+eooOW3nuWVhuS4mumTtuihjDEYMBYGA1UECwwP5pWw5a2X6YeR\n" + + "6J6N6YOoMRkwFwYDVQQDDBBzY2ZzLmN6Y2IuY29tLmNuMB4XDTI0MDIyMDAzMzgxOVoXDTI5MDIy\n" + + "MDAzMzgxOVowgY0xCzAJBgNVBAYTAkNOMRIwEAYDVQQIDAnmtZnmsZ/nnIExEjAQBgNVBAcMCead\n" + + "reW3nuW4gjEhMB8GA1UECgwY5rWZ5rGf56ig5bee5ZWG5Lia6ZO26KGMMRgwFgYDVQQLDA/mlbDl\n" + + "rZfph5Hono3pg6gxGTAXBgNVBAMMEHNjZnMuY3pjYi5jb20uY24wWTATBgcqhkjOPQIBBggqgRzP\n" + + "VQGCLQNCAAR3JQFY2SNjXJIwwQVfa3v+fjpUpi+CYAWJ1Umo/AjGWv28USDdp9nmBzj2Y+ts+iFb\n" + + "t5vTOoO+8z4L5ybEnKJ4MAoGCCqBHM9VAYN1A0gAMEUCIQCx+TJJMHj5BZuylFt5pJaFrvJj9NaH\n" + + "ggiLQndrrMctYgIgdhZLUVIZdVdmR0zMv3OWmeiI71B1d/80XLkISQF/qvg=\n" + + "-----END CERTIFICATE-----"; + + + public static final String PRIVATE_TEXT_RSA = "-----BEGIN PRIVATE KEY-----\n" + + "MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDDwbOmleN4X6YD\n" + + "iTUk5tuFhhqJYGIdSBb7x14E5OCd/2UIxx8l/tF162rAlPeYquHM34mi1Ha0Ana9\n" + + "6ttMNMDMyq3TBUxq7n8H0pLU8fboCorU83owRj4Eqrfk7tG0cMgeUmrYbaTXPD5d\n" + + "lRvKdpFxN1UNRav+mYUb1OPxoHuJRxoeRGAm/RWC1nTj9UYeAQQKehb5FhWD3UBL\n" + + "Cxk0iXgPrfykkZDeLeUI9fA+dzEDnrHDmz+jt9fQnup3RVku7/n1DQQyCOUDOn24\n" + + "NGfBXciDeivJ3/bZ1SJy5t/4Hu6GyqyJKqP3Oe9UAbkbZWOnIu186R6e7NBk5n/+\n" + + "HgDf17CLAgMBAAECggEAOyoOoZEYxHdoJhZwlPwfKe57k7ypOr9gju1VObZxOt+H\n" + + "Sk1gWSv4Y6Loy1batG4lO7XuE+QSElrSR5k1eYVSJjM1sRsfWwxFIXifvzN4U+5n\n" + + "wm/qJK/+K4vrc4pIoDgcC6oON+Z/lTvUf5VC5oDKeYTnNFEz6Am/RMelsxA1diob\n" + + "SNSwPTPijqy0b63IHSWAbB+zmurRZPOSzy5lZ2F+xdYhnF+j9XprP4iJiHydvrgH\n" + + "RJbxwsiphjgPeqPSVSs5MTQ0zDumRkbMBANk/Y5rCGybBSGpW1BwXZjTp3jtY9Tr\n" + + "DmXDbzsiZWx/D1wFd0F+BhS6vg3dUkX63mSDOaTvKQKBgQDpLcwdAkhvWbRs03ev\n" + + "5/BgmgHO2iwJkAL6yyX9wox4NOYe1FInBht5Nc/ZC0mXy5E4Wmd1SGAoYt8R2vxo\n" + + "LnIyJnRE4iUKWxL87okKCDW4b3AaMTMZXyKmkMgMPDvpk6Odag5Ey2xpojb8TP7q\n" + + "QtZu5DWTkU2lR+2Z4qH8+DFC2QKBgQDW6k4guiR0ZP7Po1QLQWXwRfQU4WUlxaKp\n" + + "MEp6hsdKRN2MPbbPqtg4PoBpc1Hpvx2SX3YGAaRIwJtLGuoOq4TnVJ+9SKI5VDqT\n" + + "YcjE4UZm1DDmm1XYaCJKYeN2Swr2xl2VA6LJpHHZDLXC7YVshZ/53lJhPTbnBpIE\n" + + "0T+MBCIoAwKBgAtSS+zEpZuycU4vXkpOKp+mGpxef3DfayWeI3QUtBlKCDpK+Moo\n" + + "Q8E42aSiJaqXGa/ww8EwCGstkcMeLM8qIiVJNK/7guzjyyI4urKf/2u7DWhYJzD+\n" + + "K4KG2Q+vBQGsR29nLNYuQk9GrwDFBEN/h0XPEsLddTWnLmQgWtkbe9jRAoGBAIAj\n" + + "dW+37HJloTPl+v82//ORkeU9OlSaEND1lQKXB431n261gSEyiPaH9YJqGqXWqGgU\n" + + "eMc+BVjHVhAivPkANR7EavWtr+Okn8QuIkmY06QN0hY8+aMs+30D/l4Sgjf+r99g\n" + + "Kpg1bxftpxXRDqNUzLxrXQzTNb/rP/aVWGFAOalHAoGAPiW3cKvfTOLIS0PFxGOF\n" + + "EKQzr/TDGnKJNKeGJ25VOKPnq8RDX/Ik2+hNjdThOWApIgDQo4JtUMCxCDM7lRcu\n" + + "ne9B/UShSzd8uuZgHZVSFD+pfPJvyVpZ/ORHvrQqUAtveQgk7Cpp2tuvsixbBhdQ\n" + + "E6ZWsef5uyYdyjLp2C4cl2A=\n" + + "-----END PRIVATE KEY-----\n"; + + public static final String CERTIFICATE_TEXT_RSA = "-----BEGIN CERTIFICATE-----\n" + + "MIIDyzCCArOgAwIBAgIUBs3aqSytdZmDJQJ2R4RzMMF1YpEwDQYJKoZIhvcNAQEL\n" + + "BQAwgY0xCzAJBgNVBAYTAkNOMRIwEAYDVQQIDAnmtZnmsZ/nnIExEjAQBgNVBAcM\n" + + "CeadreW3nuW4gjEhMB8GA1UECgwY5rWZ5rGf56ig5bee5ZWG5Lia6ZO26KGMMRgw\n" + + "FgYDVQQLDA/mlbDlrZfph5Hono3pg6gxGTAXBgNVBAMMEHNjZnMuY3pjYi5jb20u\n" + + "Y24wHhcNMjQwMjEzMDk1MjQwWhcNMzQwMjEwMDk1MjQwWjCBjTELMAkGA1UEBhMC\n" + + "Q04xEjAQBgNVBAgMCea1meaxn+ecgTESMBAGA1UEBwwJ5p2t5bee5biCMSEwHwYD\n" + + "VQQKDBjmtZnmsZ/nqKDlt57llYbkuJrpk7booYwxGDAWBgNVBAsMD+aVsOWtl+mH\n" + + "keiejemDqDEZMBcGA1UEAwwQc2Nmcy5jemNiLmNvbS5jbjCCASIwDQYJKoZIhvcN\n" + + "AQEBBQADggEPADCCAQoCggEBAMPBs6aV43hfpgOJNSTm24WGGolgYh1IFvvHXgTk\n" + + "4J3/ZQjHHyX+0XXrasCU95iq4czfiaLUdrQCdr3q20w0wMzKrdMFTGrufwfSktTx\n" + + "9ugKitTzejBGPgSqt+Tu0bRwyB5SathtpNc8Pl2VG8p2kXE3VQ1Fq/6ZhRvU4/Gg\n" + + "e4lHGh5EYCb9FYLWdOP1Rh4BBAp6FvkWFYPdQEsLGTSJeA+t/KSRkN4t5Qj18D53\n" + + "MQOescObP6O319Ce6ndFWS7v+fUNBDII5QM6fbg0Z8FdyIN6K8nf9tnVInLm3/ge\n" + + "7obKrIkqo/c571QBuRtlY6ci7XzpHp7s0GTmf/4eAN/XsIsCAwEAAaMhMB8wHQYD\n" + + "VR0OBBYEFPxZwIS1s2a+59+F4mEvMwf01exmMA0GCSqGSIb3DQEBCwUAA4IBAQBE\n" + + "5FuyVUFm4hRxsO8Jl412lxEvtMtgB3QT0mj0+SWVAp/Cb7Jh3yqkszmnx3CC64lB\n" + + "OzfU8rsQMu+R8NoBEUIO03vD9DhozYE67iUcmzwKil6IwedA8QxzL/UZpbf/1SqC\n" + + "Vf4/z0a2dZO7ys/WYPJh+bxsiB5UIfmhnNDIKQoOMrFEzkxz6KHpNXQGt0fj7ugd\n" + + "8HPSkDtYBoCluI9YfWeOazmVAVZxhpLSMi+6NzVwdXjOdKTgxAYMkXIdtPKLiC0z\n" + + "zycbiBuKN7tL/NtHfpYQ1noakUahMzw1XvUNTs47PIaDgqG+mjZR3hRRKQq3iNHy\n" + + "pwDwvSima1XX0KnrzLg+\n" + + "-----END CERTIFICATE-----\n"; + + public static PrivateKey loadTestPrivateKeyRSA() { + return PemFile.loadPrivateKeyFromString(PRIVATE_TEXT_RSA); + } + + public static X509Certificate loadTestRSA() { + return PemFile.loadX509FromString(CERTIFICATE_TEXT_RSA); + } +} diff --git a/scfs-api-service-cat/src/test/java/com/czcb/scfs/service/cat/cipher/MockResponse.java b/scfs-api-service-cat/src/test/java/com/czcb/scfs/service/cat/cipher/MockResponse.java new file mode 100644 index 0000000..6b9685f --- /dev/null +++ b/scfs-api-service-cat/src/test/java/com/czcb/scfs/service/cat/cipher/MockResponse.java @@ -0,0 +1,87 @@ +package com.czcb.scfs.service.cat.cipher; + +import com.czcb.scfs.api.core.ApiClient; +import com.czcb.scfs.api.core.DefaultChannel; +import com.czcb.scfs.api.core.Profile; +import com.czcb.scfs.api.core.cipher.*; +import com.czcb.scfs.api.core.http.ApiClientBuilder; +import com.czcb.scfs.api.core.http.DefaultHttpProfile; +import com.czcb.scfs.api.core.http.LogLevel; +import com.czcb.scfs.api.core.util.DateTimes; +import com.czcb.scfs.api.core.util.Nonce; +import com.czcb.scfs.api.core.util.Strings; +import org.mockserver.model.HttpResponse; + +import java.nio.charset.StandardCharsets; +import java.security.PrivateKey; +import java.security.cert.X509Certificate; +import java.util.ArrayList; +import java.util.List; + +import static com.czcb.scfs.api.core.Constants.*; +import static org.mockserver.model.HttpResponse.response; + +public class MockResponse { + private static ApiClient apiClient; + + public static ApiClient getApiClient() { + if (apiClient == null) { + apiClient = ApiClientBuilder.custom() + .profile(profile()) + .build(); + } + return apiClient; + } + + private static Profile profile() { + PrivateKey privateKey = KeyText.loadTestPrivateKeyRSA(); + + X509Certificate certificate = KeyText.loadTestRSA(); + List list = new ArrayList<>(); + list.add(certificate); + CertificateProvider certificateProvider = new LocalCertificateProvider(list); + Privacy privacy = new TestPrivacy(privateKey, certificateProvider); + Signature signature = new DefaultSignature(certificateProvider, new TestSigner(privateKey, "6CDDAA92CAD75998325027647847330C1756291"), new TestVerifier(certificateProvider)); + + return new TestProfile( + privacy, signature, new DefaultChannel.Builder() + .channelNo("0000") + .appNo("100000") + .build(), new DefaultHttpProfile.Builder() + .online(false) + .logLevel(LogLevel.BASIC) + .compressionEnabled(false) + .host("http://127.0.0.1:8888") + .build() + ); + } + + public static HttpResponse mock(String body) { + // 对称密钥 + byte[] secret = getApiClient().getProfile().getPrivacy().getSecretCipher().getSecretKey(); + // 加密响应报文 + String responseBody = getApiClient().getProfile().getPrivacy().getSecretCipher().encrypt(secret, body.getBytes(StandardCharsets.UTF_8)); + + // 加密对称密钥 + String secretKey = getApiClient().getProfile().getPrivacy().getEncryptor().encrypt(Strings.toStr(secret)); + + HttpResponse mock = response() + .withBody(responseBody) + .withHeader(NONCE, Nonce.ofNonce()) + .withHeader(SECRET_KEY, secretKey) + .withHeader(REQUEST_ID, Nonce.ofNonce()) + .withHeader(BANK_CERTIFICATE_SERIAL, "6CDDAA92CAD75998325027647847330C1756291") + .withHeader(CHANNEL_CERTIFICATE_SERIAL, "6CDDAA92CAD75998325027647847330C1756291") + .withHeader(TIMESTAMP, DateTimes.ofTimestamp()); + + String buildAuth = NONCE + "=" + mock.getHeader(NONCE).get(0) + "," + + TIMESTAMP + "=" + mock.getHeader(TIMESTAMP).get(0) + "," + + BANK_CERTIFICATE_SERIAL + "=" + mock.getHeader(BANK_CERTIFICATE_SERIAL).get(0) + "," + + CHANNEL_CERTIFICATE_SERIAL + "=" + mock.getHeader(CHANNEL_CERTIFICATE_SERIAL).get(0) + "," + + SECRET_KEY + "=" + secretKey; + + String message = buildAuth + "\n" + responseBody + "\n"; + mock.withHeader(SIGNATURE, apiClient.getProfile().getSignature().getSigner().sign(message).getSignature()); + return mock; + } +} diff --git a/scfs-api-service-cat/src/test/java/com/czcb/scfs/service/cat/cipher/TestHttpResponse.java b/scfs-api-service-cat/src/test/java/com/czcb/scfs/service/cat/cipher/TestHttpResponse.java new file mode 100644 index 0000000..756be14 --- /dev/null +++ b/scfs-api-service-cat/src/test/java/com/czcb/scfs/service/cat/cipher/TestHttpResponse.java @@ -0,0 +1,27 @@ +package com.czcb.scfs.service.cat.cipher; + +import com.czcb.scfs.api.core.ApiResponse; +import com.czcb.scfs.api.core.http.HttpMethod; +import com.czcb.scfs.api.core.http.HttpRequest; +import com.czcb.scfs.api.core.http.HttpResponse; +import com.czcb.scfs.api.core.http.OriginalResponse; + +/** + * @author wangwei + * @date 2024/4/18 + */ +public class TestHttpResponse { + + public static HttpResponse create(String url, ApiResponse apiResponse, Class responseType) { + return new HttpResponse.Builder() + .serviceResponseType(responseType) + .originalResponse(new OriginalResponse.Builder() + .request(new HttpRequest.Builder() + .url(url) + .httpMethod(HttpMethod.POST) + .build()) + .body(apiResponse.toJsonResponse().getBody()) + .build()) + .build(); + } +} diff --git a/scfs-api-service-cat/src/test/java/com/czcb/scfs/service/cat/cipher/TestPrivacy.java b/scfs-api-service-cat/src/test/java/com/czcb/scfs/service/cat/cipher/TestPrivacy.java new file mode 100644 index 0000000..95f3625 --- /dev/null +++ b/scfs-api-service-cat/src/test/java/com/czcb/scfs/service/cat/cipher/TestPrivacy.java @@ -0,0 +1,35 @@ +package com.czcb.scfs.service.cat.cipher; + +import com.czcb.scfs.api.core.cipher.*; + +import java.security.PrivateKey; + +public class TestPrivacy implements Privacy { + // 对称加密/解密器 + private final SecretCipher secretCipher; + // 非对称加密器 + private final PrivacyEncryptor privacyEncryptor; + // 非对称解密器 + private final PrivacyDecryptor privacyDecryptor; + + public TestPrivacy(PrivateKey privateKey, CertificateProvider certificateProvider) { + this.secretCipher = new TestSecretCipher(); + this.privacyEncryptor = new TestPrivacyEncryptor(certificateProvider.getAvailableCertificate().getPublicKey()); + this.privacyDecryptor = new TestPrivacyDecryptor(privateKey); + } + + @Override + public SecretCipher getSecretCipher() { + return secretCipher; + } + + @Override + public PrivacyEncryptor getEncryptor() { + return privacyEncryptor; + } + + @Override + public PrivacyDecryptor getDecryptor() { + return privacyDecryptor; + } +} diff --git a/scfs-api-service-cat/src/test/java/com/czcb/scfs/service/cat/cipher/TestPrivacyDecryptor.java b/scfs-api-service-cat/src/test/java/com/czcb/scfs/service/cat/cipher/TestPrivacyDecryptor.java new file mode 100644 index 0000000..5dbe64a --- /dev/null +++ b/scfs-api-service-cat/src/test/java/com/czcb/scfs/service/cat/cipher/TestPrivacyDecryptor.java @@ -0,0 +1,16 @@ +package com.czcb.scfs.service.cat.cipher; + +import com.czcb.scfs.api.core.cipher.AbstractPrivacyDecryptor; + +import java.security.PrivateKey; + +public class TestPrivacyDecryptor extends AbstractPrivacyDecryptor { + /** + * 构造敏感信息解密的抽象类 + * + * @param privateKey 加密使用的私钥 + */ + protected TestPrivacyDecryptor(PrivateKey privateKey) { + super("RSA/ECB/OAEPWithSHA-1AndMGF1Padding", privateKey, null); + } +} diff --git a/scfs-api-service-cat/src/test/java/com/czcb/scfs/service/cat/cipher/TestPrivacyEncryptor.java b/scfs-api-service-cat/src/test/java/com/czcb/scfs/service/cat/cipher/TestPrivacyEncryptor.java new file mode 100644 index 0000000..1ca6e78 --- /dev/null +++ b/scfs-api-service-cat/src/test/java/com/czcb/scfs/service/cat/cipher/TestPrivacyEncryptor.java @@ -0,0 +1,16 @@ +package com.czcb.scfs.service.cat.cipher; + +import com.czcb.scfs.api.core.cipher.AbstractPrivacyEncryptor; + +import java.security.PublicKey; + +public class TestPrivacyEncryptor extends AbstractPrivacyEncryptor { + /** + * 构造敏感信息加密的抽象类 + * + * @param publicKey 加密使用的公钥 + */ + protected TestPrivacyEncryptor(PublicKey publicKey) { + super("RSA/ECB/OAEPWithSHA-1AndMGF1Padding", publicKey, null, ""); + } +} diff --git a/scfs-api-service-cat/src/test/java/com/czcb/scfs/service/cat/cipher/TestProfile.java b/scfs-api-service-cat/src/test/java/com/czcb/scfs/service/cat/cipher/TestProfile.java new file mode 100644 index 0000000..c5ca6d2 --- /dev/null +++ b/scfs-api-service-cat/src/test/java/com/czcb/scfs/service/cat/cipher/TestProfile.java @@ -0,0 +1,13 @@ +package com.czcb.scfs.service.cat.cipher; + +import com.czcb.scfs.api.core.AbstractProfile; +import com.czcb.scfs.api.core.Channel; +import com.czcb.scfs.api.core.cipher.Privacy; +import com.czcb.scfs.api.core.cipher.Signature; +import com.czcb.scfs.api.core.http.HttpProfile; + +public class TestProfile extends AbstractProfile { + public TestProfile(Privacy privacy, Signature signature, Channel channel, HttpProfile httpProfile) { + super(privacy, signature, channel, httpProfile); + } +} diff --git a/scfs-api-service-cat/src/test/java/com/czcb/scfs/service/cat/cipher/TestSecretCipher.java b/scfs-api-service-cat/src/test/java/com/czcb/scfs/service/cat/cipher/TestSecretCipher.java new file mode 100644 index 0000000..fbaaf98 --- /dev/null +++ b/scfs-api-service-cat/src/test/java/com/czcb/scfs/service/cat/cipher/TestSecretCipher.java @@ -0,0 +1,10 @@ +package com.czcb.scfs.service.cat.cipher; + +import com.czcb.scfs.api.core.cipher.AbstractSecretCipher; + +public class TestSecretCipher extends AbstractSecretCipher { + + protected TestSecretCipher() { + super("AES", "AES/GCM/NoPadding", null, 128); + } +} diff --git a/scfs-api-service-cat/src/test/java/com/czcb/scfs/service/cat/cipher/TestSigner.java b/scfs-api-service-cat/src/test/java/com/czcb/scfs/service/cat/cipher/TestSigner.java new file mode 100644 index 0000000..a8d2ccf --- /dev/null +++ b/scfs-api-service-cat/src/test/java/com/czcb/scfs/service/cat/cipher/TestSigner.java @@ -0,0 +1,19 @@ +package com.czcb.scfs.service.cat.cipher; + +import com.czcb.scfs.api.core.cipher.AbstractSigner; + +import java.security.PrivateKey; + +/** + * @author wangwei + * @since 2.0.0 + */ +public class TestSigner extends AbstractSigner { + + /** + * @param privateKey API私钥 + */ + public TestSigner(PrivateKey privateKey, String certificateSerial) { + super("SHA256withRSA", "SHA256withRSA", privateKey, null, certificateSerial); + } +} diff --git a/scfs-api-service-cat/src/test/java/com/czcb/scfs/service/cat/cipher/TestVerifier.java b/scfs-api-service-cat/src/test/java/com/czcb/scfs/service/cat/cipher/TestVerifier.java new file mode 100644 index 0000000..17f78fd --- /dev/null +++ b/scfs-api-service-cat/src/test/java/com/czcb/scfs/service/cat/cipher/TestVerifier.java @@ -0,0 +1,17 @@ +package com.czcb.scfs.service.cat.cipher; + +import com.czcb.scfs.api.core.cipher.AbstractVerifier; +import com.czcb.scfs.api.core.cipher.CertificateProvider; + +/** + * @author wangwei + * @since 2.0.0 + */ +public class TestVerifier extends AbstractVerifier { + /** + * @param certificateProvider 验签使用的证书管理器,非空 + */ + public TestVerifier(CertificateProvider certificateProvider) { + super("SHA256withRSA", certificateProvider, null); + } +} diff --git a/scfs-api-service-cat/src/test/java/com/czcb/scfs/service/cat/order/OrderServiceTest.java b/scfs-api-service-cat/src/test/java/com/czcb/scfs/service/cat/order/OrderServiceTest.java new file mode 100644 index 0000000..79dad34 --- /dev/null +++ b/scfs-api-service-cat/src/test/java/com/czcb/scfs/service/cat/order/OrderServiceTest.java @@ -0,0 +1,549 @@ +package com.czcb.scfs.service.cat.order; + +import com.czcb.scfs.api.core.ApiClient; +import com.czcb.scfs.api.core.http.HttpHeaders; +import com.czcb.scfs.api.core.http.HttpResponse; +import com.czcb.scfs.api.core.http.RequestBody; +import com.czcb.scfs.api.core.util.Json; +import com.czcb.scfs.service.cat.cipher.TestHttpResponse; +import com.czcb.scfs.service.cat.order.model.*; +import org.assertj.core.util.Lists; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.Mockito; +import org.mockito.junit.jupiter.MockitoExtension; + +import java.math.BigDecimal; + +@ExtendWith(MockitoExtension.class) +class OrderServiceTest { + @InjectMocks + private OrderService service; + + @Mock + private ApiClient apiClient; + + @Test + void tradeOrdersCreateTest() { + TradeOrdersCreateRequest request = new TradeOrdersCreateRequest(); + extractedTradeOrdersCreateRequestParams(request); + extractedTradeOrdersCreateRequestAssertions(request); + + System.out.println(Json.toJson(request)); + String requestJson = Json.toJson(request); + Assertions.assertEquals("{\"channel_no\":\"setChannelNo\",\"app_no\":\"setAppNo\",\"serial_no\":\"setSerialNo\",\"trans_date\":\"setTransDate\",\"trans_tradetime\":\"setTransTradeTime\",\"project_no\":\"setProjectNo\",\"order_no\":\"setOrderNo\",\"order_type\":\"setOrderType\",\"order_amount\":100.0,\"account_no\":\"setAccountNo\",\"account_name\":\"setAccountName\",\"opp_account_no\":\"setOppAccountNo\",\"opp_account_name\":\"setOppAccountName\",\"fee_account_no\":\"setFeeAccountNo\",\"fee_account_name\":\"setFeeAccountName\",\"remark\":\"setRemark\",\"goods_info_list\":[],\"file_list\":[]}", requestJson); + + TradeOrdersCreateResponse response = new TradeOrdersCreateResponse(); + extractedTradeOrdersCreateResponseParams(response); + extractedTradeOrdersCreateResponseAssertions(response); + + System.out.println(Json.toJson(response)); + String responseJson = Json.toJson(response); + Assertions.assertEquals("{\"recode\":\"setRecode\",\"recode_info\":\"setRecodeInfo\",\"sys_serial_no\":\"setSysSerialNo\",\"sys_date\":\"setSysDate\",\"sys_time\":\"setSysTime\"}", responseJson); + + HttpResponse httpResponse = TestHttpResponse.create("/trade-orders/create", response, TradeOrdersCreateResponse.class); + Mockito.when(apiClient.post( + Mockito.eq("/trade-orders/create"), + Mockito.any(HttpHeaders.class), + Mockito.any(RequestBody.class), + Mockito.eq(TradeOrdersCreateResponse.class))) + .thenReturn(httpResponse); + + TradeOrdersCreateResponse result = service.tradeOrdersCreate(request); + + System.out.println(Json.toJson(result)); + String resultJson = Json.toJson(result); + Assertions.assertEquals("{\"recode\":\"setRecode\",\"recode_info\":\"setRecodeInfo\",\"sys_serial_no\":\"setSysSerialNo\",\"sys_date\":\"setSysDate\",\"sys_time\":\"setSysTime\"}", resultJson); + } + + void extractedTradeOrdersCreateRequestParams(TradeOrdersCreateRequest request) { + request.setGoodsInfoLists(Lists.list()); + request.setTransTradeTime("setTransTradeTime"); + request.setOppAccountName("setOppAccountName"); + request.setFeeAccountName("setFeeAccountName"); + request.setTransDate("setTransDate"); + request.setChannelNo("setChannelNo"); + request.setOrderAmount(BigDecimal.valueOf(100.00)); + request.setRemark("setRemark"); + request.setSerialNo("setSerialNo"); + request.setOrderType("setOrderType"); + request.setAppNo("setAppNo"); + request.setFeeAccountNo("setFeeAccountNo"); + request.setAccountNo("setAccountNo"); + request.setAccountName("setAccountName"); + request.setFileLists(Lists.list()); + request.setOppAccountNo("setOppAccountNo"); + request.setOrderNo("setOrderNo"); + request.setProjectNo("setProjectNo"); + } + + void extractedTradeOrdersCreateRequestAssertions(TradeOrdersCreateRequest request) { + Assertions.assertNotNull(request.getGoodsInfoLists()); + Assertions.assertEquals("setTransTradeTime", request.getTransTradeTime()); + Assertions.assertEquals("setOppAccountName", request.getOppAccountName()); + Assertions.assertEquals("setFeeAccountName", request.getFeeAccountName()); + Assertions.assertEquals("setTransDate", request.getTransDate()); + Assertions.assertEquals("setChannelNo", request.getChannelNo()); + Assertions.assertEquals(BigDecimal.valueOf(100.00), request.getOrderAmount()); + Assertions.assertEquals("setRemark", request.getRemark()); + Assertions.assertEquals("setSerialNo", request.getSerialNo()); + Assertions.assertEquals("setOrderType", request.getOrderType()); + Assertions.assertEquals("setAppNo", request.getAppNo()); + Assertions.assertEquals("setFeeAccountNo", request.getFeeAccountNo()); + Assertions.assertEquals("setAccountNo", request.getAccountNo()); + Assertions.assertEquals("setAccountName", request.getAccountName()); + Assertions.assertNotNull(request.getFileLists()); + Assertions.assertEquals("setOppAccountNo", request.getOppAccountNo()); + Assertions.assertEquals("setOrderNo", request.getOrderNo()); + Assertions.assertEquals("setProjectNo", request.getProjectNo()); + } + + void extractedTradeOrdersCreateResponseParams(TradeOrdersCreateResponse response) { + response.setSysDate("setSysDate"); + response.setRecode("setRecode"); + response.setRecodeInfo("setRecodeInfo"); + response.setSysSerialNo("setSysSerialNo"); + response.setSysTime("setSysTime"); + } + + void extractedTradeOrdersCreateResponseAssertions(TradeOrdersCreateResponse response) { + Assertions.assertEquals("setSysDate", response.getSysDate()); + Assertions.assertEquals("setRecode", response.getRecode()); + Assertions.assertEquals("setRecodeInfo", response.getRecodeInfo()); + Assertions.assertEquals("setSysSerialNo", response.getSysSerialNo()); + Assertions.assertEquals("setSysTime", response.getSysTime()); + } + + @Test + void tradeOrdersCancelTest() { + TradeOrdersCancelRequest request = new TradeOrdersCancelRequest(); + extractedTradeOrdersCancelRequestParams(request); + extractedTradeOrdersCancelRequestAssertions(request); + + System.out.println(Json.toJson(request)); + String requestJson = Json.toJson(request); + Assertions.assertEquals("{\"channel_no\":\"setChannelNo\",\"app_no\":\"setAppNo\",\"serial_no\":\"setSerialNo\",\"trans_date\":\"setTransDate\",\"trans_tradetime\":\"setTransTradeTime\",\"order_no\":\"setOrderNo\"}", requestJson); + + TradeOrdersCancelResponse response = new TradeOrdersCancelResponse(); + extractedTradeOrdersCancelResponseParams(response); + extractedTradeOrdersCancelResponseAssertions(response); + + System.out.println(Json.toJson(response)); + String responseJson = Json.toJson(response); + Assertions.assertEquals("{\"recode\":\"setRecode\",\"recode_info\":\"setRecodeInfo\",\"sys_serial_no\":\"setSysSerialNo\",\"sys_date\":\"setSysDate\",\"sys_time\":\"setSysTime\"}", responseJson); + + HttpResponse httpResponse = TestHttpResponse.create("/trade-orders/cancel", response, TradeOrdersCancelResponse.class); + Mockito.when(apiClient.post( + Mockito.eq("/trade-orders/cancel"), + Mockito.any(HttpHeaders.class), + Mockito.any(RequestBody.class), + Mockito.eq(TradeOrdersCancelResponse.class))) + .thenReturn(httpResponse); + + TradeOrdersCancelResponse result = service.tradeOrdersCancel(request); + + System.out.println(Json.toJson(result)); + String resultJson = Json.toJson(result); + Assertions.assertEquals("{\"recode\":\"setRecode\",\"recode_info\":\"setRecodeInfo\",\"sys_serial_no\":\"setSysSerialNo\",\"sys_date\":\"setSysDate\",\"sys_time\":\"setSysTime\"}", resultJson); + } + + void extractedTradeOrdersCancelRequestParams(TradeOrdersCancelRequest request) { + request.setTransTradeTime("setTransTradeTime"); + request.setTransDate("setTransDate"); + request.setChannelNo("setChannelNo"); + request.setSerialNo("setSerialNo"); + request.setAppNo("setAppNo"); + request.setOrderNo("setOrderNo"); + } + + void extractedTradeOrdersCancelRequestAssertions(TradeOrdersCancelRequest request) { + Assertions.assertEquals("setTransTradeTime", request.getTransTradeTime()); + Assertions.assertEquals("setTransDate", request.getTransDate()); + Assertions.assertEquals("setChannelNo", request.getChannelNo()); + Assertions.assertEquals("setSerialNo", request.getSerialNo()); + Assertions.assertEquals("setAppNo", request.getAppNo()); + Assertions.assertEquals("setOrderNo", request.getOrderNo()); + } + + void extractedTradeOrdersCancelResponseParams(TradeOrdersCancelResponse response) { + response.setSysDate("setSysDate"); + response.setRecode("setRecode"); + response.setRecodeInfo("setRecodeInfo"); + response.setSysSerialNo("setSysSerialNo"); + response.setSysTime("setSysTime"); + } + + void extractedTradeOrdersCancelResponseAssertions(TradeOrdersCancelResponse response) { + Assertions.assertEquals("setSysDate", response.getSysDate()); + Assertions.assertEquals("setRecode", response.getRecode()); + Assertions.assertEquals("setRecodeInfo", response.getRecodeInfo()); + Assertions.assertEquals("setSysSerialNo", response.getSysSerialNo()); + Assertions.assertEquals("setSysTime", response.getSysTime()); + } + + @Test + void tradeOrdersQueryTest() { + TradeOrdersQueryRequest request = new TradeOrdersQueryRequest(); + extractedTradeOrdersQueryRequestParams(request); + extractedTradeOrdersQueryRequestAssertions(request); + + System.out.println(Json.toJson(request)); + String requestJson = Json.toJson(request); + Assertions.assertEquals("{\"channel_no\":\"setChannelNo\",\"app_no\":\"setAppNo\",\"serial_no\":\"setSerialNo\",\"trans_date\":\"setTransDate\",\"trans_tradetime\":\"setTransTradeTime\",\"order_no\":\"setOrderNo\"}", requestJson); + + TradeOrdersQueryResponse response = new TradeOrdersQueryResponse(); + extractedTradeOrdersQueryResponseParams(response); + extractedTradeOrdersQueryResponseAssertions(response); + + System.out.println(Json.toJson(response)); + String responseJson = Json.toJson(response); + Assertions.assertEquals("{\"recode\":\"setRecode\",\"recode_info\":\"setRecodeInfo\",\"sys_serial_no\":\"setSysSerialNo\",\"sys_date\":\"setSysDate\",\"sys_time\":\"setSysTime\",\"order_info_list\":[]}", responseJson); + + HttpResponse httpResponse = TestHttpResponse.create("/trade-orders/query", response, TradeOrdersQueryResponse.class); + Mockito.when(apiClient.post( + Mockito.eq("/trade-orders/query"), + Mockito.any(HttpHeaders.class), + Mockito.any(RequestBody.class), + Mockito.eq(TradeOrdersQueryResponse.class))) + .thenReturn(httpResponse); + + TradeOrdersQueryResponse result = service.tradeOrdersQuery(request); + + System.out.println(Json.toJson(result)); + String resultJson = Json.toJson(result); + Assertions.assertEquals("{\"recode\":\"setRecode\",\"recode_info\":\"setRecodeInfo\",\"sys_serial_no\":\"setSysSerialNo\",\"sys_date\":\"setSysDate\",\"sys_time\":\"setSysTime\",\"order_info_list\":[]}", resultJson); + } + + void extractedTradeOrdersQueryRequestParams(TradeOrdersQueryRequest request) { + request.setTransTradeTime("setTransTradeTime"); + request.setTransDate("setTransDate"); + request.setChannelNo("setChannelNo"); + request.setSerialNo("setSerialNo"); + request.setAppNo("setAppNo"); + request.setOrderNo("setOrderNo"); + } + + void extractedTradeOrdersQueryRequestAssertions(TradeOrdersQueryRequest request) { + Assertions.assertEquals("setTransTradeTime", request.getTransTradeTime()); + Assertions.assertEquals("setTransDate", request.getTransDate()); + Assertions.assertEquals("setChannelNo", request.getChannelNo()); + Assertions.assertEquals("setSerialNo", request.getSerialNo()); + Assertions.assertEquals("setAppNo", request.getAppNo()); + Assertions.assertEquals("setOrderNo", request.getOrderNo()); + } + + void extractedTradeOrdersQueryResponseParams(TradeOrdersQueryResponse response) { + response.setOrderInfoLists(Lists.list()); + response.setSysDate("setSysDate"); + response.setRecode("setRecode"); + response.setRecodeInfo("setRecodeInfo"); + response.setSysSerialNo("setSysSerialNo"); + response.setSysTime("setSysTime"); + } + + void extractedTradeOrdersQueryResponseAssertions(TradeOrdersQueryResponse response) { + Assertions.assertNotNull(response.getOrderInfoLists()); + Assertions.assertEquals("setSysDate", response.getSysDate()); + Assertions.assertEquals("setRecode", response.getRecode()); + Assertions.assertEquals("setRecodeInfo", response.getRecodeInfo()); + Assertions.assertEquals("setSysSerialNo", response.getSysSerialNo()); + Assertions.assertEquals("setSysTime", response.getSysTime()); + } + + @Test + void tradeOrdersPaySettleTest() { + TradeOrdersPaySettleRequest request = new TradeOrdersPaySettleRequest(); + extractedTradeOrdersPaySettleRequestParams(request); + extractedTradeOrdersPaySettleRequestAssertions(request); + + System.out.println(Json.toJson(request)); + String requestJson = Json.toJson(request); + Assertions.assertEquals("{\"channel_no\":\"setChannelNo\",\"app_no\":\"setAppNo\",\"serial_no\":\"setSerialNo\",\"trans_date\":\"setTransDate\",\"trans_tradetime\":\"setTransTradeTime\",\"order_no\":\"setOrderNo\",\"order_type\":\"setOrderType\",\"order_pay_type\":\"setOrderPayType\",\"order_amount\":100.0,\"settle_amount\":100.0,\"is_load\":\"setIsLoad\",\"apply_account_no\":\"setApplyAccountNo\",\"apply_account_name\":\"setApplyAccountName\",\"apply_trans_amount\":100.0,\"is_repay_gd\":\"setIsRepayGd\",\"gd_account_no\":\"setGdAccountNo\",\"gd_account_name\":\"setGdAccountName\",\"gd_trans_amount\":100.0,\"is_balance_pay\":\"setIsBalancePay\",\"pay_account_no\":\"setPayAccountNo\",\"pay_account_name\":\"setPayAccountName\",\"pay_amount\":100.0,\"verify_code\":\"setVerifyCode\",\"pay_detail_list\":[]}", requestJson); + + TradeOrdersPaySettleResponse response = new TradeOrdersPaySettleResponse(); + extractedTradeOrdersPaySettleResponseParams(response); + extractedTradeOrdersPaySettleResponseAssertions(response); + + System.out.println(Json.toJson(response)); + String responseJson = Json.toJson(response); + Assertions.assertEquals("{\"recode\":\"setRecode\",\"recode_info\":\"setRecodeInfo\",\"sys_serial_no\":\"setSysSerialNo\",\"sys_date\":\"setSysDate\",\"sys_time\":\"setSysTime\",\"serial_no\":\"setSerialNo\",\"order_pay_time\":\"setOrderPayTime\",\"order_pay_status\":\"setOrderPayStatus\",\"order_pay_failmsg\":\"setOrderPayFailMsg\",\"loan_serial_no\":\"setLoanSerialNo\",\"loan_time\":\"setLoanTime\",\"loan_status\":\"setLoanStatus\",\"loan_failmsg\":\"setLoanFailMsg\",\"loanacctno\":\"setLoanAcctNo\",\"gd_serial_no\":\"setGdSerialNo\",\"gd_trans_time\":\"setGdTransTime\",\"gd_trans_status\":\"setGdTransStatus\",\"gd_trans_failmsg\":\"setGdTransFailMsg\",\"pay_serial_no\":\"setPaySerialNo\",\"pay_time\":\"setPayTime\",\"pay_status\":\"setPayStatus\",\"pay_failmsg\":\"setPayFailMsg\",\"pay_detail_list\":[]}", responseJson); + + HttpResponse httpResponse = TestHttpResponse.create("/trade-orders/pay-settle", response, TradeOrdersPaySettleResponse.class); + Mockito.when(apiClient.post( + Mockito.eq("/trade-orders/pay-settle"), + Mockito.any(HttpHeaders.class), + Mockito.any(RequestBody.class), + Mockito.eq(TradeOrdersPaySettleResponse.class))) + .thenReturn(httpResponse); + + TradeOrdersPaySettleResponse result = service.tradeOrdersPaySettle(request); + + System.out.println(Json.toJson(result)); + String resultJson = Json.toJson(result); + Assertions.assertEquals("{\"recode\":\"setRecode\",\"recode_info\":\"setRecodeInfo\",\"sys_serial_no\":\"setSysSerialNo\",\"sys_date\":\"setSysDate\",\"sys_time\":\"setSysTime\",\"serial_no\":\"setSerialNo\",\"order_pay_time\":\"setOrderPayTime\",\"order_pay_status\":\"setOrderPayStatus\",\"order_pay_failmsg\":\"setOrderPayFailMsg\",\"loan_serial_no\":\"setLoanSerialNo\",\"loan_time\":\"setLoanTime\",\"loan_status\":\"setLoanStatus\",\"loan_failmsg\":\"setLoanFailMsg\",\"loanacctno\":\"setLoanAcctNo\",\"gd_serial_no\":\"setGdSerialNo\",\"gd_trans_time\":\"setGdTransTime\",\"gd_trans_status\":\"setGdTransStatus\",\"gd_trans_failmsg\":\"setGdTransFailMsg\",\"pay_serial_no\":\"setPaySerialNo\",\"pay_time\":\"setPayTime\",\"pay_status\":\"setPayStatus\",\"pay_failmsg\":\"setPayFailMsg\",\"pay_detail_list\":[]}", resultJson); + } + + void extractedTradeOrdersPaySettleRequestParams(TradeOrdersPaySettleRequest request) { + request.setTransTradeTime("setTransTradeTime"); + request.setApplyTransAmount(BigDecimal.valueOf(100.00)); + request.setApplyAccountNo("setApplyAccountNo"); + request.setApplyAccountName("setApplyAccountName"); + request.setPayDetailLists(Lists.list()); + request.setPayAccountName("setPayAccountName"); + request.setTransDate("setTransDate"); + request.setChannelNo("setChannelNo"); + request.setOrderAmount(BigDecimal.valueOf(100.00)); + request.setSerialNo("setSerialNo"); + request.setOrderType("setOrderType"); + request.setAppNo("setAppNo"); + request.setOrderNo("setOrderNo"); + request.setIsRepayGd("setIsRepayGd"); + request.setIsLoad("setIsLoad"); + request.setSettleAmount(BigDecimal.valueOf(100.00)); + request.setGdAccountNo("setGdAccountNo"); + request.setGdAccountName("setGdAccountName"); + request.setIsBalancePay("setIsBalancePay"); + request.setPayAccountNo("setPayAccountNo"); + request.setPayAmount(BigDecimal.valueOf(100.00)); + request.setVerifyCode("setVerifyCode"); + request.setOrderPayType("setOrderPayType"); + request.setGdTransAmount(BigDecimal.valueOf(100.00)); + } + + void extractedTradeOrdersPaySettleRequestAssertions(TradeOrdersPaySettleRequest request) { + Assertions.assertEquals("setTransTradeTime", request.getTransTradeTime()); + Assertions.assertEquals(BigDecimal.valueOf(100.00), request.getApplyTransAmount()); + Assertions.assertEquals("setApplyAccountNo", request.getApplyAccountNo()); + Assertions.assertEquals("setApplyAccountName", request.getApplyAccountName()); + Assertions.assertNotNull(request.getPayDetailLists()); + Assertions.assertEquals("setPayAccountName", request.getPayAccountName()); + Assertions.assertEquals("setTransDate", request.getTransDate()); + Assertions.assertEquals("setChannelNo", request.getChannelNo()); + Assertions.assertEquals(BigDecimal.valueOf(100.00), request.getOrderAmount()); + Assertions.assertEquals("setSerialNo", request.getSerialNo()); + Assertions.assertEquals("setOrderType", request.getOrderType()); + Assertions.assertEquals("setAppNo", request.getAppNo()); + Assertions.assertEquals("setOrderNo", request.getOrderNo()); + Assertions.assertEquals("setIsRepayGd", request.getIsRepayGd()); + Assertions.assertEquals("setIsLoad", request.getIsLoad()); + Assertions.assertEquals(BigDecimal.valueOf(100.00), request.getSettleAmount()); + Assertions.assertEquals("setGdAccountNo", request.getGdAccountNo()); + Assertions.assertEquals("setGdAccountName", request.getGdAccountName()); + Assertions.assertEquals("setIsBalancePay", request.getIsBalancePay()); + Assertions.assertEquals("setPayAccountNo", request.getPayAccountNo()); + Assertions.assertEquals(BigDecimal.valueOf(100.00), request.getPayAmount()); + Assertions.assertEquals("setVerifyCode", request.getVerifyCode()); + Assertions.assertEquals("setOrderPayType", request.getOrderPayType()); + Assertions.assertEquals(BigDecimal.valueOf(100.00), request.getGdTransAmount()); + } + + void extractedTradeOrdersPaySettleResponseParams(TradeOrdersPaySettleResponse response) { + response.setPayDetailLists(Lists.list()); + response.setGdTransFailMsg("setGdTransFailMsg"); + response.setOrderPayStatus("setOrderPayStatus"); + response.setOrderPayFailMsg("setOrderPayFailMsg"); + response.setSerialNo("setSerialNo"); + response.setSysDate("setSysDate"); + response.setRecode("setRecode"); + response.setRecodeInfo("setRecodeInfo"); + response.setSysSerialNo("setSysSerialNo"); + response.setSysTime("setSysTime"); + response.setLoanStatus("setLoanStatus"); + response.setGdTransStatus("setGdTransStatus"); + response.setGdSerialNo("setGdSerialNo"); + response.setPaySerialNo("setPaySerialNo"); + response.setLoanTime("setLoanTime"); + response.setGdTransTime("setGdTransTime"); + response.setOrderPayTime("setOrderPayTime"); + response.setPayStatus("setPayStatus"); + response.setLoanAcctNo("setLoanAcctNo"); + response.setLoanFailMsg("setLoanFailMsg"); + response.setLoanSerialNo("setLoanSerialNo"); + response.setPayTime("setPayTime"); + response.setPayFailMsg("setPayFailMsg"); + } + + void extractedTradeOrdersPaySettleResponseAssertions(TradeOrdersPaySettleResponse response) { + Assertions.assertNotNull(response.getPayDetailLists()); + Assertions.assertEquals("setGdTransFailMsg", response.getGdTransFailMsg()); + Assertions.assertEquals("setOrderPayStatus", response.getOrderPayStatus()); + Assertions.assertEquals("setOrderPayFailMsg", response.getOrderPayFailMsg()); + Assertions.assertEquals("setSerialNo", response.getSerialNo()); + Assertions.assertEquals("setSysDate", response.getSysDate()); + Assertions.assertEquals("setRecode", response.getRecode()); + Assertions.assertEquals("setRecodeInfo", response.getRecodeInfo()); + Assertions.assertEquals("setSysSerialNo", response.getSysSerialNo()); + Assertions.assertEquals("setSysTime", response.getSysTime()); + Assertions.assertEquals("setLoanStatus", response.getLoanStatus()); + Assertions.assertEquals("setGdTransStatus", response.getGdTransStatus()); + Assertions.assertEquals("setGdSerialNo", response.getGdSerialNo()); + Assertions.assertEquals("setPaySerialNo", response.getPaySerialNo()); + Assertions.assertEquals("setLoanTime", response.getLoanTime()); + Assertions.assertEquals("setGdTransTime", response.getGdTransTime()); + Assertions.assertEquals("setOrderPayTime", response.getOrderPayTime()); + Assertions.assertEquals("setPayStatus", response.getPayStatus()); + Assertions.assertEquals("setLoanAcctNo", response.getLoanAcctNo()); + Assertions.assertEquals("setLoanFailMsg", response.getLoanFailMsg()); + Assertions.assertEquals("setLoanSerialNo", response.getLoanSerialNo()); + Assertions.assertEquals("setPayTime", response.getPayTime()); + Assertions.assertEquals("setPayFailMsg", response.getPayFailMsg()); + } + + @Test + void tradeOrdersCreditStatTest() { + TradeOrdersCreditStatRequest request = new TradeOrdersCreditStatRequest(); + extractedTradeOrdersCreditStatRequestParams(request); + extractedTradeOrdersCreditStatRequestAssertions(request); + + System.out.println(Json.toJson(request)); + String requestJson = Json.toJson(request); + Assertions.assertEquals("{\"channel_no\":\"setChannelNo\",\"app_no\":\"setAppNo\",\"serial_no\":\"setSerialNo\",\"trans_date\":\"setTransDate\",\"trans_tradetime\":\"setTransTradeTime\",\"apply_account_no\":\"setApplyAccountNo\",\"apply_account_name\":\"setApplyAccountName\",\"pay_account_no\":\"setPayAccountNo\",\"pay_account_name\":\"setPayAccountName\",\"loanacctno\":\"setLoanAcctNo\"}", requestJson); + + TradeOrdersCreditStatResponse response = new TradeOrdersCreditStatResponse(); + extractedTradeOrdersCreditStatResponseParams(response); + extractedTradeOrdersCreditStatResponseAssertions(response); + + System.out.println(Json.toJson(response)); + String responseJson = Json.toJson(response); + Assertions.assertEquals("{\"recode\":\"setRecode\",\"recode_info\":\"setRecodeInfo\",\"sys_serial_no\":\"setSysSerialNo\",\"sys_date\":\"setSysDate\",\"sys_time\":\"setSysTime\",\"credit_limit_total\":100.0,\"credit_balance\":100.0,\"credit_limit_usable\":100.0,\"order_limit_usable\":100.0,\"order_loan_total\":100.0,\"credit_loan_list\":[]}", responseJson); + + HttpResponse httpResponse = TestHttpResponse.create("/trade-orders/credit-stat", response, TradeOrdersCreditStatResponse.class); + Mockito.when(apiClient.post( + Mockito.eq("/trade-orders/credit-stat"), + Mockito.any(HttpHeaders.class), + Mockito.any(RequestBody.class), + Mockito.eq(TradeOrdersCreditStatResponse.class))) + .thenReturn(httpResponse); + + TradeOrdersCreditStatResponse result = service.tradeOrdersCreditStat(request); + + System.out.println(Json.toJson(result)); + String resultJson = Json.toJson(result); + Assertions.assertEquals("{\"recode\":\"setRecode\",\"recode_info\":\"setRecodeInfo\",\"sys_serial_no\":\"setSysSerialNo\",\"sys_date\":\"setSysDate\",\"sys_time\":\"setSysTime\",\"credit_limit_total\":100.0,\"credit_balance\":100.0,\"credit_limit_usable\":100.0,\"order_limit_usable\":100.0,\"order_loan_total\":100.0,\"credit_loan_list\":[]}", resultJson); + } + + void extractedTradeOrdersCreditStatRequestParams(TradeOrdersCreditStatRequest request) { + request.setTransTradeTime("setTransTradeTime"); + request.setApplyAccountNo("setApplyAccountNo"); + request.setApplyAccountName("setApplyAccountName"); + request.setPayAccountName("setPayAccountName"); + request.setTransDate("setTransDate"); + request.setChannelNo("setChannelNo"); + request.setSerialNo("setSerialNo"); + request.setAppNo("setAppNo"); + request.setPayAccountNo("setPayAccountNo"); + request.setLoanAcctNo("setLoanAcctNo"); + } + + void extractedTradeOrdersCreditStatRequestAssertions(TradeOrdersCreditStatRequest request) { + Assertions.assertEquals("setTransTradeTime", request.getTransTradeTime()); + Assertions.assertEquals("setApplyAccountNo", request.getApplyAccountNo()); + Assertions.assertEquals("setApplyAccountName", request.getApplyAccountName()); + Assertions.assertEquals("setPayAccountName", request.getPayAccountName()); + Assertions.assertEquals("setTransDate", request.getTransDate()); + Assertions.assertEquals("setChannelNo", request.getChannelNo()); + Assertions.assertEquals("setSerialNo", request.getSerialNo()); + Assertions.assertEquals("setAppNo", request.getAppNo()); + Assertions.assertEquals("setPayAccountNo", request.getPayAccountNo()); + Assertions.assertEquals("setLoanAcctNo", request.getLoanAcctNo()); + } + + void extractedTradeOrdersCreditStatResponseParams(TradeOrdersCreditStatResponse response) { + response.setCreditLimitTotal(BigDecimal.valueOf(100.00)); + response.setCreditLoanLists(Lists.list()); + response.setOrderLimitUsable(BigDecimal.valueOf(100.00)); + response.setOrderLoanTotal(BigDecimal.valueOf(100.00)); + response.setCreditLimitUsable(BigDecimal.valueOf(100.00)); + response.setSysDate("setSysDate"); + response.setRecode("setRecode"); + response.setRecodeInfo("setRecodeInfo"); + response.setSysSerialNo("setSysSerialNo"); + response.setSysTime("setSysTime"); + response.setCreditBalance(BigDecimal.valueOf(100.00)); + } + + void extractedTradeOrdersCreditStatResponseAssertions(TradeOrdersCreditStatResponse response) { + Assertions.assertEquals(BigDecimal.valueOf(100.00), response.getCreditLimitTotal()); + Assertions.assertNotNull(response.getCreditLoanLists()); + Assertions.assertEquals(BigDecimal.valueOf(100.00), response.getOrderLimitUsable()); + Assertions.assertEquals(BigDecimal.valueOf(100.00), response.getOrderLoanTotal()); + Assertions.assertEquals(BigDecimal.valueOf(100.00), response.getCreditLimitUsable()); + Assertions.assertEquals("setSysDate", response.getSysDate()); + Assertions.assertEquals("setRecode", response.getRecode()); + Assertions.assertEquals("setRecodeInfo", response.getRecodeInfo()); + Assertions.assertEquals("setSysSerialNo", response.getSysSerialNo()); + Assertions.assertEquals("setSysTime", response.getSysTime()); + Assertions.assertEquals(BigDecimal.valueOf(100.00), response.getCreditBalance()); + } + + @Test + void tradeOrderRepayTest() { + TradeOrderRepayRequest request = new TradeOrderRepayRequest(); + extractedTradeOrderRepayRequestParams(request); + extractedTradeOrderRepayRequestAssertions(request); + + System.out.println(Json.toJson(request)); + String requestJson = Json.toJson(request); + Assertions.assertEquals("{\"channel_no\":\"setChannelNo\",\"app_no\":\"setAppNo\",\"serial_no\":\"setSerialNo\",\"trans_date\":\"setTransDate\",\"trans_tradetime\":\"setTransTradeTime\",\"order_no\":\"setOrderNo\"}", requestJson); + + TradeOrderRepayResponse response = new TradeOrderRepayResponse(); + extractedTradeOrderRepayResponseParams(response); + extractedTradeOrderRepayResponseAssertions(response); + + System.out.println(Json.toJson(response)); + String responseJson = Json.toJson(response); + Assertions.assertEquals("{\"recode\":\"setRecode\",\"recode_info\":\"setRecodeInfo\",\"sys_serial_no\":\"setSysSerialNo\",\"sys_date\":\"setSysDate\",\"sys_time\":\"setSysTime\"}", responseJson); + + HttpResponse httpResponse = TestHttpResponse.create("/trade-orders/credit-repay", response, TradeOrderRepayResponse.class); + Mockito.when(apiClient.post( + Mockito.eq("/trade-orders/credit-repay"), + Mockito.any(HttpHeaders.class), + Mockito.any(RequestBody.class), + Mockito.eq(TradeOrderRepayResponse.class))) + .thenReturn(httpResponse); + + TradeOrderRepayResponse result = service.tradeOrderRepay(request); + + System.out.println(Json.toJson(result)); + String resultJson = Json.toJson(result); + Assertions.assertEquals("{\"recode\":\"setRecode\",\"recode_info\":\"setRecodeInfo\",\"sys_serial_no\":\"setSysSerialNo\",\"sys_date\":\"setSysDate\",\"sys_time\":\"setSysTime\"}", resultJson); + } + + void extractedTradeOrderRepayRequestParams(TradeOrderRepayRequest request) { + request.setTransTradeTime("setTransTradeTime"); + request.setTransDate("setTransDate"); + request.setChannelNo("setChannelNo"); + request.setSerialNo("setSerialNo"); + request.setAppNo("setAppNo"); + request.setOrderNo("setOrderNo"); + } + + void extractedTradeOrderRepayRequestAssertions(TradeOrderRepayRequest request) { + Assertions.assertEquals("setTransTradeTime", request.getTransTradeTime()); + Assertions.assertEquals("setTransDate", request.getTransDate()); + Assertions.assertEquals("setChannelNo", request.getChannelNo()); + Assertions.assertEquals("setSerialNo", request.getSerialNo()); + Assertions.assertEquals("setAppNo", request.getAppNo()); + Assertions.assertEquals("setOrderNo", request.getOrderNo()); + } + + void extractedTradeOrderRepayResponseParams(TradeOrderRepayResponse response) { + response.setSysDate("setSysDate"); + response.setRecode("setRecode"); + response.setRecodeInfo("setRecodeInfo"); + response.setSysSerialNo("setSysSerialNo"); + response.setSysTime("setSysTime"); + } + + void extractedTradeOrderRepayResponseAssertions(TradeOrderRepayResponse response) { + Assertions.assertEquals("setSysDate", response.getSysDate()); + Assertions.assertEquals("setRecode", response.getRecode()); + Assertions.assertEquals("setRecodeInfo", response.getRecodeInfo()); + Assertions.assertEquals("setSysSerialNo", response.getSysSerialNo()); + Assertions.assertEquals("setSysTime", response.getSysTime()); + } + +} \ No newline at end of file diff --git a/scfs-api-service-cat/src/test/java/com/czcb/scfs/service/cat/project/ProjectServiceTest.java b/scfs-api-service-cat/src/test/java/com/czcb/scfs/service/cat/project/ProjectServiceTest.java new file mode 100644 index 0000000..b3b3d34 --- /dev/null +++ b/scfs-api-service-cat/src/test/java/com/czcb/scfs/service/cat/project/ProjectServiceTest.java @@ -0,0 +1,549 @@ +package com.czcb.scfs.service.cat.project; + +import com.czcb.scfs.api.core.ApiClient; +import com.czcb.scfs.api.core.http.HttpHeaders; +import com.czcb.scfs.api.core.http.HttpResponse; +import com.czcb.scfs.api.core.http.RequestBody; +import com.czcb.scfs.api.core.util.Json; +import com.czcb.scfs.service.cat.cipher.TestHttpResponse; +import com.czcb.scfs.service.cat.project.model.*; +import org.assertj.core.util.Lists; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.Mockito; +import org.mockito.junit.jupiter.MockitoExtension; + +import java.math.BigDecimal; + +@ExtendWith(MockitoExtension.class) +class ProjectServiceTest { + @InjectMocks + private ProjectService service; + + @Mock + private ApiClient apiClient; + + @Test + void projectAddTest() { + ProjectAddRequest request = new ProjectAddRequest(); + extractedProjectAddRequestParams(request); + extractedProjectAddRequestAssertions(request); + + System.out.println(Json.toJson(request)); + String requestJson = Json.toJson(request); + Assertions.assertEquals("{\"channel_no\":\"setChannelNo\",\"app_no\":\"setAppNo\",\"serial_no\":\"setSerialNo\",\"trans_date\":\"setTransDate\",\"trans_tradetime\":\"setTransTradeTime\",\"project_no\":\"setProjectNo\",\"project_name\":\"setProjectName\",\"project_type\":\"setProjectType\",\"transport_mode\":\"setTransportMode\",\"base_unit\":\"setBaseUnit\",\"base_price\":100.0,\"bid_date\":\"setBidDate\",\"account_no\":\"setAccountNo\",\"account_name\":\"setAccountName\",\"payback_prop\":100.0,\"opp_account_no_1\":\"setOppAccountNo1\",\"opp_account_name_1\":\"setOppAccountName1\",\"opp_account_no_2\":\"setOppAccountNo2\",\"opp_account_name_2\":\"setOppAccountName2\",\"opp_bank_no_2\":\"setOppBankNo2\",\"opp_bank_name_2\":\"setOppBankName2\",\"opp_account_no_3\":\"setOppAccountNo3\",\"opp_account_name_3\":\"setOppAccountName3\",\"opp_bank_no_3\":\"setOppBankNo3\",\"opp_bank_name_3\":\"setOppBankName3\",\"bid_amount\":100.0,\"assess_amount\":100.0,\"credit_prop\":100.0,\"credit_period\":\"setCreditPeriod\",\"project_amount\":100.0,\"remark\":\"setRemark\"}", requestJson); + + ProjectAddResponse response = new ProjectAddResponse(); + extractedProjectAddResponseParams(response); + extractedProjectAddResponseAssertions(response); + + System.out.println(Json.toJson(response)); + String responseJson = Json.toJson(response); + Assertions.assertEquals("{\"recode\":\"setRecode\",\"recode_info\":\"setRecodeInfo\",\"sys_serial_no\":\"setSysSerialNo\",\"sys_date\":\"setSysDate\",\"sys_time\":\"setSysTime\"}", responseJson); + + HttpResponse httpResponse = TestHttpResponse.create("/purchase/project-add", response, ProjectAddResponse.class); + Mockito.when(apiClient.post( + Mockito.eq("/purchase/project-add"), + Mockito.any(HttpHeaders.class), + Mockito.any(RequestBody.class), + Mockito.eq(ProjectAddResponse.class))) + .thenReturn(httpResponse); + + ProjectAddResponse result = service.projectAdd(request); + + System.out.println(Json.toJson(result)); + String resultJson = Json.toJson(result); + Assertions.assertEquals("{\"recode\":\"setRecode\",\"recode_info\":\"setRecodeInfo\",\"sys_serial_no\":\"setSysSerialNo\",\"sys_date\":\"setSysDate\",\"sys_time\":\"setSysTime\"}", resultJson); + } + + void extractedProjectAddRequestParams(ProjectAddRequest request) { + request.setRemark("setRemark"); + request.setAccountName("setAccountName"); + request.setBidAmount(BigDecimal.valueOf(100.00)); + request.setProjectName("setProjectName"); + request.setAssessAmount(BigDecimal.valueOf(100.00)); + request.setSerialNo("setSerialNo"); + request.setTransDate("setTransDate"); + request.setChannelNo("setChannelNo"); + request.setCreditProp(BigDecimal.valueOf(100.00)); + request.setCreditPeriod("setCreditPeriod"); + request.setPaybackProp(BigDecimal.valueOf(100.00)); + request.setOppAccountNo1("setOppAccountNo1"); + request.setAppNo("setAppNo"); + request.setBasePrice(BigDecimal.valueOf(100.00)); + request.setOppAccountNo2("setOppAccountNo2"); + request.setOppBankName2("setOppBankName2"); + request.setOppAccountNo3("setOppAccountNo3"); + request.setBaseUnit("setBaseUnit"); + request.setBidDate("setBidDate"); + request.setOppBankNo2("setOppBankNo2"); + request.setTransportMode("setTransportMode"); + request.setProjectNo("setProjectNo"); + request.setProjectType("setProjectType"); + request.setProjectAmount(BigDecimal.valueOf(100.00)); + request.setAccountNo("setAccountNo"); + request.setOppBankName3("setOppBankName3"); + request.setOppBankNo3("setOppBankNo3"); + request.setTransTradeTime("setTransTradeTime"); + request.setOppAccountName1("setOppAccountName1"); + request.setOppAccountName2("setOppAccountName2"); + request.setOppAccountName3("setOppAccountName3"); + } + + void extractedProjectAddRequestAssertions(ProjectAddRequest request) { + Assertions.assertEquals("setRemark", request.getRemark()); + Assertions.assertEquals("setAccountName", request.getAccountName()); + Assertions.assertEquals(BigDecimal.valueOf(100.00), request.getBidAmount()); + Assertions.assertEquals("setProjectName", request.getProjectName()); + Assertions.assertEquals(BigDecimal.valueOf(100.00), request.getAssessAmount()); + Assertions.assertEquals("setSerialNo", request.getSerialNo()); + Assertions.assertEquals("setTransDate", request.getTransDate()); + Assertions.assertEquals("setChannelNo", request.getChannelNo()); + Assertions.assertEquals(BigDecimal.valueOf(100.00), request.getCreditProp()); + Assertions.assertEquals("setCreditPeriod", request.getCreditPeriod()); + Assertions.assertEquals(BigDecimal.valueOf(100.00), request.getPaybackProp()); + Assertions.assertEquals("setOppAccountNo1", request.getOppAccountNo1()); + Assertions.assertEquals("setAppNo", request.getAppNo()); + Assertions.assertEquals(BigDecimal.valueOf(100.00), request.getBasePrice()); + Assertions.assertEquals("setOppAccountNo2", request.getOppAccountNo2()); + Assertions.assertEquals("setOppBankName2", request.getOppBankName2()); + Assertions.assertEquals("setOppAccountNo3", request.getOppAccountNo3()); + Assertions.assertEquals("setBaseUnit", request.getBaseUnit()); + Assertions.assertEquals("setBidDate", request.getBidDate()); + Assertions.assertEquals("setOppBankNo2", request.getOppBankNo2()); + Assertions.assertEquals("setTransportMode", request.getTransportMode()); + Assertions.assertEquals("setProjectNo", request.getProjectNo()); + Assertions.assertEquals("setProjectType", request.getProjectType()); + Assertions.assertEquals(BigDecimal.valueOf(100.00), request.getProjectAmount()); + Assertions.assertEquals("setAccountNo", request.getAccountNo()); + Assertions.assertEquals("setOppBankName3", request.getOppBankName3()); + Assertions.assertEquals("setOppBankNo3", request.getOppBankNo3()); + Assertions.assertEquals("setTransTradeTime", request.getTransTradeTime()); + Assertions.assertEquals("setOppAccountName1", request.getOppAccountName1()); + Assertions.assertEquals("setOppAccountName2", request.getOppAccountName2()); + Assertions.assertEquals("setOppAccountName3", request.getOppAccountName3()); + } + + void extractedProjectAddResponseParams(ProjectAddResponse response) { + response.setRecodeInfo("setRecodeInfo"); + response.setSysDate("setSysDate"); + response.setRecode("setRecode"); + response.setSysSerialNo("setSysSerialNo"); + response.setSysTime("setSysTime"); + } + + void extractedProjectAddResponseAssertions(ProjectAddResponse response) { + Assertions.assertEquals("setRecodeInfo", response.getRecodeInfo()); + Assertions.assertEquals("setSysDate", response.getSysDate()); + Assertions.assertEquals("setRecode", response.getRecode()); + Assertions.assertEquals("setSysSerialNo", response.getSysSerialNo()); + Assertions.assertEquals("setSysTime", response.getSysTime()); + } + + @Test + void projectQueryTest() { + ProjectQueryRequest request = new ProjectQueryRequest(); + extractedProjectQueryRequestParams(request); + extractedProjectQueryRequestAssertions(request); + + System.out.println(Json.toJson(request)); + String requestJson = Json.toJson(request); + Assertions.assertEquals("{\"channel_no\":\"setChannelNo\",\"app_no\":\"setAppNo\",\"serial_no\":\"setSerialNo\",\"trans_date\":\"setTransDate\",\"trans_tradetime\":\"setTransTradeTime\",\"project_no\":\"setProjectNo\",\"current_page\":0,\"current_rows\":50}", requestJson); + + ProjectQueryResponse response = new ProjectQueryResponse(); + extractedProjectQueryResponseParams(response); + extractedProjectQueryResponseAssertions(response); + + System.out.println(Json.toJson(response)); + String responseJson = Json.toJson(response); + Assertions.assertEquals("{\"recode\":\"setRecode\",\"recode_info\":\"setRecodeInfo\",\"sys_serial_no\":\"setSysSerialNo\",\"sys_date\":\"setSysDate\",\"sys_time\":\"setSysTime\",\"project_info_list\":[]}", responseJson); + + HttpResponse httpResponse = TestHttpResponse.create("/purchase/project-query", response, ProjectQueryResponse.class); + Mockito.when(apiClient.post( + Mockito.eq("/purchase/project-query"), + Mockito.any(HttpHeaders.class), + Mockito.any(RequestBody.class), + Mockito.eq(ProjectQueryResponse.class))) + .thenReturn(httpResponse); + + ProjectQueryResponse result = service.projectQuery(request); + + System.out.println(Json.toJson(result)); + String resultJson = Json.toJson(result); + Assertions.assertEquals("{\"recode\":\"setRecode\",\"recode_info\":\"setRecodeInfo\",\"sys_serial_no\":\"setSysSerialNo\",\"sys_date\":\"setSysDate\",\"sys_time\":\"setSysTime\",\"project_info_list\":[]}", resultJson); + } + + void extractedProjectQueryRequestParams(ProjectQueryRequest request) { + request.setSerialNo("setSerialNo"); + request.setTransDate("setTransDate"); + request.setChannelNo("setChannelNo"); + request.setAppNo("setAppNo"); + request.setProjectNo("setProjectNo"); + request.setTransTradeTime("setTransTradeTime"); + } + + void extractedProjectQueryRequestAssertions(ProjectQueryRequest request) { + Assertions.assertEquals("setSerialNo", request.getSerialNo()); + Assertions.assertEquals("setTransDate", request.getTransDate()); + Assertions.assertEquals("setChannelNo", request.getChannelNo()); + Assertions.assertEquals("setAppNo", request.getAppNo()); + Assertions.assertEquals("setProjectNo", request.getProjectNo()); + Assertions.assertEquals("setTransTradeTime", request.getTransTradeTime()); + } + + void extractedProjectQueryResponseParams(ProjectQueryResponse response) { + response.setRecodeInfo("setRecodeInfo"); + response.setSysDate("setSysDate"); + response.setRecode("setRecode"); + response.setSysSerialNo("setSysSerialNo"); + response.setSysTime("setSysTime"); + response.setProjectInfoLists(Lists.list()); + } + + void extractedProjectQueryResponseAssertions(ProjectQueryResponse response) { + Assertions.assertEquals("setRecodeInfo", response.getRecodeInfo()); + Assertions.assertEquals("setSysDate", response.getSysDate()); + Assertions.assertEquals("setRecode", response.getRecode()); + Assertions.assertEquals("setSysSerialNo", response.getSysSerialNo()); + Assertions.assertEquals("setSysTime", response.getSysTime()); + Assertions.assertNotNull(response.getProjectInfoLists()); + } + + @Test + void projectPayTest() { + ProjectPayRequest request = new ProjectPayRequest(); + extractedProjectPayRequestParams(request); + extractedProjectPayRequestAssertions(request); + + System.out.println(Json.toJson(request)); + String requestJson = Json.toJson(request); + Assertions.assertEquals("{\"channel_no\":\"setChannelNo\",\"app_no\":\"setAppNo\",\"serial_no\":\"setSerialNo\",\"trans_date\":\"setTransDate\",\"trans_tradetime\":\"setTransTradeTime\",\"project_no\":\"setProjectNo\",\"pay_amount\":\"setPayAmount\",\"loan_amount\":100.0,\"pay_type\":\"setPayType\",\"apply_account_no\":\"setApplyAccountNo\",\"apply_account_name\":\"setApplyAccountName\",\"pay_account_no\":\"setPayAccountNo\",\"pay_account_name\":\"setPayAccountName\",\"verify_code\":\"setVerifyCode\",\"remark\":\"setRemark\",\"file_list\":[]}", requestJson); + + ProjectPayResponse response = new ProjectPayResponse(); + extractedProjectPayResponseParams(response); + extractedProjectPayResponseAssertions(response); + + System.out.println(Json.toJson(response)); + String responseJson = Json.toJson(response); + Assertions.assertEquals("{\"recode\":\"setRecode\",\"recode_info\":\"setRecodeInfo\",\"sys_serial_no\":\"setSysSerialNo\",\"sys_date\":\"setSysDate\",\"sys_time\":\"setSysTime\",\"loanacctno\":\"setLoanAcctNo\"}", responseJson); + + HttpResponse httpResponse = TestHttpResponse.create("/purchase/project-pay", response, ProjectPayResponse.class); + Mockito.when(apiClient.post( + Mockito.eq("/purchase/project-pay"), + Mockito.any(HttpHeaders.class), + Mockito.any(RequestBody.class), + Mockito.eq(ProjectPayResponse.class))) + .thenReturn(httpResponse); + + ProjectPayResponse result = service.projectPay(request); + + System.out.println(Json.toJson(result)); + String resultJson = Json.toJson(result); + Assertions.assertEquals("{\"recode\":\"setRecode\",\"recode_info\":\"setRecodeInfo\",\"sys_serial_no\":\"setSysSerialNo\",\"sys_date\":\"setSysDate\",\"sys_time\":\"setSysTime\",\"loanacctno\":\"setLoanAcctNo\"}", resultJson); + } + + void extractedProjectPayRequestParams(ProjectPayRequest request) { + request.setRemark("setRemark"); + request.setSerialNo("setSerialNo"); + request.setTransDate("setTransDate"); + request.setChannelNo("setChannelNo"); + request.setAppNo("setAppNo"); + request.setProjectNo("setProjectNo"); + request.setPayAccountNo("setPayAccountNo"); + request.setVerifyCode("setVerifyCode"); + request.setLoanAmount(BigDecimal.valueOf(100.00)); + request.setPayType("setPayType"); + request.setPayAmount("setPayAmount"); + request.setFileLists(Lists.list()); + request.setTransTradeTime("setTransTradeTime"); + request.setPayAccountName("setPayAccountName"); + request.setApplyAccountNo("setApplyAccountNo"); + request.setApplyAccountName("setApplyAccountName"); + } + + void extractedProjectPayRequestAssertions(ProjectPayRequest request) { + Assertions.assertEquals("setRemark", request.getRemark()); + Assertions.assertEquals("setSerialNo", request.getSerialNo()); + Assertions.assertEquals("setTransDate", request.getTransDate()); + Assertions.assertEquals("setChannelNo", request.getChannelNo()); + Assertions.assertEquals("setAppNo", request.getAppNo()); + Assertions.assertEquals("setProjectNo", request.getProjectNo()); + Assertions.assertEquals("setPayAccountNo", request.getPayAccountNo()); + Assertions.assertEquals("setVerifyCode", request.getVerifyCode()); + Assertions.assertEquals(BigDecimal.valueOf(100.00), request.getLoanAmount()); + Assertions.assertEquals("setPayType", request.getPayType()); + Assertions.assertEquals("setPayAmount", request.getPayAmount()); + Assertions.assertNotNull(request.getFileLists()); + Assertions.assertEquals("setTransTradeTime", request.getTransTradeTime()); + Assertions.assertEquals("setPayAccountName", request.getPayAccountName()); + Assertions.assertEquals("setApplyAccountNo", request.getApplyAccountNo()); + Assertions.assertEquals("setApplyAccountName", request.getApplyAccountName()); + } + + void extractedProjectPayResponseParams(ProjectPayResponse response) { + response.setRecodeInfo("setRecodeInfo"); + response.setSysDate("setSysDate"); + response.setRecode("setRecode"); + response.setSysSerialNo("setSysSerialNo"); + response.setSysTime("setSysTime"); + response.setLoanAcctNo("setLoanAcctNo"); + } + + void extractedProjectPayResponseAssertions(ProjectPayResponse response) { + Assertions.assertEquals("setRecodeInfo", response.getRecodeInfo()); + Assertions.assertEquals("setSysDate", response.getSysDate()); + Assertions.assertEquals("setRecode", response.getRecode()); + Assertions.assertEquals("setSysSerialNo", response.getSysSerialNo()); + Assertions.assertEquals("setSysTime", response.getSysTime()); + Assertions.assertEquals("setLoanAcctNo", response.getLoanAcctNo()); + } + + @Test + void projectRepayTest() { + ProjectRepayRequest request = new ProjectRepayRequest(); + extractedProjectRepayRequestParams(request); + extractedProjectRepayRequestAssertions(request); + + System.out.println(Json.toJson(request)); + String requestJson = Json.toJson(request); + Assertions.assertEquals("{\"channel_no\":\"setChannelNo\",\"app_no\":\"setAppNo\",\"serial_no\":\"setSerialNo\",\"trans_date\":\"setTransDate\",\"trans_tradetime\":\"setTransTradeTime\",\"apply_account_no\":\"setApplyAccountNo\",\"apply_account_name\":\"setApplyAccountName\",\"pay_account_no\":\"setPayAccountNo\",\"pay_account_name\":\"setPayAccountName\",\"verify_code\":\"setVerifyCode\",\"loanacctno\":\"setLoanAcctNo\",\"repymtmd\":\"setRepymtmd\",\"ctrno\":\"setCtrNo\",\"repymtcorpus\":100.0,\"remark\":\"setRemark\"}", requestJson); + + ProjectRepayResponse response = new ProjectRepayResponse(); + extractedProjectRepayResponseParams(response); + extractedProjectRepayResponseAssertions(response); + + System.out.println(Json.toJson(response)); + String responseJson = Json.toJson(response); + Assertions.assertEquals("{\"recode\":\"setRecode\",\"recode_info\":\"setRecodeInfo\",\"sys_serial_no\":\"setSysSerialNo\",\"sys_date\":\"setSysDate\",\"sys_time\":\"setSysTime\"}", responseJson); + + HttpResponse httpResponse = TestHttpResponse.create("/purchase/project-repay", response, ProjectRepayResponse.class); + Mockito.when(apiClient.post( + Mockito.eq("/purchase/project-repay"), + Mockito.any(HttpHeaders.class), + Mockito.any(RequestBody.class), + Mockito.eq(ProjectRepayResponse.class))) + .thenReturn(httpResponse); + + ProjectRepayResponse result = service.projectRepay(request); + + System.out.println(Json.toJson(result)); + String resultJson = Json.toJson(result); + Assertions.assertEquals("{\"recode\":\"setRecode\",\"recode_info\":\"setRecodeInfo\",\"sys_serial_no\":\"setSysSerialNo\",\"sys_date\":\"setSysDate\",\"sys_time\":\"setSysTime\"}", resultJson); + } + + void extractedProjectRepayRequestParams(ProjectRepayRequest request) { + request.setRemark("setRemark"); + request.setSerialNo("setSerialNo"); + request.setTransDate("setTransDate"); + request.setChannelNo("setChannelNo"); + request.setAppNo("setAppNo"); + request.setPayAccountNo("setPayAccountNo"); + request.setVerifyCode("setVerifyCode"); + request.setLoanAcctNo("setLoanAcctNo"); + request.setRepymtCorpus(BigDecimal.valueOf(100.00)); + request.setRepymtmd("setRepymtmd"); + request.setCtrNo("setCtrNo"); + request.setTransTradeTime("setTransTradeTime"); + request.setPayAccountName("setPayAccountName"); + request.setApplyAccountNo("setApplyAccountNo"); + request.setApplyAccountName("setApplyAccountName"); + } + + void extractedProjectRepayRequestAssertions(ProjectRepayRequest request) { + Assertions.assertEquals("setRemark", request.getRemark()); + Assertions.assertEquals("setSerialNo", request.getSerialNo()); + Assertions.assertEquals("setTransDate", request.getTransDate()); + Assertions.assertEquals("setChannelNo", request.getChannelNo()); + Assertions.assertEquals("setAppNo", request.getAppNo()); + Assertions.assertEquals("setPayAccountNo", request.getPayAccountNo()); + Assertions.assertEquals("setVerifyCode", request.getVerifyCode()); + Assertions.assertEquals("setLoanAcctNo", request.getLoanAcctNo()); + Assertions.assertEquals(BigDecimal.valueOf(100.00), request.getRepymtCorpus()); + Assertions.assertEquals("setRepymtmd", request.getRepymtmd()); + Assertions.assertEquals("setCtrNo", request.getCtrNo()); + Assertions.assertEquals("setTransTradeTime", request.getTransTradeTime()); + Assertions.assertEquals("setPayAccountName", request.getPayAccountName()); + Assertions.assertEquals("setApplyAccountNo", request.getApplyAccountNo()); + Assertions.assertEquals("setApplyAccountName", request.getApplyAccountName()); + } + + void extractedProjectRepayResponseParams(ProjectRepayResponse response) { + response.setRecodeInfo("setRecodeInfo"); + response.setSysDate("setSysDate"); + response.setRecode("setRecode"); + response.setSysSerialNo("setSysSerialNo"); + response.setSysTime("setSysTime"); + } + + void extractedProjectRepayResponseAssertions(ProjectRepayResponse response) { + Assertions.assertEquals("setRecodeInfo", response.getRecodeInfo()); + Assertions.assertEquals("setSysDate", response.getSysDate()); + Assertions.assertEquals("setRecode", response.getRecode()); + Assertions.assertEquals("setSysSerialNo", response.getSysSerialNo()); + Assertions.assertEquals("setSysTime", response.getSysTime()); + } + + @Test + void payTest() { + CommonTradePayRequest request = new CommonTradePayRequest(); + extractedCommonTradePayRequestParams(request); + extractedCommonTradePayRequestAssertions(request); + + System.out.println(Json.toJson(request)); + String requestJson = Json.toJson(request); + Assertions.assertEquals("{\"channel_no\":\"setChannelNo\",\"app_no\":\"setAppNo\",\"serial_no\":\"setSerialNo\",\"trans_date\":\"setTransDate\",\"trans_tradetime\":\"setTransTradeTime\",\"account_no\":\"setAccountNo\",\"account_name\":\"setAccountName\",\"pay_amount\":100.0,\"verify_code\":\"setVerifyCode\",\"opp_account_no\":\"setOppAccountNo\",\"opp_account_name\":\"setOppAccountName\",\"opp_bank_no\":\"setOppBankNo\",\"opp_bank_name\":\"setOppBankName\",\"remark\":\"setRemark\"}", requestJson); + + CommonTradePayResponse response = new CommonTradePayResponse(); + extractedCommonTradePayResponseParams(response); + extractedCommonTradePayResponseAssertions(response); + + System.out.println(Json.toJson(response)); + String responseJson = Json.toJson(response); + Assertions.assertEquals("{\"recode\":\"setRecode\",\"recode_info\":\"setRecodeInfo\",\"sys_serial_no\":\"setSysSerialNo\",\"sys_date\":\"setSysDate\",\"sys_time\":\"setSysTime\"}", responseJson); + + HttpResponse httpResponse = TestHttpResponse.create("/common-trade/pay", response, CommonTradePayResponse.class); + Mockito.when(apiClient.post( + Mockito.eq("/common-trade/pay"), + Mockito.any(HttpHeaders.class), + Mockito.any(RequestBody.class), + Mockito.eq(CommonTradePayResponse.class))) + .thenReturn(httpResponse); + + CommonTradePayResponse result = service.pay(request); + + System.out.println(Json.toJson(result)); + String resultJson = Json.toJson(result); + Assertions.assertEquals("{\"recode\":\"setRecode\",\"recode_info\":\"setRecodeInfo\",\"sys_serial_no\":\"setSysSerialNo\",\"sys_date\":\"setSysDate\",\"sys_time\":\"setSysTime\"}", resultJson); + } + + void extractedCommonTradePayRequestParams(CommonTradePayRequest request) { + request.setRemark("setRemark"); + request.setAccountName("setAccountName"); + request.setSerialNo("setSerialNo"); + request.setTransDate("setTransDate"); + request.setChannelNo("setChannelNo"); + request.setAppNo("setAppNo"); + request.setAccountNo("setAccountNo"); + request.setVerifyCode("setVerifyCode"); + request.setPayAmount(BigDecimal.valueOf(100.00)); + request.setOppBankName("setOppBankName"); + request.setOppAccountNo("setOppAccountNo"); + request.setOppBankNo("setOppBankNo"); + request.setTransTradeTime("setTransTradeTime"); + request.setOppAccountName("setOppAccountName"); + } + + void extractedCommonTradePayRequestAssertions(CommonTradePayRequest request) { + Assertions.assertEquals("setRemark", request.getRemark()); + Assertions.assertEquals("setAccountName", request.getAccountName()); + Assertions.assertEquals("setSerialNo", request.getSerialNo()); + Assertions.assertEquals("setTransDate", request.getTransDate()); + Assertions.assertEquals("setChannelNo", request.getChannelNo()); + Assertions.assertEquals("setAppNo", request.getAppNo()); + Assertions.assertEquals("setAccountNo", request.getAccountNo()); + Assertions.assertEquals("setVerifyCode", request.getVerifyCode()); + Assertions.assertEquals(BigDecimal.valueOf(100.00), request.getPayAmount()); + Assertions.assertEquals("setOppBankName", request.getOppBankName()); + Assertions.assertEquals("setOppAccountNo", request.getOppAccountNo()); + Assertions.assertEquals("setOppBankNo", request.getOppBankNo()); + Assertions.assertEquals("setTransTradeTime", request.getTransTradeTime()); + Assertions.assertEquals("setOppAccountName", request.getOppAccountName()); + } + + void extractedCommonTradePayResponseParams(CommonTradePayResponse response) { + response.setRecodeInfo("setRecodeInfo"); + response.setSysDate("setSysDate"); + response.setRecode("setRecode"); + response.setSysSerialNo("setSysSerialNo"); + response.setSysTime("setSysTime"); + } + + void extractedCommonTradePayResponseAssertions(CommonTradePayResponse response) { + Assertions.assertEquals("setRecodeInfo", response.getRecodeInfo()); + Assertions.assertEquals("setSysDate", response.getSysDate()); + Assertions.assertEquals("setRecode", response.getRecode()); + Assertions.assertEquals("setSysSerialNo", response.getSysSerialNo()); + Assertions.assertEquals("setSysTime", response.getSysTime()); + } + + @Test + void agrtQueryTest() { + EntpayAgrtQueryRequest request = new EntpayAgrtQueryRequest(); + extractedEntpayAgrtQueryRequestParams(request); + extractedEntpayAgrtQueryRequestAssertions(request); + + System.out.println(Json.toJson(request)); + String requestJson = Json.toJson(request); + Assertions.assertEquals("{\"channel_no\":\"setChannelNo\",\"app_no\":\"setAppNo\",\"serial_no\":\"setSerialNo\",\"trans_date\":\"setTransDate\",\"trans_tradetime\":\"setTransTradeTime\",\"file_no\":\"setFileNo\",\"account_no\":\"setAccountNo\",\"account_name\":\"setAccountName\",\"start_date\":\"setStartDate\",\"end_date\":\"setEndDate\"}", requestJson); + + EntpayAgrtQueryResponse response = new EntpayAgrtQueryResponse(); + extractedEntpayAgrtQueryResponseParams(response); + extractedEntpayAgrtQueryResponseAssertions(response); + + System.out.println(Json.toJson(response)); + String responseJson = Json.toJson(response); + Assertions.assertEquals("{\"recode\":\"setRecode\",\"recode_info\":\"setRecodeInfo\",\"sys_serial_no\":\"setSysSerialNo\",\"sys_date\":\"setSysDate\",\"sys_time\":\"setSysTime\",\"recode_list\":[]}", responseJson); + + HttpResponse httpResponse = TestHttpResponse.create("/entpay/agrt-query", response, EntpayAgrtQueryResponse.class); + Mockito.when(apiClient.post( + Mockito.eq("/entpay/agrt-query"), + Mockito.any(HttpHeaders.class), + Mockito.any(RequestBody.class), + Mockito.eq(EntpayAgrtQueryResponse.class))) + .thenReturn(httpResponse); + + EntpayAgrtQueryResponse result = service.agrtQuery(request); + + System.out.println(Json.toJson(result)); + String resultJson = Json.toJson(result); + Assertions.assertEquals("{\"recode\":\"setRecode\",\"recode_info\":\"setRecodeInfo\",\"sys_serial_no\":\"setSysSerialNo\",\"sys_date\":\"setSysDate\",\"sys_time\":\"setSysTime\",\"recode_list\":[]}", resultJson); + } + + void extractedEntpayAgrtQueryRequestParams(EntpayAgrtQueryRequest request) { + request.setAccountName("setAccountName"); + request.setSerialNo("setSerialNo"); + request.setTransDate("setTransDate"); + request.setChannelNo("setChannelNo"); + request.setAppNo("setAppNo"); + request.setAccountNo("setAccountNo"); + request.setFileNo("setFileNo"); + request.setStartDate("setStartDate"); + request.setEndDate("setEndDate"); + request.setTransTradeTime("setTransTradeTime"); + } + + void extractedEntpayAgrtQueryRequestAssertions(EntpayAgrtQueryRequest request) { + Assertions.assertEquals("setAccountName", request.getAccountName()); + Assertions.assertEquals("setSerialNo", request.getSerialNo()); + Assertions.assertEquals("setTransDate", request.getTransDate()); + Assertions.assertEquals("setChannelNo", request.getChannelNo()); + Assertions.assertEquals("setAppNo", request.getAppNo()); + Assertions.assertEquals("setAccountNo", request.getAccountNo()); + Assertions.assertEquals("setFileNo", request.getFileNo()); + Assertions.assertEquals("setStartDate", request.getStartDate()); + Assertions.assertEquals("setEndDate", request.getEndDate()); + Assertions.assertEquals("setTransTradeTime", request.getTransTradeTime()); + } + + void extractedEntpayAgrtQueryResponseParams(EntpayAgrtQueryResponse response) { + response.setRecodeInfo("setRecodeInfo"); + response.setSysDate("setSysDate"); + response.setRecode("setRecode"); + response.setSysSerialNo("setSysSerialNo"); + response.setSysTime("setSysTime"); + response.setRecodeLists(Lists.list()); + } + + void extractedEntpayAgrtQueryResponseAssertions(EntpayAgrtQueryResponse response) { + Assertions.assertEquals("setRecodeInfo", response.getRecodeInfo()); + Assertions.assertEquals("setSysDate", response.getSysDate()); + Assertions.assertEquals("setRecode", response.getRecode()); + Assertions.assertEquals("setSysSerialNo", response.getSysSerialNo()); + Assertions.assertEquals("setSysTime", response.getSysTime()); + Assertions.assertNotNull(response.getRecodeLists()); + } + +} \ No newline at end of file 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 b4c26fe..2aa1bac 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 @@ -21,6 +21,8 @@ import com.czcb.scfs.api.service.v2.trans.model.QueryTradeDetailsHistoryRequest; import com.czcb.scfs.api.service.v2.trans.model.QueryTradeDetailsHistoryResponse; import com.czcb.scfs.api.service.v2.trans.model.QueryTradeDetailsRequest; import com.czcb.scfs.api.service.v2.trans.model.QueryTradeDetailsResponse; +import com.czcb.scfs.service.cat.order.model.*; +import com.czcb.scfs.service.cat.project.model.*; import org.junit.jupiter.api.Test; class RefGenTestMethodTest { @@ -206,4 +208,46 @@ class RefGenTestMethodTest { RefGenTestMethod.gen(BalanceBalanceVoucherRequest.class, BalanceBalanceVoucherResponse.class, "balanceVoucherDownload", "/balance-voucher/v2/download-for-base64"); } + + @Test + void projectServiceTest() { + RefGenTestMethod.gen(ProjectAddRequest.class, ProjectAddResponse.class, + "projectAdd", "/purchase/project-add"); + + RefGenTestMethod.gen(ProjectQueryRequest.class, ProjectQueryResponse.class, + "projectQuery", "/purchase/project-query"); + + RefGenTestMethod.gen(ProjectPayRequest.class, ProjectPayResponse.class, + "projectPay", "/purchase/project-pay"); + + RefGenTestMethod.gen(ProjectRepayRequest.class, ProjectRepayResponse.class, + "projectRepay", "/purchase/project-repay"); + + RefGenTestMethod.gen(CommonTradePayRequest.class, CommonTradePayResponse.class, + "pay", "/common-trade/pay"); + + RefGenTestMethod.gen(EntpayAgrtQueryRequest.class, EntpayAgrtQueryResponse.class, + "agrtQuery", "/entpay/agrt-query"); + } + + @Test + void orderServiceTest() { + RefGenTestMethod.gen(TradeOrdersCreateRequest.class, TradeOrdersCreateResponse.class, + "tradeOrdersCreate", "/trade-orders/create"); + + RefGenTestMethod.gen(TradeOrdersCancelRequest.class, TradeOrdersCancelResponse.class, + "tradeOrdersCancel", "/trade-orders/cancel"); + + RefGenTestMethod.gen(TradeOrdersQueryRequest.class, TradeOrdersQueryResponse.class, + "tradeOrdersQuery", "/trade-orders/query"); + + RefGenTestMethod.gen(TradeOrdersPaySettleRequest.class, TradeOrdersPaySettleResponse.class, + "tradeOrdersPaySettle", "/trade-orders/pay-settle"); + + RefGenTestMethod.gen(TradeOrdersCreditStatRequest.class, TradeOrdersCreditStatResponse.class, + "tradeOrdersCreditStat", "/trade-orders/credit-stat"); + + RefGenTestMethod.gen(TradeOrderRepayRequest.class, TradeOrderRepayResponse.class, + "tradeOrderRepay", "/trade-orders/credit-repay"); + } } \ No newline at end of file