@@ -69,7 +69,11 @@ func TestReader_Close(t *testing.T) {
6969 readerReadMessageBatchState := newCallState ()
7070
7171 go func () {
72- readerCommitState .err = reader .Commit (context .Background (), & PublicMessage {})
72+ readerCommitState .err = reader .Commit (context .Background (), & PublicMessage {
73+ commitRange : commitRange {
74+ partitionSession : & partitionSession {},
75+ },
76+ })
7377 close (readerCommitState .callCompleted )
7478 }()
7579
@@ -100,27 +104,51 @@ func TestReader_Close(t *testing.T) {
100104}
101105
102106func TestReader_Commit (t * testing.T ) {
103- mc := gomock .NewController (t )
104- defer mc .Finish ()
105-
106- baseReader := NewMockbatchedStreamReader (mc )
107- reader := & Reader {reader : baseReader }
108-
109- expectedRangeOk := commitRange {
110- commitOffsetStart : 1 ,
111- commitOffsetEnd : 10 ,
112- partitionSession : & partitionSession {partitionSessionID : 10 },
113- }
114- baseReader .EXPECT ().Commit (gomock .Any (), expectedRangeOk ).Return (nil )
115- require .NoError (t , reader .Commit (context .Background (), & PublicMessage {commitRange : expectedRangeOk }))
116-
117- expectedRangeErr := commitRange {
118- commitOffsetStart : 15 ,
119- commitOffsetEnd : 20 ,
120- partitionSession : & partitionSession {partitionSessionID : 30 },
121- }
122-
123- testErr := errors .New ("test err" )
124- baseReader .EXPECT ().Commit (gomock .Any (), expectedRangeErr ).Return (testErr )
125- require .ErrorIs (t , reader .Commit (context .Background (), & PublicMessage {commitRange : expectedRangeErr }), testErr )
107+ t .Run ("OK" , func (t * testing.T ) {
108+ mc := gomock .NewController (t )
109+ defer mc .Finish ()
110+
111+ readerID := nextReaderID ()
112+ baseReader := NewMockbatchedStreamReader (mc )
113+ reader := & Reader {
114+ reader : baseReader ,
115+ readerID : readerID ,
116+ }
117+
118+ expectedRangeOk := commitRange {
119+ commitOffsetStart : 1 ,
120+ commitOffsetEnd : 10 ,
121+ partitionSession : & partitionSession {
122+ readerID : readerID ,
123+ partitionSessionID : 10 ,
124+ },
125+ }
126+ baseReader .EXPECT ().Commit (gomock .Any (), expectedRangeOk ).Return (nil )
127+ require .NoError (t , reader .Commit (context .Background (), & PublicMessage {commitRange : expectedRangeOk }))
128+
129+ expectedRangeErr := commitRange {
130+ commitOffsetStart : 15 ,
131+ commitOffsetEnd : 20 ,
132+ partitionSession : & partitionSession {
133+ readerID : readerID ,
134+ partitionSessionID : 30 ,
135+ },
136+ }
137+
138+ testErr := errors .New ("test err" )
139+ baseReader .EXPECT ().Commit (gomock .Any (), expectedRangeErr ).Return (testErr )
140+ require .ErrorIs (t , reader .Commit (context .Background (), & PublicMessage {commitRange : expectedRangeErr }), testErr )
141+ })
142+
143+ t .Run ("CommitFromOtherReader" , func (t * testing.T ) {
144+ ctx := xtest .Context (t )
145+ reader := & Reader {readerID : 1 }
146+ forCommit := commitRange {
147+ commitOffsetStart : 1 ,
148+ commitOffsetEnd : 2 ,
149+ partitionSession : & partitionSession {readerID : 2 },
150+ }
151+ err := reader .Commit (ctx , forCommit )
152+ require .ErrorIs (t , err , errCommitSessionFromOtherReader )
153+ })
126154}
0 commit comments