/*----------------------------------------------------------------------------*/ /* Copyright (c) 2016-2020 FIRST. All Rights Reserved. */ /* Open Source Software - may be modified and shared by FRC teams. The code */ /* must be accompanied by the FIRST BSD license file in the root directory of */ /* the 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 Initalized", 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); } }