github.com/MetalBlockchain/metalgo@v1.11.9/ids/galiasreader/alias_reader_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 galiasreader
     5  
     6  import (
     7  	"testing"
     8  
     9  	"github.com/stretchr/testify/require"
    10  
    11  	"github.com/MetalBlockchain/metalgo/ids"
    12  	"github.com/MetalBlockchain/metalgo/vms/rpcchainvm/grpcutils"
    13  
    14  	aliasreaderpb "github.com/MetalBlockchain/metalgo/proto/pb/aliasreader"
    15  )
    16  
    17  func TestInterface(t *testing.T) {
    18  	require := require.New(t)
    19  
    20  	for _, test := range ids.AliasTests {
    21  		listener, err := grpcutils.NewListener()
    22  		require.NoError(err)
    23  		serverCloser := grpcutils.ServerCloser{}
    24  		w := ids.NewAliaser()
    25  
    26  		server := grpcutils.NewServer()
    27  		aliasreaderpb.RegisterAliasReaderServer(server, NewServer(w))
    28  		serverCloser.Add(server)
    29  
    30  		go grpcutils.Serve(listener, server)
    31  
    32  		conn, err := grpcutils.Dial(listener.Addr().String())
    33  		require.NoError(err)
    34  
    35  		r := NewClient(aliasreaderpb.NewAliasReaderClient(conn))
    36  		test(require, r, w)
    37  
    38  		serverCloser.Stop()
    39  		_ = conn.Close()
    40  		_ = listener.Close()
    41  	}
    42  }