github.com/MetalBlockchain/metalgo@v1.11.9/snow/engine/common/tracker/accepted_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 tracker
     5  
     6  import (
     7  	"testing"
     8  
     9  	"github.com/stretchr/testify/require"
    10  
    11  	"github.com/MetalBlockchain/metalgo/ids"
    12  )
    13  
    14  func TestAccepted(t *testing.T) {
    15  	require := require.New(t)
    16  
    17  	nodeID := ids.GenerateTestNodeID()
    18  	blkID0 := ids.GenerateTestID()
    19  	blkID1 := ids.GenerateTestID()
    20  
    21  	a := NewAccepted()
    22  
    23  	_, ok := a.LastAccepted(nodeID)
    24  	require.False(ok)
    25  
    26  	a.SetLastAccepted(nodeID, blkID0)
    27  	_, ok = a.LastAccepted(nodeID)
    28  	require.False(ok)
    29  
    30  	a.OnValidatorAdded(nodeID, nil, ids.GenerateTestID(), 1)
    31  
    32  	_, ok = a.LastAccepted(nodeID)
    33  	require.False(ok)
    34  
    35  	a.SetLastAccepted(nodeID, blkID0)
    36  	blkID, ok := a.LastAccepted(nodeID)
    37  	require.True(ok)
    38  	require.Equal(blkID0, blkID)
    39  
    40  	a.SetLastAccepted(nodeID, blkID1)
    41  	blkID, ok = a.LastAccepted(nodeID)
    42  	require.True(ok)
    43  	require.Equal(blkID1, blkID)
    44  
    45  	a.OnValidatorRemoved(nodeID, 1)
    46  
    47  	_, ok = a.LastAccepted(nodeID)
    48  	require.False(ok)
    49  }