@@ -7,8 +7,10 @@ import (
77 "testing"
88
99 "github.com/libp2p/go-libp2p/core/peer"
10+ "github.com/libp2p/go-libp2p/core/protocol"
1011 "github.com/sprintertech/sprinter-signing/comm/p2p"
1112
13+ mock_host "github.com/sprintertech/sprinter-signing/comm/p2p/mock/host"
1214 mock_network "github.com/sprintertech/sprinter-signing/comm/p2p/mock/stream"
1315 "github.com/stretchr/testify/suite"
1416 "go.uber.org/mock/gomock"
@@ -17,6 +19,7 @@ import (
1719type StreamManagerTestSuite struct {
1820 suite.Suite
1921 mockController * gomock.Controller
22+ mockHost * mock_host.MockHost
2023}
2124
2225func TestRunStreamManagerTestSuite (t * testing.T ) {
@@ -25,14 +28,21 @@ func TestRunStreamManagerTestSuite(t *testing.T) {
2528
2629func (s * StreamManagerTestSuite ) SetupTest () {
2730 s .mockController = gomock .NewController (s .T ())
31+ s .mockHost = mock_host .NewMockHost (s .mockController )
2832}
2933
3034func (s * StreamManagerTestSuite ) Test_ManagingSubscriptions_Success () {
31- streamManager := p2p .NewStreamManager ()
35+ streamManager := p2p .NewStreamManager (s .mockHost )
36+
37+ mockConn := mock_network .NewMockConn (s .mockController )
38+ mockConn .EXPECT ().Close ().Return (nil ).Times (2 )
3239
3340 stream1 := mock_network .NewMockStream (s .mockController )
41+ stream1 .EXPECT ().Conn ().Return (mockConn ).AnyTimes ()
3442 stream2 := mock_network .NewMockStream (s .mockController )
43+ stream2 .EXPECT ().Conn ().Return (mockConn ).AnyTimes ()
3544 stream3 := mock_network .NewMockStream (s .mockController )
45+ stream3 .EXPECT ().Conn ().Return (mockConn ).AnyTimes ()
3646
3747 peerID1 , _ := peer .Decode ("QmcW3oMdSqoEcjbyd51auqC23vhKX6BqfcZcY2HJ3sKAZR" )
3848 peerID2 , _ := peer .Decode ("QmZHPnN3CKiTAp8VaJqszbf8m7v4mPh15M421KpVdYHF54" )
@@ -49,36 +59,40 @@ func (s *StreamManagerTestSuite) Test_ManagingSubscriptions_Success() {
4959}
5060
5161func (s * StreamManagerTestSuite ) Test_FetchStream_NoStream () {
52- streamManager := p2p .NewStreamManager ()
62+ streamManager := p2p .NewStreamManager (s .mockHost )
63+
64+ expectedStream := mock_network .NewMockStream (s .mockController )
65+ s .mockHost .EXPECT ().NewStream (gomock .Any (), gomock .Any (), gomock .Any ()).Return (expectedStream , nil )
5366
54- _ , err := streamManager .Stream ("1" , peer .ID ("" ))
67+ stream , err := streamManager .Stream ("1" , peer . ID ( "" ), protocol .ID ("" ))
5568
56- s .NotNil (err )
69+ s .Nil (err )
70+ s .Equal (stream , expectedStream )
5771}
5872
5973func (s * StreamManagerTestSuite ) Test_FetchStream_ValidStream () {
60- streamManager := p2p .NewStreamManager ()
74+ streamManager := p2p .NewStreamManager (s . mockHost )
6175
6276 stream := mock_network .NewMockStream (s .mockController )
6377 peerID1 , _ := peer .Decode ("QmcW3oMdSqoEcjbyd51auqC23vhKX6BqfcZcY2HJ3sKAZR" )
6478 streamManager .AddStream ("1" , peerID1 , stream )
6579
66- expectedStream , err := streamManager .Stream ("1" , peerID1 )
80+ expectedStream , err := streamManager .Stream ("1" , peerID1 , protocol . ID ( "" ) )
6781
6882 s .Nil (err )
6983 s .Equal (stream , expectedStream )
7084}
7185
7286func (s * StreamManagerTestSuite ) Test_AddStream_IgnoresExistingPeer () {
73- streamManager := p2p .NewStreamManager ()
87+ streamManager := p2p .NewStreamManager (s . mockHost )
7488
7589 stream1 := mock_network .NewMockStream (s .mockController )
7690 stream2 := mock_network .NewMockStream (s .mockController )
7791 peerID1 , _ := peer .Decode ("QmcW3oMdSqoEcjbyd51auqC23vhKX6BqfcZcY2HJ3sKAZR" )
7892 streamManager .AddStream ("1" , peerID1 , stream1 )
7993 streamManager .AddStream ("1" , peerID1 , stream2 )
8094
81- expectedStream , err := streamManager .Stream ("1" , peerID1 )
95+ expectedStream , err := streamManager .Stream ("1" , peerID1 , protocol . ID ( "" ) )
8296
8397 s .Nil (err )
8498 s .Equal (stream1 , expectedStream )
0 commit comments