github.com/MetalBlockchain/metalgo@v1.11.9/node/overridden_manager_test.go (about) 1 // Copyright (C) 2019-2024, Ava Labs, Inc. All rights reserved. 2 // See the file LICENSE for licensing terms. 3 4 package node 5 6 import ( 7 "math" 8 "testing" 9 10 "github.com/stretchr/testify/require" 11 12 "github.com/MetalBlockchain/metalgo/ids" 13 "github.com/MetalBlockchain/metalgo/snow/validators" 14 ) 15 16 func TestOverriddenManager(t *testing.T) { 17 require := require.New(t) 18 19 nodeID0 := ids.GenerateTestNodeID() 20 nodeID1 := ids.GenerateTestNodeID() 21 subnetID0 := ids.GenerateTestID() 22 subnetID1 := ids.GenerateTestID() 23 24 m := validators.NewManager() 25 require.NoError(m.AddStaker(subnetID0, nodeID0, nil, ids.Empty, 1)) 26 require.NoError(m.AddStaker(subnetID1, nodeID1, nil, ids.Empty, 1)) 27 28 om := newOverriddenManager(subnetID0, m) 29 _, ok := om.GetValidator(subnetID0, nodeID0) 30 require.True(ok) 31 _, ok = om.GetValidator(subnetID0, nodeID1) 32 require.False(ok) 33 _, ok = om.GetValidator(subnetID1, nodeID0) 34 require.True(ok) 35 _, ok = om.GetValidator(subnetID1, nodeID1) 36 require.False(ok) 37 38 require.NoError(om.RemoveWeight(subnetID1, nodeID0, 1)) 39 _, ok = om.GetValidator(subnetID0, nodeID0) 40 require.False(ok) 41 _, ok = om.GetValidator(subnetID0, nodeID1) 42 require.False(ok) 43 _, ok = om.GetValidator(subnetID1, nodeID0) 44 require.False(ok) 45 _, ok = om.GetValidator(subnetID1, nodeID1) 46 require.False(ok) 47 } 48 49 func TestOverriddenString(t *testing.T) { 50 require := require.New(t) 51 52 nodeID0 := ids.EmptyNodeID 53 nodeID1, err := ids.NodeIDFromString("NodeID-QLbz7JHiBTspS962RLKV8GndWFwdYhk6V") 54 require.NoError(err) 55 56 subnetID0, err := ids.FromString("TtF4d2QWbk5vzQGTEPrN48x6vwgAoAmKQ9cbp79inpQmcRKES") 57 require.NoError(err) 58 subnetID1, err := ids.FromString("2mcwQKiD8VEspmMJpL1dc7okQQ5dDVAWeCBZ7FWBFAbxpv3t7w") 59 require.NoError(err) 60 61 m := validators.NewManager() 62 require.NoError(m.AddStaker(subnetID0, nodeID0, nil, ids.Empty, 1)) 63 require.NoError(m.AddStaker(subnetID0, nodeID1, nil, ids.Empty, math.MaxInt64-1)) 64 require.NoError(m.AddStaker(subnetID1, nodeID1, nil, ids.Empty, 1)) 65 66 om := newOverriddenManager(subnetID0, m) 67 expected := `Overridden Validator Manager (SubnetID = TtF4d2QWbk5vzQGTEPrN48x6vwgAoAmKQ9cbp79inpQmcRKES): Validator Manager: (Size = 2) 68 Subnet[TtF4d2QWbk5vzQGTEPrN48x6vwgAoAmKQ9cbp79inpQmcRKES]: Validator Set: (Size = 2, Weight = 9223372036854775807) 69 Validator[0]: NodeID-111111111111111111116DBWJs, 1 70 Validator[1]: NodeID-QLbz7JHiBTspS962RLKV8GndWFwdYhk6V, 9223372036854775806 71 Subnet[2mcwQKiD8VEspmMJpL1dc7okQQ5dDVAWeCBZ7FWBFAbxpv3t7w]: Validator Set: (Size = 1, Weight = 1) 72 Validator[0]: NodeID-QLbz7JHiBTspS962RLKV8GndWFwdYhk6V, 1` 73 result := om.String() 74 require.Equal(expected, result) 75 }