2024-12-05 17:11:18 +01:00
|
|
|
package client
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"iter"
|
|
|
|
|
"slices"
|
|
|
|
|
"testing"
|
|
|
|
|
|
|
|
|
|
"github.com/stretchr/testify/require"
|
|
|
|
|
"github.com/ucan-wg/go-ucan/did/didtest"
|
|
|
|
|
"github.com/ucan-wg/go-ucan/pkg/command"
|
|
|
|
|
"github.com/ucan-wg/go-ucan/token/delegation"
|
|
|
|
|
"github.com/ucan-wg/go-ucan/token/delegation/delegationtest"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
func TestFindProof(t *testing.T) {
|
|
|
|
|
dlgs := func() iter.Seq[*delegation.Bundle] {
|
|
|
|
|
return slices.Values(delegationtest.AllBundles)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
require.Equal(t, delegationtest.ProofAliceBob,
|
2024-12-10 14:50:29 +01:00
|
|
|
FindProof(dlgs, didtest.PersonaBob.DID(), delegationtest.NominalCommand, didtest.PersonaAlice.DID()))
|
2024-12-05 17:11:18 +01:00
|
|
|
require.Equal(t, delegationtest.ProofAliceBobCarol,
|
2024-12-10 14:50:29 +01:00
|
|
|
FindProof(dlgs, didtest.PersonaCarol.DID(), delegationtest.NominalCommand, didtest.PersonaAlice.DID()))
|
2024-12-05 17:11:18 +01:00
|
|
|
require.Equal(t, delegationtest.ProofAliceBobCarolDan,
|
2024-12-10 14:50:29 +01:00
|
|
|
FindProof(dlgs, didtest.PersonaDan.DID(), delegationtest.NominalCommand, didtest.PersonaAlice.DID()))
|
2024-12-05 17:11:18 +01:00
|
|
|
require.Equal(t, delegationtest.ProofAliceBobCarolDanErin,
|
2024-12-10 14:50:29 +01:00
|
|
|
FindProof(dlgs, didtest.PersonaErin.DID(), delegationtest.NominalCommand, didtest.PersonaAlice.DID()))
|
2024-12-05 17:11:18 +01:00
|
|
|
require.Equal(t, delegationtest.ProofAliceBobCarolDanErinFrank,
|
2024-12-10 14:50:29 +01:00
|
|
|
FindProof(dlgs, didtest.PersonaFrank.DID(), delegationtest.NominalCommand, didtest.PersonaAlice.DID()))
|
2024-12-05 17:11:18 +01:00
|
|
|
|
|
|
|
|
// wrong command
|
2024-12-10 14:50:29 +01:00
|
|
|
require.Empty(t, FindProof(dlgs, didtest.PersonaBob.DID(), command.New("foo"), didtest.PersonaAlice.DID()))
|
2024-12-05 17:11:18 +01:00
|
|
|
}
|