github.com/vipernet-xyz/tm@v0.34.24/rpc/core/net_test.go (about)

     1  package core
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/stretchr/testify/assert"
     7  	"github.com/stretchr/testify/require"
     8  
     9  	cfg "github.com/vipernet-xyz/tm/config"
    10  	"github.com/vipernet-xyz/tm/libs/log"
    11  	"github.com/vipernet-xyz/tm/p2p"
    12  	rpctypes "github.com/vipernet-xyz/tm/rpc/jsonrpc/types"
    13  )
    14  
    15  func TestUnsafeDialSeeds(t *testing.T) {
    16  	sw := p2p.MakeSwitch(cfg.DefaultP2PConfig(), 1, "testing", "123.123.123",
    17  		func(n int, sw *p2p.Switch) *p2p.Switch { return sw })
    18  	err := sw.Start()
    19  	require.NoError(t, err)
    20  	t.Cleanup(func() {
    21  		if err := sw.Stop(); err != nil {
    22  			t.Error(err)
    23  		}
    24  	})
    25  
    26  	env.Logger = log.TestingLogger()
    27  	env.P2PPeers = sw
    28  
    29  	testCases := []struct {
    30  		seeds []string
    31  		isErr bool
    32  	}{
    33  		{[]string{}, true},
    34  		{[]string{"d51fb70907db1c6c2d5237e78379b25cf1a37ab4@127.0.0.1:41198"}, false},
    35  		{[]string{"127.0.0.1:41198"}, true},
    36  	}
    37  
    38  	for _, tc := range testCases {
    39  		res, err := UnsafeDialSeeds(&rpctypes.Context{}, tc.seeds)
    40  		if tc.isErr {
    41  			assert.Error(t, err)
    42  		} else {
    43  			assert.NoError(t, err)
    44  			assert.NotNil(t, res)
    45  		}
    46  	}
    47  }
    48  
    49  func TestUnsafeDialPeers(t *testing.T) {
    50  	sw := p2p.MakeSwitch(cfg.DefaultP2PConfig(), 1, "testing", "123.123.123",
    51  		func(n int, sw *p2p.Switch) *p2p.Switch { return sw })
    52  	sw.SetAddrBook(&p2p.AddrBookMock{
    53  		Addrs:        make(map[string]struct{}),
    54  		OurAddrs:     make(map[string]struct{}),
    55  		PrivateAddrs: make(map[string]struct{}),
    56  	})
    57  	err := sw.Start()
    58  	require.NoError(t, err)
    59  	t.Cleanup(func() {
    60  		if err := sw.Stop(); err != nil {
    61  			t.Error(err)
    62  		}
    63  	})
    64  
    65  	env.Logger = log.TestingLogger()
    66  	env.P2PPeers = sw
    67  
    68  	testCases := []struct {
    69  		peers                               []string
    70  		persistence, unconditional, private bool
    71  		isErr                               bool
    72  	}{
    73  		{[]string{}, false, false, false, true},
    74  		{[]string{"d51fb70907db1c6c2d5237e78379b25cf1a37ab4@127.0.0.1:41198"}, true, true, true, false},
    75  		{[]string{"127.0.0.1:41198"}, true, true, false, true},
    76  	}
    77  
    78  	for _, tc := range testCases {
    79  		res, err := UnsafeDialPeers(&rpctypes.Context{}, tc.peers, tc.persistence, tc.unconditional, tc.private)
    80  		if tc.isErr {
    81  			assert.Error(t, err)
    82  		} else {
    83  			assert.NoError(t, err)
    84  			assert.NotNil(t, res)
    85  		}
    86  	}
    87  }