wormhole/node/pkg/p2p/registry_test.go

63 lines
1.7 KiB
Go

package p2p
import (
"crypto/ed25519"
"crypto/rand"
"testing"
gossipv1 "github.com/certusone/wormhole/node/pkg/proto/gossip/v1"
"github.com/certusone/wormhole/node/pkg/vaa"
"github.com/mr-tron/base58"
"github.com/stretchr/testify/assert"
)
func TestNewRegistry(t *testing.T) {
registry := NewRegistry()
assert.Equal(t, "", registry.guardianAddress)
assert.Equal(t, 0, len(registry.errorCounters))
assert.Equal(t, 0, len(registry.networkStats))
}
func TestSetGuardianAddress(t *testing.T) {
registry := NewRegistry()
registry.SetGuardianAddress("foo")
assert.Equal(t, "foo", registry.guardianAddress)
}
func TestSetNetworkStats(t *testing.T) {
registry := NewRegistry()
pub, _, _ := ed25519.GenerateKey(rand.Reader)
contractAddr := base58.Encode(pub[:])
heartBeat := &gossipv1.Heartbeat_Network{
ContractAddress: contractAddr,
}
expect := make(map[vaa.ChainID]*gossipv1.Heartbeat_Network)
expect[vaa.ChainIDEthereum] = heartBeat
registry.SetNetworkStats(vaa.ChainIDEthereum, heartBeat)
assert.Equal(t, expect, registry.networkStats)
}
func TestAddErrorCount(t *testing.T) {
registry := NewRegistry()
expect := make(map[vaa.ChainID]uint64)
expect[vaa.ChainIDEthereum] = 1
registry.AddErrorCount(vaa.ChainIDEthereum, uint64(1))
assert.Equal(t, expect, registry.errorCounters)
}
func TestGetErrorCount(t *testing.T) {
registry := NewRegistry()
assert.Equal(t, uint64(0), registry.GetErrorCount(vaa.ChainIDEthereum))
assert.Equal(t, uint64(0), registry.GetErrorCount(vaa.ChainIDSolana))
registry.AddErrorCount(vaa.ChainIDEthereum, uint64(1))
assert.Equal(t, uint64(1), registry.GetErrorCount(vaa.ChainIDEthereum))
assert.Equal(t, uint64(0), registry.GetErrorCount(vaa.ChainIDSolana))
}