mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-06-19 00:41:43 +00:00
The "Utility" name better matches its intended generic use case and avoids overloaded terminology with unit testing (e.g. the need to name the opmode annotation `@TestOpMode`). The driver station will also be updated to reflect this change.
40 lines
1.3 KiB
Java
40 lines
1.3 KiB
Java
// Copyright (c) FIRST and other WPILib contributors.
|
|
// Open Source Software; you can modify and/or share it under the terms of
|
|
// the WPILib BSD license file in the root directory of this project.
|
|
|
|
package org.wpilib;
|
|
|
|
import org.junit.jupiter.api.extension.BeforeAllCallback;
|
|
import org.junit.jupiter.api.extension.ExtensionContext;
|
|
import org.junit.jupiter.api.extension.ExtensionContext.Namespace;
|
|
import org.wpilib.hardware.hal.HAL;
|
|
import org.wpilib.hardware.hal.RobotMode;
|
|
import org.wpilib.simulation.DriverStationSim;
|
|
|
|
public final class MockHardwareExtension implements BeforeAllCallback {
|
|
private static ExtensionContext getRoot(ExtensionContext context) {
|
|
return context.getParent().map(MockHardwareExtension::getRoot).orElse(context);
|
|
}
|
|
|
|
@Override
|
|
public void beforeAll(ExtensionContext context) {
|
|
getRoot(context)
|
|
.getStore(Namespace.GLOBAL)
|
|
.getOrComputeIfAbsent(
|
|
"HAL Initialized",
|
|
key -> {
|
|
initializeHardware();
|
|
return true;
|
|
},
|
|
Boolean.class);
|
|
}
|
|
|
|
private void initializeHardware() {
|
|
HAL.initialize(500, 0);
|
|
DriverStationSim.setDsAttached(true);
|
|
DriverStationSim.setEnabled(true);
|
|
DriverStationSim.setRobotMode(RobotMode.UTILITY);
|
|
DriverStationSim.notifyNewData();
|
|
}
|
|
}
|