package com.battery.device.api; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; import java.util.Set; 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.model.ObservationFailureReason; class DeviceObservationContractTest { @Test void noopUsesTheObservationContractWithoutExternalSideEffects() { ChannelIdentity channel = new ChannelIdentity("noop", 1, 2, 3, 4); try (DeviceObservationAdapter adapter = new NoopDeviceAdapter("noop")) { var observation = adapter.observe(Set.of(channel)).get(channel); assertEquals(DeviceConnectionStatus.OFFLINE, observation.connectionStatus()); assertEquals(DeviceWorkStatus.UNOBSERVABLE, observation.workStatus()); assertEquals(ObservationFailureReason.OFFLINE, observation.failureReason()); assertFalse(adapter.capabilities().control()); } } }