Files
varsig/registry_test.go

75 lines
1.5 KiB
Go
Raw Permalink Normal View History

package varsig_test
import (
"bytes"
"encoding/hex"
"testing"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"github.com/ucan-wg/go-varsig"
)
func TestRegistry_Decode(t *testing.T) {
t.Run("passes - v1", func(t *testing.T) {
data, err := hex.DecodeString("34018120")
require.NoError(t, err)
reg := testRegistry(t)
vs, err := reg.DecodeStream(bytes.NewReader(data))
require.NoError(t, err)
assert.Equal(t, varsig.Version1, vs.Version())
2025-08-05 15:35:12 +02:00
assert.Equal(t, testAlgorithm1, vs.Algorithm())
})
}
const (
2025-08-05 15:35:12 +02:00
testAlgorithm0 varsig.Algorithm = 0x1000
testAlgorithm1 varsig.Algorithm = 0x1001
)
func testRegistry(t *testing.T) varsig.Registry {
t.Helper()
reg := varsig.NewRegistry()
2025-08-05 15:35:12 +02:00
reg.Register(testAlgorithm0, testDecodeFunc(testAlgorithm0))
reg.Register(testAlgorithm1, testDecodeFunc(testAlgorithm1))
return reg
}
2025-08-05 15:35:12 +02:00
func testDecodeFunc(algo varsig.Algorithm) varsig.DecodeFunc {
2025-07-28 18:40:45 +02:00
return func(r varsig.BytesReader) (varsig.Varsig, error) {
2025-08-05 15:35:12 +02:00
return &testVarsig{algo: algo}, nil
}
}
var _ varsig.Varsig = testVarsig{}
type testVarsig struct {
2025-08-05 15:35:12 +02:00
algo varsig.Algorithm
payEnc varsig.PayloadEncoding
}
func (v testVarsig) Version() varsig.Version {
2025-07-28 18:40:45 +02:00
return varsig.Version1
}
2025-08-05 15:35:12 +02:00
func (v testVarsig) Algorithm() varsig.Algorithm {
return v.algo
}
2025-07-29 14:04:42 +02:00
func (v testVarsig) Hash() varsig.Hash {
return varsig.HashUnspecified
}
func (v testVarsig) PayloadEncoding() varsig.PayloadEncoding {
return v.payEnc
}
func (v testVarsig) Encode() []byte {
return nil
}