neo-go/pkg/core/transaction/witness_scope_test.go
Anna Shaleva 3568ab3d6d core: add json marshaller for Cosigner's scopes
Following C# implementation, we should marshal Scopes as a set of
strings instead of single byte.
2020-06-15 13:48:15 +03:00

53 lines
1.4 KiB
Go

package transaction
import (
"testing"
"github.com/stretchr/testify/require"
)
func TestScopesFromString(t *testing.T) {
s, err := ScopesFromString("")
require.Error(t, err)
_, err = ScopesFromString("123")
require.Error(t, err)
s, err = ScopesFromString("Global")
require.NoError(t, err)
require.Equal(t, Global, s)
s, err = ScopesFromString("CalledByEntry")
require.NoError(t, err)
require.Equal(t, CalledByEntry, s)
s, err = ScopesFromString("CustomContracts")
require.NoError(t, err)
require.Equal(t, CustomContracts, s)
s, err = ScopesFromString("CustomGroups")
require.NoError(t, err)
require.Equal(t, CustomGroups, s)
s, err = ScopesFromString("CalledByEntry,CustomGroups")
require.NoError(t, err)
require.Equal(t, CalledByEntry|CustomGroups, s)
_, err = ScopesFromString("Global,CustomGroups")
require.Error(t, err)
_, err = ScopesFromString("CalledByEntry,Global,CustomGroups")
require.Error(t, err)
s, err = ScopesFromString("CalledByEntry,CustomGroups,CustomGroups")
require.NoError(t, err)
require.Equal(t, CalledByEntry|CustomGroups, s)
s, err = ScopesFromString("CalledByEntry, CustomGroups")
require.NoError(t, err)
require.Equal(t, CalledByEntry|CustomGroups, s)
s, err = ScopesFromString("CalledByEntry, CustomGroups, CustomContracts")
require.NoError(t, err)
require.Equal(t, CalledByEntry|CustomGroups|CustomContracts, s)
}