// 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 edu.wpi.first.wpilibj2; import org.junit.jupiter.api.extension.BeforeAllCallback; import org.junit.jupiter.api.extension.ExtensionContext; import org.junit.jupiter.api.extension.ExtensionContext.Namespace; import edu.wpi.first.hal.HAL; import edu.wpi.first.wpilibj.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.setAutonomous(false); DriverStationSim.setEnabled(true); DriverStationSim.setTest(true); } }