From 92f32acd847ea1700590bc669750f23ef499840e Mon Sep 17 00:00:00 2001
From: yeg <1347747024@qq.com>
Date: 星期六, 05 九月 2026 13:39:44 +0800
Subject: [PATCH] 清理旧测试结构并贯通最终业务数据链路

---
 battery-device-simulator/src/test/java/com/battery/device/simulator/SimulatorObservationAdapterContractTest.java |   33 +++++++++++++++++++++++++++++----
 1 files changed, 29 insertions(+), 4 deletions(-)

diff --git a/battery-device-simulator/src/test/java/com/battery/device/simulator/SimulatorObservationAdapterContractTest.java b/battery-device-simulator/src/test/java/com/battery/device/simulator/SimulatorObservationAdapterContractTest.java
index 86e331a..4415dab 100644
--- a/battery-device-simulator/src/test/java/com/battery/device/simulator/SimulatorObservationAdapterContractTest.java
+++ b/battery-device-simulator/src/test/java/com/battery/device/simulator/SimulatorObservationAdapterContractTest.java
@@ -1,13 +1,38 @@
 package com.battery.device.simulator;
 
-import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.*;
 import org.junit.jupiter.api.Test;
-import com.battery.device.model.ChannelIdentity;
-import com.battery.device.model.DeviceConnectionStatus;
-import com.battery.device.model.DeviceWorkStatus;
+import com.battery.device.api.model.ChannelIdentity;
+import com.battery.device.api.model.DeviceConnectionStatus;
+import com.battery.device.api.model.DeviceWorkStatus;
 
 class SimulatorObservationAdapterContractTest
 {
+    @Test void persistenceRejectsForeignIdentitiesAndOfflineCachedFacts() throws Exception
+    {
+        try (BtsDevelopmentSimulator simulator = new BtsDevelopmentSimulator(0))
+        {
+            ChannelIdentity channel = simulator.discoverChannels().get(0).identity();
+            simulator.updateChannel(channel.devid(), channel.chlid(), true, DeviceWorkStatus.WORKING);
+            simulator.advanceBts(java.time.Instant.now());
+            assertNotNull(simulator.latestCabinet(channel));
+            for (ChannelIdentity foreign : java.util.List.of(
+                    new ChannelIdentity("another-adapter", channel.devtype(), channel.devid(), channel.subdevid(), channel.chlid()),
+                    new ChannelIdentity(channel.adapterCode(), 999, channel.devid(), channel.subdevid(), channel.chlid()),
+                    new ChannelIdentity(channel.adapterCode(), channel.devtype(), channel.devid(), 999, channel.chlid())))
+            {
+                assertNull(simulator.latestCabinet(foreign));
+                assertNull(simulator.testPlan(foreign));
+                assertTrue(simulator.stepRecords(foreign).isEmpty());
+                assertTrue(simulator.cycleRecords(foreign).isEmpty());
+            }
+            simulator.updateChannel(channel.devid(), channel.chlid(), false, DeviceWorkStatus.WORKING);
+            assertNull(simulator.latestCabinet(channel));
+            assertTrue(simulator.stepRecords(channel).isEmpty());
+            assertTrue(simulator.cycleRecords(channel).isEmpty());
+        }
+    }
+
     @Test
     void simulatorCanBeUsedDirectlyThroughTheVendorNeutralContract() throws Exception
     {

--
Gitblit v1.7.1