liujie
2026-03-09 bbdd5f4f286fc593c5c30bd1bccd1f39af135dfa
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
//package com.xiaopeng.map.service;
//
//import com.xiaopeng.map.dto.AreaInput;
//import com.xiaopeng.map.utils.XngpAreaRTreeFbsUtil;
//import lombok.extern.slf4j.Slf4j;
//import org.junit.jupiter.api.Assumptions;
//import org.junit.jupiter.api.Test;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.boot.test.autoconfigure.actuate.metrics.AutoConfigureMetrics;
//import org.springframework.boot.test.context.SpringBootTest;
//import org.springframework.test.context.ActiveProfiles;
//
//import java.util.Arrays;
//import java.util.List;
//
//import static org.junit.jupiter.api.Assertions.assertNotNull;
//import static org.junit.jupiter.api.Assertions.assertTrue;
//
///**
// * AdcOssHandleService 集成测试,直接调用真实 OSS 服务。
// * 运行前需配置环境变量:ALIYUN_OSS_ACCESS_KEY_ID、ALIYUN_OSS_ACCESS_KEY_SECRET、VIN_SALT1、VIN_SALT2
// */
//@Slf4j
//@SpringBootTest(classes = com.xiaopeng.map.MapApplication.class)
//@ActiveProfiles("local")
//@AutoConfigureMetrics
//class AdcOssHandleServiceTest {
//
//    @Autowired(required = false)
//    private AdcOssHandleService adcOssHandleService;
//
//    @Autowired(required = false)
//    private RobotaxiOssService robotaxiOssService;
//
//    @Test
//    void uploadOddLayerFile() {
//        if (adcOssHandleService == null || robotaxiOssService == null) {
//            log.warn("OSS 未启用,测试跳过。请配置 ALIYUN_OSS_ACCESS_KEY_ID、ALIYUN_OSS_ACCESS_KEY_SECRET、VIN_SALT1、VIN_SALT2");
//            Assumptions.assumeTrue(false, "OSS 未启用,请配置环境变量");
//        }
//        // 构造测试坐标点:成都区域 3 个多边形
//        String gcl1 = "104.06249_30.58322,104.06244_30.58049,104.06500_30.58100,104.06600_30.58400";
//        String gcl2 = "104.06800_30.58200,104.06900_30.58000,104.07100_30.58150,104.06800_30.58200";
//        String gcl3 = "104.05500_30.57800,104.05700_30.57600,104.06000_30.57750,104.05500_30.57800";
//
//        List<XngpAreaRTreeFbsUtil.LonLat> points1 = XngpAreaRTreeFbsUtil.parseGcl(gcl1);
//        List<XngpAreaRTreeFbsUtil.LonLat> points2 = XngpAreaRTreeFbsUtil.parseGcl(gcl2);
//        List<XngpAreaRTreeFbsUtil.LonLat> points3 = XngpAreaRTreeFbsUtil.parseGcl(gcl3);
//
//        assertNotNull(points1);
//        assertNotNull(points2);
//        assertNotNull(points3);
//        assertTrue(points1.size() >= 3, "多边形1至少需要 3 个点");
//        assertTrue(points2.size() >= 3, "多边形2至少需要 3 个点");
//        assertTrue(points3.size() >= 3, "多边形3至少需要 3 个点");
//
//        String vin = "21312323333333312";  // 替换为实际测试 VIN
//
//        List<AreaInput> areas = Arrays.asList(
//                AreaInput.builder().points(points1).areaId(1).build(),
//                AreaInput.builder().points(points2).areaId(2).build(),
//                AreaInput.builder().points(points3).areaId(3).build()
//        );
//        String objectKey = adcOssHandleService.uploadOddLayerFile(areas, vin);
//        log.info("uploadOddLayerFile objectKey={}", objectKey);
//
//        assertNotNull(objectKey);
//        assertTrue(objectKey.contains("ROBOTAXI_ODD_layer"),
//                "返回 objectKey 应包含路径前缀");
//
//        // 获取 bin 文件下载临时链接(Presigned URL)
//        String downloadUrl = robotaxiOssService.generatePresignedDownloadUrl(objectKey, 3600);
//        log.info("generatePresignedDownloadUrl bin downloadUrl={}", downloadUrl);
//        assertNotNull(downloadUrl);
//        assertTrue(downloadUrl.contains("Expires") || downloadUrl.contains("Signature"),
//                "下载临时链接应包含签名参数(Expires 或 Signature)");
//
//        // 获取 xngp_area_version.pb 下载临时链接(与 bin 同目录)
//        String pbObjectKey = objectKey.substring(0, objectKey.lastIndexOf('/') + 1) + "xngp_area_version.pb";
//        String pbDownloadUrl = robotaxiOssService.generatePresignedDownloadUrl(pbObjectKey, 3600);
//        log.info("generatePresignedDownloadUrl xngp_area_version.pb downloadUrl={}", pbDownloadUrl);
//        assertNotNull(pbDownloadUrl);
//        assertTrue(pbDownloadUrl.contains("Expires") || pbDownloadUrl.contains("Signature"),
//                "xngp_area_version.pb 下载临时链接应包含签名参数");
//    }
//}