diff --git a/src/test/java/com/gxwebsoft/shop/CertificatePathTest.java b/src/test/java/com/gxwebsoft/shop/CertificatePathTest.java new file mode 100644 index 0000000..4a3e39a --- /dev/null +++ b/src/test/java/com/gxwebsoft/shop/CertificatePathTest.java @@ -0,0 +1,79 @@ +package com.gxwebsoft.shop; + +import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.*; + +/** + * 证书路径构建测试 + * + * @author 科技小王子 + * @since 2025-08-09 + */ +public class CertificatePathTest { + + @Test + public void testDevCertificatePath() { + // 模拟开发环境配置 + String uploadPath = "/Users/gxwebsoft/JAVA/mp-java/src/main/resources/"; + Integer tenantId = 10324; + String privateKeyFile = "apiclient_key.pem"; + + // 构建证书路径 + String tenantCertPath = uploadPath + "dev/wechat/" + tenantId; + String privateKeyPath = tenantCertPath + "/" + privateKeyFile; + + // 验证路径构建结果 + String expectedTenantPath = "/Users/gxwebsoft/JAVA/mp-java/src/main/resources/dev/wechat/10324"; + String expectedPrivateKeyPath = "/Users/gxwebsoft/JAVA/mp-java/src/main/resources/dev/wechat/10324/apiclient_key.pem"; + + assertEquals(expectedTenantPath, tenantCertPath); + assertEquals(expectedPrivateKeyPath, privateKeyPath); + + System.out.println("开发环境证书路径测试通过:"); + System.out.println("租户证书目录: " + tenantCertPath); + System.out.println("私钥文件路径: " + privateKeyPath); + } + + @Test + public void testProdCertificatePath() { + // 模拟生产环境配置 + String uploadPath = "/www/wwwroot/file.ws"; + Integer tenantId = 10324; + String privateKeyFile = "apiclient_key.pem"; + + // 构建证书路径(生产环境不使用upload-path,而是从数据库读取) + // 这里只是为了对比展示 + String tenantCertPath = uploadPath + "dev/wechat/" + tenantId; + String privateKeyPath = tenantCertPath + "/" + privateKeyFile; + + // 验证路径构建结果 + String expectedTenantPath = "/www/wwwroot/file.ws/dev/wechat/10324"; + String expectedPrivateKeyPath = "/www/wwwroot/file.ws/dev/wechat/10324/apiclient_key.pem"; + + assertEquals(expectedTenantPath, tenantCertPath); + assertEquals(expectedPrivateKeyPath, privateKeyPath); + + System.out.println("生产环境证书路径测试通过:"); + System.out.println("租户证书目录: " + tenantCertPath); + System.out.println("私钥文件路径: " + privateKeyPath); + } + + @Test + public void testMultipleTenants() { + String uploadPath = "/Users/gxwebsoft/JAVA/mp-java/src/main/resources/"; + String privateKeyFile = "apiclient_key.pem"; + + // 测试多个租户的路径构建 + Integer[] tenantIds = {10324, 10325, 10326}; + + for (Integer tenantId : tenantIds) { + String tenantCertPath = uploadPath + "dev/wechat/" + tenantId; + String privateKeyPath = tenantCertPath + "/" + privateKeyFile; + + assertTrue(tenantCertPath.contains(tenantId.toString())); + assertTrue(privateKeyPath.endsWith(privateKeyFile)); + + System.out.println("租户 " + tenantId + " 证书路径: " + privateKeyPath); + } + } +}