#include #include #include TEST_CASE("[Window] sf::Joystick") { SECTION("Constants") { STATIC_CHECK(sf::Joystick::Count == 8); STATIC_CHECK(sf::Joystick::ButtonCount == 32); STATIC_CHECK(sf::Joystick::AxisCount == 8); } SECTION("Identification") { const sf::Joystick::Identification identification; CHECK(identification.name == "No Joystick"); CHECK(identification.vendorId == 0); CHECK(identification.productId == 0); } // By avoiding calling sf::Joystick::update() we can guarantee that // no joysticks will be detected. This is how we can ensure these // tests are portable and reliable. const auto joystick = GENERATE(range(0u, sf::Joystick::Count - 1)); SECTION("isConnected()") { CHECK(!sf::Joystick::isConnected(joystick)); } SECTION("getButtonCount()") { CHECK(sf::Joystick::getButtonCount(joystick) == 0); } SECTION("hasAxis()") { CHECK(!sf::Joystick::hasAxis(joystick, sf::Joystick::X)); CHECK(!sf::Joystick::hasAxis(joystick, sf::Joystick::Y)); CHECK(!sf::Joystick::hasAxis(joystick, sf::Joystick::Z)); CHECK(!sf::Joystick::hasAxis(joystick, sf::Joystick::R)); CHECK(!sf::Joystick::hasAxis(joystick, sf::Joystick::U)); CHECK(!sf::Joystick::hasAxis(joystick, sf::Joystick::V)); CHECK(!sf::Joystick::hasAxis(joystick, sf::Joystick::PovX)); CHECK(!sf::Joystick::hasAxis(joystick, sf::Joystick::PovY)); } SECTION("isButtonPressed()") { const auto button = GENERATE(range(0u, sf::Joystick::ButtonCount - 1)); CHECK(!sf::Joystick::isButtonPressed(joystick, button)); } SECTION("getAxisPosition") { CHECK(sf::Joystick::getAxisPosition(joystick, sf::Joystick::X) == 0); CHECK(sf::Joystick::getAxisPosition(joystick, sf::Joystick::Y) == 0); CHECK(sf::Joystick::getAxisPosition(joystick, sf::Joystick::Z) == 0); CHECK(sf::Joystick::getAxisPosition(joystick, sf::Joystick::R) == 0); CHECK(sf::Joystick::getAxisPosition(joystick, sf::Joystick::U) == 0); CHECK(sf::Joystick::getAxisPosition(joystick, sf::Joystick::V) == 0); CHECK(sf::Joystick::getAxisPosition(joystick, sf::Joystick::PovX) == 0); CHECK(sf::Joystick::getAxisPosition(joystick, sf::Joystick::PovY) == 0); } SECTION("getIdentification()") { const auto identification = sf::Joystick::getIdentification(joystick); CHECK(identification.name == "No Joystick"); CHECK(identification.vendorId == 0); CHECK(identification.productId == 0); } }