package importgraph

import (
	"testing"

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

func TestSupportedResolverContractsMatchKnownFamilies(t *testing.T) {
	contracts := SupportedResolverContracts()
	require.Len(t, contracts, 10)
	require.Equal(t, []string{
		"c-cpp",
		"csharp",
		"go",
		"java",
		"kotlin",
		"php",
		"python",
		"ruby",
		"rust",
		"typescript-javascript",
	}, SupportedResolverContractIDs())
	for _, contract := range contracts {
		require.NotContains(t, contract.Languages, "swift")
	}
	require.Contains(t, contracts, ResolverContract{ID: "go", Languages: []string{"go"}, Status: "implemented"})
	require.Contains(t, contracts, ResolverContract{ID: "typescript-javascript", Languages: []string{"typescript", "javascript"}, Status: "partial"})
	require.Contains(t, contracts, ResolverContract{ID: "rust", Languages: []string{"rust"}, Status: "partial"})
}
