//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 下载临时链接应包含签名参数");
|
// }
|
//}
|