mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-06-25 01:41:43 +00:00
[wpilib] Split DriverStation into smaller classes (#8628)
This commit is contained in:
@@ -13,6 +13,7 @@ import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.params.ParameterizedTest;
|
||||
import org.junit.jupiter.params.provider.Arguments;
|
||||
import org.junit.jupiter.params.provider.MethodSource;
|
||||
import org.wpilib.driverstation.internal.DriverStationBackend;
|
||||
import org.wpilib.simulation.DriverStationSim;
|
||||
|
||||
class DriverStationTest {
|
||||
@@ -25,31 +26,31 @@ class DriverStationTest {
|
||||
|
||||
DriverStationSim.notifyNewData();
|
||||
|
||||
assertEquals(expected, DriverStation.isJoystickConnected(1));
|
||||
assertEquals(expected, DriverStationBackend.isJoystickConnected(1));
|
||||
}
|
||||
|
||||
@Test
|
||||
void getOpmodeIdReturnsZeroUntilUserProgramStarts() {
|
||||
DriverStationSim.setOpMode(0x1234);
|
||||
DriverStationSim.notifyNewData();
|
||||
assertEquals(0, DriverStation.getOpModeId());
|
||||
assertEquals(0, RobotState.getOpModeId());
|
||||
|
||||
DriverStation.observeUserProgramStarting();
|
||||
DriverStationBackend.observeUserProgramStarting();
|
||||
// need to manually mask because the upper eight bits include robot mode information
|
||||
assertEquals(0x1234, DriverStation.getOpModeId() & 0xFFFF);
|
||||
assertEquals(0x1234, RobotState.getOpModeId() & 0xFFFF);
|
||||
}
|
||||
|
||||
@Test
|
||||
void getOpmodeReturnsEmptyStringUntilUserProgramStarts() {
|
||||
DriverStationSim.setOpMode(0x1234);
|
||||
DriverStationSim.notifyNewData();
|
||||
assertEquals("", DriverStation.getOpMode());
|
||||
assertEquals("", RobotState.getOpMode());
|
||||
|
||||
DriverStation.observeUserProgramStarting();
|
||||
DriverStationBackend.observeUserProgramStarting();
|
||||
// in Sim, the opmode string is just the stringified version of the opmode i64 "<0000...0000>"
|
||||
// we need to parse the string to get the
|
||||
// need to manually mask because the upper eight bits include robot mode information
|
||||
String opmodeName = DriverStation.getOpMode();
|
||||
String opmodeName = RobotState.getOpMode();
|
||||
assertEquals(
|
||||
"0x1234",
|
||||
String.format(
|
||||
@@ -71,8 +72,8 @@ class DriverStationTest {
|
||||
DriverStationSim.setFmsAttached(fms);
|
||||
DriverStationSim.notifyNewData();
|
||||
|
||||
DriverStation.silenceJoystickConnectionWarning(silence);
|
||||
assertEquals(expected, DriverStation.isJoystickConnectionWarningSilenced());
|
||||
DriverStationBackend.silenceJoystickConnectionWarning(silence);
|
||||
assertEquals(expected, DriverStationBackend.isJoystickConnectionWarningSilenced());
|
||||
}
|
||||
|
||||
static Stream<Arguments> connectionWarningProvider() {
|
||||
@@ -86,7 +87,7 @@ class DriverStationTest {
|
||||
@AfterEach
|
||||
@SuppressWarnings("PMD.AvoidAccessibilityAlteration")
|
||||
void resetUserProgramFlag() throws ReflectiveOperationException {
|
||||
var field = DriverStation.class.getDeclaredField("m_userProgramStarted");
|
||||
var field = DriverStationBackend.class.getDeclaredField("m_userProgramStarted");
|
||||
field.setAccessible(true);
|
||||
field.set(null, false);
|
||||
}
|
||||
|
||||
@@ -14,7 +14,7 @@ import org.junit.jupiter.api.AfterEach;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.parallel.ResourceLock;
|
||||
import org.wpilib.driverstation.DriverStation;
|
||||
import org.wpilib.driverstation.internal.DriverStationBackend;
|
||||
import org.wpilib.hardware.hal.RobotMode;
|
||||
import org.wpilib.opmode.OpMode;
|
||||
import org.wpilib.simulation.DriverStationSim;
|
||||
@@ -99,14 +99,14 @@ class OpModeRobotTest {
|
||||
|
||||
@AfterEach
|
||||
void tearDown() {
|
||||
DriverStation.clearOpModes();
|
||||
DriverStationBackend.clearOpModes();
|
||||
SimHooks.resumeTiming();
|
||||
}
|
||||
|
||||
@AfterEach
|
||||
@SuppressWarnings("PMD.AvoidAccessibilityAlteration")
|
||||
void resetUserProgramFlag() throws ReflectiveOperationException {
|
||||
var field = DriverStation.class.getDeclaredField("m_userProgramStarted");
|
||||
var field = DriverStationBackend.class.getDeclaredField("m_userProgramStarted");
|
||||
field.setAccessible(true);
|
||||
field.set(null, false);
|
||||
}
|
||||
|
||||
@@ -8,7 +8,7 @@ import static org.junit.jupiter.api.Assertions.assertAll;
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.wpilib.driverstation.DriverStation.MatchType;
|
||||
import org.wpilib.driverstation.MatchType;
|
||||
import org.wpilib.hardware.hal.DriverStationJNI;
|
||||
import org.wpilib.hardware.hal.MatchInfoData;
|
||||
import org.wpilib.hardware.hal.simulation.DriverStationDataJNI;
|
||||
|
||||
@@ -11,7 +11,11 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.params.ParameterizedTest;
|
||||
import org.junit.jupiter.params.provider.EnumSource;
|
||||
import org.wpilib.driverstation.DriverStation;
|
||||
import org.wpilib.driverstation.Alliance;
|
||||
import org.wpilib.driverstation.MatchState;
|
||||
import org.wpilib.driverstation.MatchType;
|
||||
import org.wpilib.driverstation.RobotState;
|
||||
import org.wpilib.driverstation.internal.DriverStationBackend;
|
||||
import org.wpilib.hardware.hal.AllianceStationID;
|
||||
import org.wpilib.hardware.hal.HAL;
|
||||
import org.wpilib.hardware.hal.RobotMode;
|
||||
@@ -25,13 +29,13 @@ class DriverStationSimTest {
|
||||
HAL.initialize(500, 0);
|
||||
DriverStationSim.resetData();
|
||||
|
||||
assertFalse(DriverStation.isEnabled());
|
||||
assertFalse(RobotState.isEnabled());
|
||||
BooleanCallback callback = new BooleanCallback();
|
||||
try (CallbackStore cb = DriverStationSim.registerEnabledCallback(callback, false)) {
|
||||
DriverStationSim.setEnabled(true);
|
||||
DriverStationSim.notifyNewData();
|
||||
assertTrue(DriverStationSim.getEnabled());
|
||||
assertTrue(DriverStation.isEnabled());
|
||||
assertTrue(RobotState.isEnabled());
|
||||
assertTrue(callback.wasTriggered());
|
||||
assertTrue(callback.getSetValue());
|
||||
}
|
||||
@@ -42,14 +46,14 @@ class DriverStationSimTest {
|
||||
HAL.initialize(500, 0);
|
||||
DriverStationSim.resetData();
|
||||
|
||||
assertFalse(DriverStation.isAutonomous());
|
||||
assertFalse(RobotState.isAutonomous());
|
||||
EnumCallback callback = new EnumCallback();
|
||||
try (CallbackStore cb = DriverStationSim.registerRobotModeCallback(callback, false)) {
|
||||
DriverStationSim.setRobotMode(RobotMode.AUTONOMOUS);
|
||||
DriverStationSim.notifyNewData();
|
||||
assertEquals(RobotMode.AUTONOMOUS, DriverStationSim.getRobotMode());
|
||||
assertTrue(DriverStation.isAutonomous());
|
||||
assertEquals(RobotMode.AUTONOMOUS, DriverStation.getRobotMode());
|
||||
assertTrue(RobotState.isAutonomous());
|
||||
assertEquals(RobotMode.AUTONOMOUS, RobotState.getRobotMode());
|
||||
assertTrue(callback.wasTriggered());
|
||||
assertEquals(RobotMode.AUTONOMOUS.getValue(), callback.getSetValue());
|
||||
}
|
||||
@@ -60,14 +64,14 @@ class DriverStationSimTest {
|
||||
HAL.initialize(500, 0);
|
||||
DriverStationSim.resetData();
|
||||
|
||||
assertFalse(DriverStation.isTest());
|
||||
assertFalse(RobotState.isTest());
|
||||
EnumCallback callback = new EnumCallback();
|
||||
try (CallbackStore cb = DriverStationSim.registerRobotModeCallback(callback, false)) {
|
||||
DriverStationSim.setRobotMode(RobotMode.TEST);
|
||||
DriverStationSim.notifyNewData();
|
||||
assertEquals(RobotMode.TEST, DriverStationSim.getRobotMode());
|
||||
assertTrue(DriverStation.isTest());
|
||||
assertEquals(RobotMode.TEST, DriverStation.getRobotMode());
|
||||
assertTrue(RobotState.isTest());
|
||||
assertEquals(RobotMode.TEST, RobotState.getRobotMode());
|
||||
assertTrue(callback.wasTriggered());
|
||||
assertEquals(RobotMode.TEST.getValue(), callback.getSetValue());
|
||||
}
|
||||
@@ -78,13 +82,13 @@ class DriverStationSimTest {
|
||||
HAL.initialize(500, 0);
|
||||
DriverStationSim.resetData();
|
||||
|
||||
assertFalse(DriverStation.isEStopped());
|
||||
assertFalse(RobotState.isEStopped());
|
||||
BooleanCallback callback = new BooleanCallback();
|
||||
try (CallbackStore cb = DriverStationSim.registerEStopCallback(callback, false)) {
|
||||
DriverStationSim.setEStop(true);
|
||||
DriverStationSim.notifyNewData();
|
||||
assertTrue(DriverStationSim.getEStop());
|
||||
assertTrue(DriverStation.isEStopped());
|
||||
assertTrue(RobotState.isEStopped());
|
||||
assertTrue(callback.wasTriggered());
|
||||
assertTrue(callback.getSetValue());
|
||||
}
|
||||
@@ -95,13 +99,13 @@ class DriverStationSimTest {
|
||||
HAL.initialize(500, 0);
|
||||
DriverStationSim.resetData();
|
||||
|
||||
assertFalse(DriverStation.isFMSAttached());
|
||||
assertFalse(RobotState.isFMSAttached());
|
||||
BooleanCallback callback = new BooleanCallback();
|
||||
try (CallbackStore cb = DriverStationSim.registerFmsAttachedCallback(callback, false)) {
|
||||
DriverStationSim.setFmsAttached(true);
|
||||
DriverStationSim.notifyNewData();
|
||||
assertTrue(DriverStationSim.getFmsAttached());
|
||||
assertTrue(DriverStation.isFMSAttached());
|
||||
assertTrue(RobotState.isFMSAttached());
|
||||
assertTrue(callback.wasTriggered());
|
||||
assertTrue(callback.getSetValue());
|
||||
}
|
||||
@@ -111,20 +115,20 @@ class DriverStationSimTest {
|
||||
void testDsAttached() {
|
||||
HAL.initialize(500, 0);
|
||||
DriverStationSim.resetData();
|
||||
DriverStation.refreshData();
|
||||
DriverStationBackend.refreshData();
|
||||
|
||||
assertFalse(DriverStationSim.getDsAttached());
|
||||
assertFalse(DriverStation.isDSAttached());
|
||||
assertFalse(RobotState.isDSAttached());
|
||||
DriverStationSim.notifyNewData();
|
||||
assertTrue(DriverStationSim.getDsAttached());
|
||||
assertTrue(DriverStation.isDSAttached());
|
||||
assertTrue(RobotState.isDSAttached());
|
||||
|
||||
BooleanCallback callback = new BooleanCallback();
|
||||
try (CallbackStore cb = DriverStationSim.registerDsAttachedCallback(callback, false)) {
|
||||
DriverStationSim.setDsAttached(false);
|
||||
DriverStation.refreshData();
|
||||
DriverStationBackend.refreshData();
|
||||
assertFalse(DriverStationSim.getDsAttached());
|
||||
assertFalse(DriverStation.isDSAttached());
|
||||
assertFalse(RobotState.isDSAttached());
|
||||
assertTrue(callback.wasTriggered());
|
||||
assertFalse(callback.getSetValue());
|
||||
}
|
||||
@@ -146,8 +150,8 @@ class DriverStationSimTest {
|
||||
DriverStationSim.setAllianceStationId(allianceStation);
|
||||
DriverStationSim.notifyNewData();
|
||||
assertEquals(allianceStation, DriverStationSim.getAllianceStationId());
|
||||
assertFalse(DriverStation.getAlliance().isPresent());
|
||||
assertFalse(DriverStation.getLocation().isPresent());
|
||||
assertFalse(MatchState.getAlliance().isPresent());
|
||||
assertFalse(MatchState.getLocation().isPresent());
|
||||
assertTrue(callback.wasTriggered());
|
||||
assertEquals(allianceStation.ordinal(), callback.getSetValue());
|
||||
|
||||
@@ -156,8 +160,8 @@ class DriverStationSimTest {
|
||||
DriverStationSim.setAllianceStationId(allianceStation);
|
||||
DriverStationSim.notifyNewData();
|
||||
assertEquals(allianceStation, DriverStationSim.getAllianceStationId());
|
||||
assertEquals(DriverStation.Alliance.BLUE, DriverStation.getAlliance().get());
|
||||
assertEquals(1, DriverStation.getLocation().getAsInt());
|
||||
assertEquals(Alliance.BLUE, MatchState.getAlliance().get());
|
||||
assertEquals(1, MatchState.getLocation().getAsInt());
|
||||
assertTrue(callback.wasTriggered());
|
||||
assertEquals(allianceStation.ordinal(), callback.getSetValue());
|
||||
|
||||
@@ -166,8 +170,8 @@ class DriverStationSimTest {
|
||||
DriverStationSim.setAllianceStationId(allianceStation);
|
||||
DriverStationSim.notifyNewData();
|
||||
assertEquals(allianceStation, DriverStationSim.getAllianceStationId());
|
||||
assertEquals(DriverStation.Alliance.BLUE, DriverStation.getAlliance().get());
|
||||
assertEquals(2, DriverStation.getLocation().getAsInt());
|
||||
assertEquals(Alliance.BLUE, MatchState.getAlliance().get());
|
||||
assertEquals(2, MatchState.getLocation().getAsInt());
|
||||
assertTrue(callback.wasTriggered());
|
||||
assertEquals(allianceStation.ordinal(), callback.getSetValue());
|
||||
|
||||
@@ -176,8 +180,8 @@ class DriverStationSimTest {
|
||||
DriverStationSim.setAllianceStationId(allianceStation);
|
||||
DriverStationSim.notifyNewData();
|
||||
assertEquals(allianceStation, DriverStationSim.getAllianceStationId());
|
||||
assertEquals(DriverStation.Alliance.BLUE, DriverStation.getAlliance().get());
|
||||
assertEquals(3, DriverStation.getLocation().getAsInt());
|
||||
assertEquals(Alliance.BLUE, MatchState.getAlliance().get());
|
||||
assertEquals(3, MatchState.getLocation().getAsInt());
|
||||
assertTrue(callback.wasTriggered());
|
||||
assertEquals(allianceStation.ordinal(), callback.getSetValue());
|
||||
|
||||
@@ -186,8 +190,8 @@ class DriverStationSimTest {
|
||||
DriverStationSim.setAllianceStationId(allianceStation);
|
||||
DriverStationSim.notifyNewData();
|
||||
assertEquals(allianceStation, DriverStationSim.getAllianceStationId());
|
||||
assertEquals(DriverStation.Alliance.RED, DriverStation.getAlliance().get());
|
||||
assertEquals(1, DriverStation.getLocation().getAsInt());
|
||||
assertEquals(Alliance.RED, MatchState.getAlliance().get());
|
||||
assertEquals(1, MatchState.getLocation().getAsInt());
|
||||
assertTrue(callback.wasTriggered());
|
||||
assertEquals(allianceStation.ordinal(), callback.getSetValue());
|
||||
|
||||
@@ -196,8 +200,8 @@ class DriverStationSimTest {
|
||||
DriverStationSim.setAllianceStationId(allianceStation);
|
||||
DriverStationSim.notifyNewData();
|
||||
assertEquals(allianceStation, DriverStationSim.getAllianceStationId());
|
||||
assertEquals(DriverStation.Alliance.RED, DriverStation.getAlliance().get());
|
||||
assertEquals(2, DriverStation.getLocation().getAsInt());
|
||||
assertEquals(Alliance.RED, MatchState.getAlliance().get());
|
||||
assertEquals(2, MatchState.getLocation().getAsInt());
|
||||
assertTrue(callback.wasTriggered());
|
||||
assertEquals(allianceStation.ordinal(), callback.getSetValue());
|
||||
|
||||
@@ -206,22 +210,22 @@ class DriverStationSimTest {
|
||||
DriverStationSim.setAllianceStationId(allianceStation);
|
||||
DriverStationSim.notifyNewData();
|
||||
assertEquals(allianceStation, DriverStationSim.getAllianceStationId());
|
||||
assertEquals(DriverStation.Alliance.RED, DriverStation.getAlliance().get());
|
||||
assertEquals(3, DriverStation.getLocation().getAsInt());
|
||||
assertEquals(Alliance.RED, MatchState.getAlliance().get());
|
||||
assertEquals(3, MatchState.getLocation().getAsInt());
|
||||
assertTrue(callback.wasTriggered());
|
||||
assertEquals(allianceStation.ordinal(), callback.getSetValue());
|
||||
}
|
||||
}
|
||||
|
||||
@ParameterizedTest
|
||||
@EnumSource(DriverStation.MatchType.class)
|
||||
void testMatchType(DriverStation.MatchType matchType) {
|
||||
@EnumSource(MatchType.class)
|
||||
void testMatchType(MatchType matchType) {
|
||||
HAL.initialize(500, 0);
|
||||
DriverStationSim.resetData();
|
||||
|
||||
DriverStationSim.setMatchType(matchType);
|
||||
DriverStationSim.notifyNewData();
|
||||
assertEquals(matchType, DriverStation.getMatchType());
|
||||
assertEquals(matchType, MatchState.getMatchType());
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -231,7 +235,7 @@ class DriverStationSimTest {
|
||||
|
||||
DriverStationSim.setReplayNumber(4);
|
||||
DriverStationSim.notifyNewData();
|
||||
assertEquals(4, DriverStation.getReplayNumber());
|
||||
assertEquals(4, MatchState.getReplayNumber());
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -241,7 +245,7 @@ class DriverStationSimTest {
|
||||
|
||||
DriverStationSim.setMatchNumber(3);
|
||||
DriverStationSim.notifyNewData();
|
||||
assertEquals(3, DriverStation.getMatchNumber());
|
||||
assertEquals(3, MatchState.getMatchNumber());
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -254,8 +258,8 @@ class DriverStationSimTest {
|
||||
final double testTime = 19.174;
|
||||
DriverStationSim.setMatchTime(testTime);
|
||||
DriverStationSim.notifyNewData();
|
||||
assertEquals(testTime, DriverStationSim.getMatchTime());
|
||||
assertEquals(testTime, DriverStation.getMatchTime());
|
||||
assertEquals(testTime, MatchState.getMatchTime());
|
||||
assertEquals(testTime, MatchState.getMatchTime());
|
||||
assertTrue(callback.wasTriggered());
|
||||
assertEquals(testTime, callback.getSetValue());
|
||||
}
|
||||
@@ -269,7 +273,7 @@ class DriverStationSimTest {
|
||||
final String message = "Hello";
|
||||
DriverStationSim.setGameData(message);
|
||||
DriverStationSim.notifyNewData();
|
||||
var gameData = DriverStation.getGameData();
|
||||
var gameData = MatchState.getGameData();
|
||||
assertTrue(gameData.isPresent());
|
||||
assertEquals(message, gameData.get());
|
||||
}
|
||||
@@ -281,7 +285,7 @@ class DriverStationSimTest {
|
||||
|
||||
DriverStationSim.setGameData("");
|
||||
DriverStationSim.notifyNewData();
|
||||
assertTrue(DriverStation.getGameData().isEmpty());
|
||||
assertTrue(MatchState.getGameData().isEmpty());
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -291,7 +295,7 @@ class DriverStationSimTest {
|
||||
|
||||
DriverStationSim.setGameData(null);
|
||||
DriverStationSim.notifyNewData();
|
||||
assertTrue(DriverStation.getGameData().isEmpty());
|
||||
assertTrue(MatchState.getGameData().isEmpty());
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -302,6 +306,6 @@ class DriverStationSimTest {
|
||||
final String message = "The Best Event";
|
||||
DriverStationSim.setEventName(message);
|
||||
DriverStationSim.notifyNewData();
|
||||
assertEquals(message, DriverStation.getEventName());
|
||||
assertEquals(message, MatchState.getEventName());
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user