#include <rive/file.hpp>
#include <rive/node.hpp>
#include <rive/shapes/clipping_shape.hpp>
#include <rive/shapes/rectangle.hpp>
#include <rive/shapes/shape.hpp>
#include <rive/animation/state_machine_instance.hpp>
#include "utils/no_op_factory.hpp"
#include "utils/no_op_renderer.hpp"
#include "rive_file_reader.hpp"
#include <catch.hpp>
#include <cstdio>

TEST_CASE("default state machine is detected at load", "[file]") {
    auto file = ReadRiveFile("../../test/assets/entry.riv");

    auto abi = file->artboardAt(0);
    auto index = abi->defaultStateMachineIndex();

    REQUIRE(index >= 0);
    REQUIRE(abi->stateMachineNameAt(index) == "State Machine 1");

    auto smi = abi->defaultStateMachine();

    REQUIRE(smi != nullptr);
    REQUIRE(smi->name() == "State Machine 1");

    // default scene is the same as the default statemachine (when we have one)
    auto scene = abi->defaultScene();
    REQUIRE(scene != nullptr);
    REQUIRE(scene->name() == smi->name());
}
