|
|
- package types
-
- import (
- "testing"
- "github.com/tendermint/tendermint/types/proto3"
- "github.com/stretchr/testify/assert"
- "github.com/golang/protobuf/proto"
- "time"
- )
-
- func TestProto3Compatibility(t *testing.T) {
- // TODO(ismail): table tests instead...
- tm, err := time.Parse("Mon Jan 2 15:04:05 -0700 MST 2006", "Mon Jan 2 15:04:05 -0700 MST 2006")
- assert.NoError(t, err)
-
- pbHeader := proto3.Header{
- ChainID: "cosmos",
- Height:150,
- Time: &proto3.Timestamp{Seconds:tm.Unix(), Nanos:int32(tm.Nanosecond())},
- NumTxs: 7,
- LastBlockID: &proto3.BlockID{
- Hash: []byte("some serious hashing"),
- PartsHeader:&proto3.PartSetHeader{
- Total: 8,
- Hash: []byte("some more serious hashing"),
- },
- },
- TotalTxs: 100,
- LastCommitHash: []byte("commit hash"),
- DataHash: []byte("data hash"),
- ValidatorsHash:[]byte("validators hash"),
-
- }
- // TODO(ismail): add another test where parts are missing (to see if default values are treated equiv.)
- aminoHeader := Header{
- ChainID: "cosmos",
- Height:150,
- Time: tm,
- NumTxs: 7,
- LastBlockID: BlockID{
- Hash: []byte("some serious hashing"),
- PartsHeader: PartSetHeader{
- Total: 8,
- Hash: []byte("some more serious hashing"),
- },
- },
- TotalTxs: 100,
- LastCommitHash: []byte("commit hash"),
- DataHash: []byte("data hash"),
- ValidatorsHash:[]byte("validators hash"),
- }
- ab, err := cdc.MarshalBinaryBare(aminoHeader)
- assert.NoError(t, err, "unexpected error")
-
- pb, err := proto.Marshal(&pbHeader)
- assert.NoError(t, err, "unexpected error")
- // This works:
- assert.Equal(t, ab, pb, "encoding doesn't match")
- }
|