#include "fesa/core/source_identity.hpp"

#include <gtest/gtest.h>

#include <cstdint>
#include <filesystem>
#include <string>

TEST(CoreDiagnostics, SourceIdentityPreservesRawIdentity) {
    const fesa::SourceLocation location{
        std::filesystem::path{"models/My Beam.inp"}, 27U};
    const fesa::SourceEntityId identity{
        "Beam-Instance_A", std::int64_t{42}, "00042"};

    EXPECT_EQ(location.file, std::filesystem::path{"models/My Beam.inp"});
    EXPECT_EQ(location.line, 27U);
    EXPECT_EQ(identity.instanceName, "Beam-Instance_A");
    EXPECT_EQ(identity.sourceLabel, 42);
    EXPECT_EQ(identity.sourceLabelText, "00042");
}
