battery-device-bts/src/test/java/com/battery/device/bts/BtsDeviceAdapterContractTest.java
@@ -9,9 +9,9 @@
import java.util.Set;
import org.junit.jupiter.api.Test;
import com.battery.device.api.DeviceAdapter;
import com.battery.device.model.ChannelIdentity;
import com.battery.device.model.DeviceControlCommand;
import com.battery.device.model.DeviceWorkStatus;
import com.battery.device.api.model.ChannelIdentity;
import com.battery.device.api.model.DeviceControlCommand;
import com.battery.device.api.model.DeviceWorkStatus;
class BtsDeviceAdapterContractTest
{
@@ -34,35 +34,19 @@
                    + "<inquire dev=\"22-3-2-8-0\" workstatus=\"working\" voltage=\"3.5\"/>"
                    + "<inquire dev=\"22-3-1-6-0\" workstatus=\"futureState\" voltage=\"3.6\"/>"
                    + "</list></bts>");
            simulator.enqueue("<bts><cmd>inquiredf_resp</cmd><list count=\"2\">"
                    + "<chl devtype=\"22\" devid=\"3\" subdevid=\"2\" chlid=\"8\" testid=\"11\" count=\"3\">true</chl>"
                    + "<chl devtype=\"22\" devid=\"3\" subdevid=\"1\" chlid=\"6\" testid=\"10\" count=\"11\">false</chl>"
                    + "</list></bts>");
            simulator.enqueue("<bts><cmd>download_resp</cmd>"
                    + "<download devtype=\"22\" devid=\"3\" subdevid=\"2\" chlid=\"8\" testid=\"11\"/>"
                    + "<list count=\"3\">"
                    + historyData(3) + historyData(1) + historyData(3) + "</list></bts>");
            assertEquals(2, adapter.discoverChannels().size());
            var snapshots = adapter.inquire(Set.of(first, second));
            var history = adapter.inquireHistory(Set.of(first, second));
            var page = adapter.downloadHistory(first, "11", 1, 1000);
            assertTrue(adapter.capabilities().discovery());
            assertTrue(adapter.capabilities().realtimeObservation());
            assertTrue(adapter.capabilities().historyDownload());
            assertFalse(adapter.capabilities().historyDownload());
            assertFalse(adapter.capabilities().control());
            assertEquals(DeviceWorkStatus.UNKNOWN, snapshots.get(second).workStatus());
            assertFalse(history.get(1).uploadComplete());
            assertEquals(4, page.nextPosition());
            assertEquals(java.util.List.of(3L, 1L, 3L),
                    page.samples().stream().map(sample -> sample.sequenceId()).toList());
            int observedRequests = simulator.requests().size();
            for (DeviceControlCommand command : DeviceControlCommand.values())
                assertThrows(UnsupportedOperationException.class, () -> adapter.control(first, command));
            assertEquals(observedRequests, simulator.requests().size());
            assertEquals(4, observedRequests);
            assertEquals(2, observedRequests);
        }
    }
@@ -83,9 +67,4 @@
        }
    }
    private static String historyData(long sequenceId)
    {
        return "<data seqid=\"" + sequenceId + "\" stepid=\"1\" cycleid=\"1\" steptype=\"cc\" "
                + "atime=\"2026-08-25 18.00.00\" volt=\"3.5\" curr=\"1.2\" cap=\"0.1\" eng=\"0.35\"/>";
    }
}