forked from TrueCloudLab/neoneo-go
44 lines
1,009 B
Go
44 lines
1,009 B
Go
package state
|
|
|
|
import (
|
|
"math/rand"
|
|
"testing"
|
|
|
|
"github.com/nspcc-dev/neo-go/pkg/io"
|
|
"github.com/nspcc-dev/neo-go/pkg/util"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestNEP5Tracker_EncodeBinary(t *testing.T) {
|
|
expected := &NEP5Tracker{
|
|
Balance: int64(rand.Uint64()),
|
|
LastUpdatedBlock: rand.Uint32(),
|
|
}
|
|
|
|
testEncodeDecode(t, expected, new(NEP5Tracker))
|
|
}
|
|
|
|
func TestNEP5Transfer_DecodeBinary(t *testing.T) {
|
|
expected := &NEP5Transfer{
|
|
Asset: util.Uint160{1, 2, 3},
|
|
From: util.Uint160{5, 6, 7},
|
|
To: util.Uint160{8, 9, 10},
|
|
Amount: 42,
|
|
Block: 12345,
|
|
Timestamp: 54321,
|
|
Tx: util.Uint256{8, 5, 3},
|
|
}
|
|
|
|
testEncodeDecode(t, expected, new(NEP5Transfer))
|
|
}
|
|
|
|
func testEncodeDecode(t *testing.T, expected, actual io.Serializable) {
|
|
w := io.NewBufBinWriter()
|
|
expected.EncodeBinary(w.BinWriter)
|
|
require.NoError(t, w.Err)
|
|
|
|
r := io.NewBinReaderFromBuf(w.Bytes())
|
|
actual.DecodeBinary(r)
|
|
require.NoError(t, r.Err)
|
|
require.Equal(t, expected, actual)
|
|
}
|