github.com/onflow/flow-go@v0.35.7-crescendo-preview.23-atree-inlining/utils/unittest/equals.go (about) 1 package unittest 2 3 import ( 4 "encoding/json" 5 "testing" 6 7 "github.com/stretchr/testify/assert" 8 "github.com/stretchr/testify/require" 9 10 "github.com/onflow/flow-go/model/flow" 11 "github.com/onflow/flow-go/state/protocol" 12 "github.com/onflow/flow-go/state/protocol/inmem" 13 ) 14 15 func toHex(ids []flow.Identifier) []string { 16 hex := make([]string, 0, len(ids)) 17 for _, id := range ids { 18 hex = append(hex, id.String()) 19 } 20 return hex 21 } 22 23 func IDEqual(t *testing.T, id1, id2 flow.Identifier) { 24 require.Equal(t, id1.String(), id2.String()) 25 } 26 27 func IDsEqual(t *testing.T, id1, id2 []flow.Identifier) { 28 require.Equal(t, toHex(id1), toHex(id2)) 29 } 30 31 func AssertSnapshotsEqual(t *testing.T, snap1, snap2 protocol.Snapshot) { 32 inmem1, err := inmem.FromSnapshot(snap1) 33 require.NoError(t, err) 34 inmem2, err := inmem.FromSnapshot(snap2) 35 require.NoError(t, err) 36 37 encoded1, err := json.Marshal(inmem1.Encodable()) 38 require.NoError(t, err) 39 encoded2, err := json.Marshal(inmem2.Encodable()) 40 require.NoError(t, err) 41 42 assert.Equal(t, encoded1, encoded2) 43 }