| | |
| | | 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 |
| | | { |
| | |
| | | + "<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); |
| | | } |
| | | } |
| | | |
| | |
| | | } |
| | | } |
| | | |
| | | 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\"/>"; |
| | | } |
| | | } |