55 lines
1.2 KiB
Go
55 lines
1.2 KiB
Go
|
package cmdargs
|
||
|
|
||
|
import (
|
||
|
"testing"
|
||
|
|
||
|
"github.com/nspcc-dev/neo-go/pkg/core/transaction"
|
||
|
"github.com/nspcc-dev/neo-go/pkg/util"
|
||
|
"github.com/stretchr/testify/require"
|
||
|
)
|
||
|
|
||
|
func TestParseCosigner(t *testing.T) {
|
||
|
acc := util.Uint160{1, 3, 5, 7}
|
||
|
testCases := map[string]transaction.Signer{
|
||
|
acc.StringLE(): {
|
||
|
Account: acc,
|
||
|
Scopes: transaction.CalledByEntry,
|
||
|
},
|
||
|
"0x" + acc.StringLE(): {
|
||
|
Account: acc,
|
||
|
Scopes: transaction.CalledByEntry,
|
||
|
},
|
||
|
acc.StringLE() + ":Global": {
|
||
|
Account: acc,
|
||
|
Scopes: transaction.Global,
|
||
|
},
|
||
|
acc.StringLE() + ":CalledByEntry": {
|
||
|
Account: acc,
|
||
|
Scopes: transaction.CalledByEntry,
|
||
|
},
|
||
|
acc.StringLE() + ":None": {
|
||
|
Account: acc,
|
||
|
Scopes: transaction.None,
|
||
|
},
|
||
|
acc.StringLE() + ":CalledByEntry,CustomContracts": {
|
||
|
Account: acc,
|
||
|
Scopes: transaction.CalledByEntry | transaction.CustomContracts,
|
||
|
},
|
||
|
}
|
||
|
for s, expected := range testCases {
|
||
|
actual, err := parseCosigner(s)
|
||
|
require.NoError(t, err)
|
||
|
require.Equal(t, expected, actual)
|
||
|
}
|
||
|
errorCases := []string{
|
||
|
acc.StringLE() + "0",
|
||
|
acc.StringLE() + ":Unknown",
|
||
|
acc.StringLE() + ":Global,CustomContracts",
|
||
|
acc.StringLE() + ":Global,None",
|
||
|
}
|
||
|
for _, s := range errorCases {
|
||
|
_, err := parseCosigner(s)
|
||
|
require.Error(t, err)
|
||
|
}
|
||
|
}
|