github.com/nspcc-dev/neo-go@v0.105.2-0.20240517133400-6be757af3eba/pkg/rpcclient/nep11/nondivisible_test.go (about)

     1  package nep11
     2  
     3  import (
     4  	"errors"
     5  	"testing"
     6  
     7  	"github.com/nspcc-dev/neo-go/pkg/neorpc/result"
     8  	"github.com/nspcc-dev/neo-go/pkg/util"
     9  	"github.com/nspcc-dev/neo-go/pkg/vm/stackitem"
    10  	"github.com/stretchr/testify/require"
    11  )
    12  
    13  func TestNDOwnerOf(t *testing.T) {
    14  	ta := new(testAct)
    15  	tr := NewNonDivisibleReader(ta, util.Uint160{1, 2, 3})
    16  	tt := NewNonDivisible(ta, util.Uint160{1, 2, 3})
    17  
    18  	for name, fun := range map[string]func([]byte) (util.Uint160, error){
    19  		"Reader": tr.OwnerOf,
    20  		"Full":   tt.OwnerOf,
    21  	} {
    22  		t.Run(name, func(t *testing.T) {
    23  			ta.err = errors.New("")
    24  			_, err := fun([]byte{3, 2, 1})
    25  			require.Error(t, err)
    26  
    27  			ta.err = nil
    28  			ta.res = &result.Invoke{
    29  				State: "HALT",
    30  				Stack: []stackitem.Item{
    31  					stackitem.Make(100500),
    32  				},
    33  			}
    34  			_, err = fun([]byte{3, 2, 1})
    35  			require.Error(t, err)
    36  
    37  			own := util.Uint160{1, 2, 3}
    38  			ta.res = &result.Invoke{
    39  				State: "HALT",
    40  				Stack: []stackitem.Item{
    41  					stackitem.Make(own.BytesBE()),
    42  				},
    43  			}
    44  			owl, err := fun([]byte{3, 2, 1})
    45  			require.NoError(t, err)
    46  			require.Equal(t, own, owl)
    47  		})
    48  	}
    49  }