package model; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; public class ObservedDataTest { private ObservedData target; private int callbackCount = 0; private int callbackDirection = Integer.MIN_VALUE; private int callbackIndex = Integer.MIN_VALUE; private final Observer obs = ((data, direction, index) -> { callbackCount++; callbackDirection = direction; callbackIndex = index; }); @BeforeEach void setup() { target = new ObservedData<>(0, obs); callbackCount = 0; callbackDirection = Integer.MIN_VALUE; callbackIndex = Integer.MIN_VALUE; } @Test void testConstructor() { assertEquals(0, target.get()); assertNotNull(target.getAcceptor()); } @Test void testSet() { target.set(114514); assertEquals(114514, target.get()); assertEquals(1, callbackCount); assertEquals(Observer.DIRECTION_CHANGE, callbackDirection); assertEquals(Observer.INDEX_NOT_IN_LIST, callbackIndex); } }