github.com/MetalBlockchain/metalgo@v1.11.9/vms/platformvm/state/masked_iterator_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 state 5 6 import ( 7 "testing" 8 "time" 9 10 "github.com/stretchr/testify/require" 11 12 "github.com/MetalBlockchain/metalgo/ids" 13 ) 14 15 func TestMaskedIterator(t *testing.T) { 16 require := require.New(t) 17 stakers := []*Staker{ 18 { 19 TxID: ids.GenerateTestID(), 20 NextTime: time.Unix(0, 0), 21 }, 22 { 23 TxID: ids.GenerateTestID(), 24 NextTime: time.Unix(1, 0), 25 }, 26 { 27 TxID: ids.GenerateTestID(), 28 NextTime: time.Unix(2, 0), 29 }, 30 { 31 TxID: ids.GenerateTestID(), 32 NextTime: time.Unix(3, 0), 33 }, 34 } 35 maskedStakers := map[ids.ID]*Staker{ 36 stakers[0].TxID: stakers[0], 37 stakers[2].TxID: stakers[2], 38 stakers[3].TxID: stakers[3], 39 } 40 41 it := NewMaskedIterator( 42 NewSliceIterator(stakers[:3]...), 43 maskedStakers, 44 ) 45 46 require.True(it.Next()) 47 require.Equal(stakers[1], it.Value()) 48 49 require.False(it.Next()) 50 it.Release() 51 require.False(it.Next()) 52 }