package activity

import (
	"strings"
	"testing"

	"github.com/stretchr/testify/require"
)

func TestResourceActivitySourceEventID(t *testing.T) {
	repo := ResourceActivityDataPlaneRepository{RepoFullName: "owner/repo"}

	require.Equal(t, "gitea:owner/repo:commit:abc", ResourceActivitySourceEventID(repo, "commit", "abc"))

	longID := ResourceActivitySourceEventID(repo, "commit", strings.Repeat("a", 300))
	require.True(t, strings.HasPrefix(longID, "gitea:"))
	require.Len(t, longID, len("gitea:")+64)
	require.Equal(t, longID, ResourceActivitySourceEventID(repo, "commit", strings.Repeat("a", 300)))
}

func TestResourceActivityControlSourceEventID(t *testing.T) {
	// Legacy-derivation formula: the migration recomputes these exact IDs.
	require.Equal(t, "control:resource:memory:mem_1:repo:canonical:created", ResourceActivityControlSourceEventID("memory", "mem_1", "canonical", "created"))

	longID := ResourceActivityControlSourceEventID("memory", strings.Repeat("m", 300), "canonical", "created")
	require.True(t, strings.HasPrefix(longID, "control:resource:"))
	require.Len(t, longID, len("control:resource:")+64)
	require.Equal(t, longID, ResourceActivityControlSourceEventID("memory", strings.Repeat("m", 300), "canonical", "created"))
}
