11package constructors
22
33import (
4+ "github.com/foxcpp/go-mockdns"
45 libp2pHost "github.com/libp2p/go-libp2p/core/host"
56 mocknet "github.com/libp2p/go-libp2p/p2p/net/mock"
67 "github.com/pokt-network/pocket/internal/testutil/bus"
@@ -25,85 +26,100 @@ type serviceURLStr = string
2526func NewBusesMocknetAndP2PModules (
2627 t gocuke.TestingT ,
2728 count int ,
29+ dnsSrv * mockdns.Server ,
2830 genesisState * genesis.GenesisState ,
2931 busEventHandlerFactory testutil.BusEventHandlerFactory ,
3032) (
3133 buses map [serviceURLStr ]* mock_modules.MockBus ,
3234 libp2pNetworkMock mocknet.Mocknet ,
3335 p2pModules map [serviceURLStr ]modules.P2PModule ,
3436) {
35- // TODO_THIS_COMMIT: refactor
36- dnsSrv := testutil .MinimalDNSMock (t )
37-
38- libp2pNetworkMock = mocknet .New ()
39- // destroy mocknet on test cleanup
40- t .Cleanup (func () {
41- err := libp2pNetworkMock .Close ()
42- require .NoError (t , err )
43- })
44-
45- buses = make (map [serviceURLStr ]* mock_modules.MockBus )
46- p2pModules = make (map [serviceURLStr ]modules.P2PModule )
47- // CONSIDERATION: using an iterator/generator would prevent unintentional
48- // ID collisions
49- privKeys := testutil .LoadLocalnetPrivateKeys (t , count )
50- // CONSIDERATION: using an iterator/generator would prevent unintentional
51- // serviceURL collisions
52- serviceURLs := p2p_testutil .SequentialServiceURLs (t , count )
53- for i , serviceURL := range serviceURLs {
54- if len (privKeys ) <= i {
55- t .Logf ("WARNING: not enough private keys for %d service URLs" , len (serviceURLs ))
56- break
57- }
58-
59- privKey := privKeys [i ]
60- busMock := bus_testutil .NewBus (t , privKey , serviceURL , genesisState , busEventHandlerFactory )
61- buses [serviceURL ] = busMock
62-
63- // TODO_THIS_COMMIT: refactor
64- _ = consensus_testutil .BaseConsensusMock (t , busMock )
65- _ = persistence_testutil .BasePersistenceMock (t , busMock , genesisState )
66-
67- // -- option 1
68- _ = telemetry_testutil .BaseTelemetryMock (t , busMock )
69-
70- // -- option 2
71- //_ = telemetry_testutil.WithTimeSeriesAgent(
72- // t, telemetry_testutil.MinimalTelemetryMock(t, busMock),
73- //)
74-
75- // MUST register DNS before instantiating P2PModule
76- testutil .AddServiceURLZone (t , dnsSrv , serviceURL )
77-
78- host := p2p_testutil .NewMocknetHost (t , libp2pNetworkMock , privKey )
79- p2pModules [serviceURL ] = NewP2PModuleWithHost (t , busMock , host )
80- }
37+ libp2pNetworkMock = p2p_testutil .NewLibp2pNetworkMock (t )
38+ serviceURLKeyMap := testutil .SequentialServiceURLPrivKeyMap (t , count )
39+
40+ buses , p2pModules = NewBusesAndP2PModules (
41+ t , busEventHandlerFactory ,
42+ dnsSrv ,
43+ genesisState ,
44+ libp2pNetworkMock ,
45+ serviceURLKeyMap ,
46+ )
8147 err := libp2pNetworkMock .LinkAll ()
8248 require .NoError (t , err )
8349
8450 return buses , libp2pNetworkMock , p2pModules
8551}
8652
87- // TODO_THIS_TEST: need this?
88- func NewP2PModules (
53+ // TODO_THIS_COMMIT: rename / move, if possible
54+ func NewP2PModule (
8955 t gocuke.TestingT ,
90- privKeys []cryptoPocket.PrivateKey ,
56+ // TODO_THIS_COMMIT: get these from the bus instead
57+ serviceURL string ,
58+ privKey cryptoPocket.PrivateKey ,
59+ // --
9160 busMock * mock_modules.MockBus ,
61+ genesisState * genesis.GenesisState ,
62+ dnsSrv * mockdns.Server ,
63+ libp2pNetworkMock mocknet.Mocknet ,
64+ // TODO_THIS_COMMIT: consider *p2p.P2PModule instead
65+ ) modules.P2PModule {
66+ _ = consensus_testutil .BaseConsensusMock (t , busMock )
67+ _ = persistence_testutil .BasePersistenceMock (t , busMock , genesisState )
68+
69+ // -- option 1
70+ _ = telemetry_testutil .BaseTelemetryMock (t , busMock )
71+
72+ // -- option 2
73+ //_ = telemetry_testutil.WithTimeSeriesAgent(
74+ // t, telemetry_testutil.MinimalTelemetryMock(t, busMock),
75+ //)
76+
77+ // MUST register DNS before instantiating P2PModule
78+ testutil .AddServiceURLZone (t , dnsSrv , serviceURL )
79+
80+ host := testutil .NewMocknetHost (t , libp2pNetworkMock , privKey )
81+ return NewP2PModuleWithHost (t , busMock , host )
82+ }
83+
84+ // TODO_THIS_TEST: need this?
85+ func NewBusesAndP2PModules (
86+ t gocuke.TestingT ,
87+ busEventHandlerFactory testutil.BusEventHandlerFactory ,
88+ dnsSrv * mockdns.Server ,
89+ genesisState * genesis.GenesisState ,
9290 libp2pNetworkMock mocknet.Mocknet ,
91+ serviceURLKeyMap map [serviceURLStr ]cryptoPocket.PrivateKey ,
9392) (
93+ busMocks map [serviceURLStr ]* mock_modules.MockBus ,
94+ // TODO_THIS_COMMIT: consider *p2p.P2PModule instead
9495 p2pModules map [serviceURLStr ]modules.P2PModule ,
9596) {
96- // CONSIDERATION: using an iterator/generator would prevent unintentional
97- // serviceURL collisions
98- serviceURLs := p2p_testutil .SequentialServiceURLs (t , len (privKeys ))
99- _ = p2p_testutil .SetupMockNetPeers (t , libp2pNetworkMock , privKeys , serviceURLs )
100-
101- for i , serviceURL := range serviceURLs {
102- host := libp2pNetworkMock .Hosts ()[i ]
103- // TECHDEBT: refactor
104- p2pModules [serviceURL ] = NewP2PModuleWithHost (t , busMock , host )
97+ busMocks = make (map [serviceURLStr ]* mock_modules.MockBus )
98+ p2pModules = make (map [serviceURLStr ]modules.P2PModule )
99+
100+ for serviceURL , privKey := range serviceURLKeyMap {
101+ busMock := bus_testutil .NewBus (
102+ t , privKey ,
103+ serviceURL ,
104+ genesisState ,
105+ busEventHandlerFactory ,
106+ )
107+ busMocks [serviceURL ] = busMock
108+
109+ p2pModules [serviceURL ] = NewP2PModule (
110+ t , serviceURL ,
111+ // TODO_THIS_COMMIT: send via busMock instead
112+ privKey ,
113+ busMock ,
114+ // TODO_THIS_COMMIT: send via busMock instead
115+ genesisState ,
116+ // TODO_THIS_COMMIT: send via busMock instead (?)
117+ dnsSrv ,
118+ // TODO_THIS_COMMIT: send via busMock instead (?)
119+ libp2pNetworkMock ,
120+ )
105121 }
106- return p2pModules
122+ return busMocks , p2pModules
107123}
108124
109125// TODO_THIS_TEST: need this?
@@ -122,6 +138,7 @@ func NewBusesAndP2PModuleWithHost(
122138 return busMock , NewP2PModuleWithHost (t , busMock , host )
123139}
124140
141+ // TODO_THIS_COMMIT: rename; consider returning *p2p.P2PModule instead
125142func NewP2PModuleWithHost (
126143 t gocuke.TestingT ,
127144 busMock * mock_modules.MockBus ,
0 commit comments