|
|
- package merkle
-
- import (
- "testing"
-
- "github.com/stretchr/testify/assert"
- )
-
- func TestSimpleProofValidateBasic(t *testing.T) {
- testCases := []struct {
- testName string
- malleateProof func(*SimpleProof)
- errStr string
- }{
- {"Good", func(sp *SimpleProof) {}, ""},
- {"Negative Total", func(sp *SimpleProof) { sp.Total = -1 }, "negative Total"},
- {"Negative Index", func(sp *SimpleProof) { sp.Index = -1 }, "negative Index"},
- {"Invalid LeafHash", func(sp *SimpleProof) { sp.LeafHash = make([]byte, 10) }, "expected LeafHash size to be 32, got 10"},
- {"Too many Aunts", func(sp *SimpleProof) { sp.Aunts = make([][]byte, maxAunts+1) }, "expected no more than 30000 aunts, got 30001"},
- {"Invalid Aunt", func(sp *SimpleProof) { sp.Aunts[0] = make([]byte, 10) }, "expected Aunts#0 size to be 32, got 10"},
- }
-
- for _, tc := range testCases {
- tc := tc
- t.Run(tc.testName, func(t *testing.T) {
- _, proofs := SimpleProofsFromByteSlices([][]byte{
- []byte("apple"),
- []byte("watermelon"),
- []byte("kiwi"),
- })
- tc.malleateProof(proofs[0])
- err := proofs[0].ValidateBasic()
- if tc.errStr != "" {
- assert.Contains(t, err.Error(), tc.errStr)
- }
- })
- }
- }
|