From 1111991a9c3675f53b64d16379727b2aa6149997 Mon Sep 17 00:00:00 2001
From: yeg <1347747024@qq.com>
Date: 星期一, 28 九月 2026 15:48:08 +0800
Subject: [PATCH] 厂商库口令改为优先读本地凭据文件,并在启动时自检

---
 ruoyi-admin/src/test/java/com/battery/business/service/impl/DeviceAdapterServiceImplTest.java |    8 ++++++--
 1 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/ruoyi-admin/src/test/java/com/battery/business/service/impl/DeviceAdapterServiceImplTest.java b/ruoyi-admin/src/test/java/com/battery/business/service/impl/DeviceAdapterServiceImplTest.java
index ef8125b..2705a10 100644
--- a/ruoyi-admin/src/test/java/com/battery/business/service/impl/DeviceAdapterServiceImplTest.java
+++ b/ruoyi-admin/src/test/java/com/battery/business/service/impl/DeviceAdapterServiceImplTest.java
@@ -21,6 +21,7 @@
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
+import org.mockito.ArgumentCaptor;
 import org.mockito.Mock;
 import org.mockito.junit.jupiter.MockitoExtension;
 import org.springframework.context.annotation.AnnotationConfigApplicationContext;
@@ -110,7 +111,7 @@
         verify(adapterMapper, never()).updateDeviceAdapterStatus(any(), any(), any());
     }
 
-    /** 单行配置有问题不得拦住后端启动:记下原因,由发现轮询按周期重试并持久化失败。 */
+    /** 单行配置有问题不得拦住后端启动:写日志并把失败落到该行,使"忘了放凭据"在启动后立刻可见。 */
     @Test
     void startupRestoreSurvivesOneBrokenAdapterRow()
     {
@@ -126,12 +127,15 @@
         vendor.setStatus("0");
         vendor.setCapabilities("{\"discovery\":true,\"realtimeObservation\":true,\"historyDownload\":true,\"control\":false}");
         when(adapterMapper.selectEnabledDeviceAdapters()).thenReturn(List.of(vendor));
-        org.mockito.Mockito.doThrow(new DeviceAdapterException("缺少厂商库连接口令:请设置环境变量 X"))
+        org.mockito.Mockito.doThrow(new DeviceAdapterException("缺少厂商库连接口令:config/vendor-credentials.properties 中没有键 X"))
                 .when(registry).synchronize(any());
 
         service.synchronizeEnabledAdapters();
 
         verify(registry).synchronize(any());
+        ArgumentCaptor<String> message = ArgumentCaptor.forClass(String.class);
+        verify(adapterMapper).updateDiscoveryFailure(eq(9L), any(), message.capture());
+        assertTrue(message.getValue().contains("缺少厂商库连接口令"));
     }
 
     @Test

--
Gitblit v1.7.1