package persistence

import (
	"context"
	"errors"
	"testing"
)

func TestRuntimeApprovalIdentityAnchorsRejectUnboundedIdentity(t *testing.T) {
	repository := NewRuntimeApprovalIdentityAnchorRepository(nil, nil)
	for name, call := range map[string]func() error{
		"definition id": func() error {
			_, err := repository.FindDefinitionByID(t.Context(), " ")
			return err
		},
		"definition natural key": func() error {
			_, err := repository.FindDefinitionByNaturalKey(t.Context(), "WorkItem", " ")
			return err
		},
		"node id": func() error {
			_, err := repository.FindNodeByID(t.Context(), " ")
			return err
		},
		"node definition": func() error {
			_, err := repository.ListNodesByDefinitionID(t.Context(), " ")
			return err
		},
	} {
		t.Run(name, func(t *testing.T) {
			if err := call(); err == nil || errors.Is(err, context.Canceled) {
				t.Fatalf("unbounded identity error = %v", err)
			}
		})
	}
}
