@@ -60,7 +60,7 @@ func TestBackdoorEvt(t *testing.T) {
60
60
}
61
61
}
62
62
63
- func TestStateTransitions (t * testing.T ) {
63
+ func TestStateTransitionFunctions (t * testing.T ) {
64
64
t .Parallel ()
65
65
require := require .New (t )
66
66
ctrl := gomock .NewController (t )
@@ -231,18 +231,23 @@ func TestStateTransitions(t *testing.T) {
231
231
require .Equal (sAcceptProposalEndorsement , state )
232
232
})
233
233
t .Run ("is-not-locked" , func (t * testing.T ) {
234
- mockCtx .EXPECT ().NewLockEndorsement (gomock .Any ()).Return (nil , nil ).Times (1 )
235
- mockEndorsement := NewMockEndorsement (ctrl )
234
+ mockCtx .EXPECT ().NewLockEndorsement (gomock .Any ()).Return (nil , nil ).Times (2 )
236
235
state , err := cfsm .onReceiveProposalEndorsement (& ConsensusEvent {
237
236
eventType : eReceiveProposalEndorsement ,
238
- data : mockEndorsement ,
237
+ data : NewMockEndorsement (ctrl ),
238
+ })
239
+ require .NoError (err )
240
+ require .Equal (sAcceptProposalEndorsement , state )
241
+ state , err = cfsm .onReceiveProposalEndorsement (& ConsensusEvent {
242
+ eventType : eReceivePreCommitEndorsement ,
243
+ data : NewMockEndorsement (ctrl ),
239
244
})
240
245
require .NoError (err )
241
246
require .Equal (sAcceptProposalEndorsement , state )
242
247
})
243
248
t .Run ("is-locked" , func (t * testing.T ) {
244
- mockCtx .EXPECT ().NewLockEndorsement (gomock .Any ()).Return (NewMockEndorsement (ctrl ), nil ).Times (1 )
245
- mockCtx .EXPECT ().Broadcast (gomock .Any ()).Return ().Times (1 )
249
+ mockCtx .EXPECT ().NewLockEndorsement (gomock .Any ()).Return (NewMockEndorsement (ctrl ), nil ).Times (2 )
250
+ mockCtx .EXPECT ().Broadcast (gomock .Any ()).Return ().Times (2 )
246
251
state , err := cfsm .onReceiveProposalEndorsement (& ConsensusEvent {
247
252
eventType : eReceiveProposalEndorsement ,
248
253
data : NewMockEndorsement (ctrl ),
@@ -251,6 +256,14 @@ func TestStateTransitions(t *testing.T) {
251
256
require .Equal (sAcceptLockEndorsement , state )
252
257
evt := <- cfsm .evtq
253
258
require .Equal (eReceiveLockEndorsement , evt .Type ())
259
+ state , err = cfsm .onReceiveProposalEndorsement (& ConsensusEvent {
260
+ eventType : eReceivePreCommitEndorsement ,
261
+ data : NewMockEndorsement (ctrl ),
262
+ })
263
+ require .NoError (err )
264
+ require .Equal (sAcceptLockEndorsement , state )
265
+ evt = <- cfsm .evtq
266
+ require .Equal (eReceiveLockEndorsement , evt .Type ())
254
267
})
255
268
})
256
269
t .Run ("onStopReceivingProposalEndorsement" , func (t * testing.T ) {
@@ -275,13 +288,19 @@ func TestStateTransitions(t *testing.T) {
275
288
require .Equal (sAcceptLockEndorsement , state )
276
289
})
277
290
t .Run ("not-ready-to-pre-commit" , func (t * testing.T ) {
278
- mockCtx .EXPECT ().NewPreCommitEndorsement (gomock .Any ()).Return (nil , nil ).Times (1 )
291
+ mockCtx .EXPECT ().NewPreCommitEndorsement (gomock .Any ()).Return (nil , nil ).Times (2 )
279
292
state , err := cfsm .onReceiveLockEndorsement (& ConsensusEvent {
280
293
eventType : eReceiveLockEndorsement ,
281
294
data : NewMockEndorsement (ctrl ),
282
295
})
283
296
require .NoError (err )
284
297
require .Equal (sAcceptLockEndorsement , state )
298
+ state , err = cfsm .onReceiveLockEndorsement (& ConsensusEvent {
299
+ eventType : eReceivePreCommitEndorsement ,
300
+ data : NewMockEndorsement (ctrl ),
301
+ })
302
+ require .NoError (err )
303
+ require .Equal (sAcceptLockEndorsement , state )
285
304
})
286
305
t .Run ("ready-to-pre-commit" , func (t * testing.T ) {
287
306
mockCtx .EXPECT ().NewPreCommitEndorsement (gomock .Any ()).Return (NewMockEndorsement (ctrl ), nil ).Times (1 )
@@ -421,3 +440,7 @@ func TestStateTransitions(t *testing.T) {
421
440
})
422
441
})
423
442
}
443
+
444
+ func TestStateTransitionEvents (t * testing.T ) {
445
+ // TODO (zhi): add event tests
446
+ }
0 commit comments