github.com/nspcc-dev/neo-go@v0.105.2-0.20240517133400-6be757af3eba/pkg/core/state/deposit_test.go (about)

     1  package state
     2  
     3  import (
     4  	"math/big"
     5  	"testing"
     6  
     7  	"github.com/nspcc-dev/neo-go/internal/testserdes"
     8  	"github.com/nspcc-dev/neo-go/pkg/vm/stackitem"
     9  	"github.com/stretchr/testify/require"
    10  )
    11  
    12  func TestEncodeDecodeDeposit(t *testing.T) {
    13  	d := &Deposit{Amount: big.NewInt(100500), Till: 888}
    14  	depo := new(Deposit)
    15  	testserdes.ToFromStackItem(t, d, depo)
    16  }
    17  
    18  func TestDepositFromStackItem(t *testing.T) {
    19  	var d Deposit
    20  
    21  	item := stackitem.Make(42)
    22  	require.Error(t, d.FromStackItem(item))
    23  
    24  	item = stackitem.NewStruct(nil)
    25  	require.Error(t, d.FromStackItem(item))
    26  
    27  	item = stackitem.NewStruct([]stackitem.Item{
    28  		stackitem.NewStruct(nil),
    29  		stackitem.NewStruct(nil),
    30  	})
    31  	require.Error(t, d.FromStackItem(item))
    32  
    33  	item = stackitem.NewStruct([]stackitem.Item{
    34  		stackitem.Make(777),
    35  		stackitem.NewStruct(nil),
    36  	})
    37  	require.Error(t, d.FromStackItem(item))
    38  
    39  	item = stackitem.NewStruct([]stackitem.Item{
    40  		stackitem.Make(777),
    41  		stackitem.Make(-1),
    42  	})
    43  	require.Error(t, d.FromStackItem(item))
    44  	item = stackitem.NewStruct([]stackitem.Item{
    45  		stackitem.Make(777),
    46  		stackitem.Make("somenonu64value"),
    47  	})
    48  	require.Error(t, d.FromStackItem(item))
    49  	item = stackitem.NewStruct([]stackitem.Item{
    50  		stackitem.Make(777),
    51  		stackitem.Make(888),
    52  	})
    53  	require.NoError(t, d.FromStackItem(item))
    54  }