github.com/nspcc-dev/neo-go@v0.105.2-0.20240517133400-6be757af3eba/pkg/core/interop/context_test.go (about) 1 package interop 2 3 import ( 4 "testing" 5 6 "github.com/nspcc-dev/neo-go/pkg/config" 7 "github.com/nspcc-dev/neo-go/pkg/core/block" 8 "github.com/stretchr/testify/require" 9 ) 10 11 func TestIsHardforkEnabled(t *testing.T) { 12 t.Run("not configured", func(t *testing.T) { 13 ic := &Context{Hardforks: map[string]uint32{config.HFAspidochelone.String(): 0, config.HFBasilisk.String(): 0}, Block: &block.Block{Header: block.Header{Index: 10}}} 14 require.True(t, ic.IsHardforkEnabled(config.HFAspidochelone)) 15 require.True(t, ic.IsHardforkEnabled(config.HFBasilisk)) 16 }) 17 t.Run("new disabled", func(t *testing.T) { 18 ic := &Context{Hardforks: map[string]uint32{config.HFAspidochelone.String(): 5}, Block: &block.Block{Header: block.Header{Index: 10}}} 19 require.True(t, ic.IsHardforkEnabled(config.HFAspidochelone)) 20 require.False(t, ic.IsHardforkEnabled(config.HFBasilisk)) 21 }) 22 t.Run("old enabled", func(t *testing.T) { 23 ic := &Context{Hardforks: map[string]uint32{config.HFAspidochelone.String(): 0, config.HFBasilisk.String(): 10}, Block: &block.Block{Header: block.Header{Index: 5}}} 24 require.True(t, ic.IsHardforkEnabled(config.HFAspidochelone)) 25 require.False(t, ic.IsHardforkEnabled(config.HFBasilisk)) 26 }) 27 t.Run("not yet enabled", func(t *testing.T) { 28 ic := &Context{Hardforks: map[string]uint32{config.HFAspidochelone.String(): 10}, Block: &block.Block{Header: block.Header{Index: 5}}} 29 require.False(t, ic.IsHardforkEnabled(config.HFAspidochelone)) 30 }) 31 t.Run("already enabled", func(t *testing.T) { 32 ic := &Context{Hardforks: map[string]uint32{config.HFAspidochelone.String(): 10}, Block: &block.Block{Header: block.Header{Index: 15}}} 33 require.True(t, ic.IsHardforkEnabled(config.HFAspidochelone)) 34 }) 35 }