@@ -381,7 +381,7 @@ class StateMachineEventTests: _TestCase
381381
382382 func testAddAnyHandler( )
383383 {
384- var invokeCount = 0
384+ var invokeCounts = [ 0 , 0 , 0 , 0 , 0 , 0 ]
385385
386386 let machine = StateMachine < MyState , MyEvent > ( state: . State0) { machine in
387387
@@ -394,28 +394,54 @@ class StateMachineEventTests: _TestCase
394394 // add 2 => 3 (state-based)
395395 machine. addRoute ( . State2 => . State3)
396396
397+ //
397398 // addAnyHandler (for both event-based & state-based)
398- machine. addAnyHandler { context in
399- invokeCount++
400- return
399+ //
400+
401+ machine. addAnyHandler ( . State0 => . State1) { context in
402+ invokeCounts [ 0 ] ++
403+ }
404+
405+ machine. addAnyHandler ( . State1 => . State2) { context in
406+ invokeCounts [ 1 ] ++
407+ }
408+
409+ machine. addAnyHandler ( . State2 => . State3) { context in
410+ invokeCounts [ 2 ] ++
411+ }
412+
413+ machine. addAnyHandler ( . Any => . State3) { context in
414+ invokeCounts [ 3 ] ++
415+ }
416+
417+ machine. addAnyHandler ( . State0 => . Any) { context in
418+ invokeCounts [ 4 ] ++
419+ }
420+
421+ machine. addAnyHandler ( . Any => . Any) { context in
422+ invokeCounts [ 5 ] ++
401423 }
402424
403425 }
404426
427+ // initial
428+ XCTAssertEqual ( machine. state, MyState . State0)
429+ XCTAssertEqual ( invokeCounts, [ 0 , 0 , 0 , 0 , 0 , 0 ] )
430+
405431 // tryEvent
406432 machine <-! . Event0
407433 XCTAssertEqual ( machine. state, MyState . State1)
408- XCTAssertEqual ( invokeCount , 1 )
434+ XCTAssertEqual ( invokeCounts , [ 1 , 0 , 0 , 0 , 1 , 1 ] )
409435
410436 // tryEvent
411437 machine <-! . Event0
412438 XCTAssertEqual ( machine. state, MyState . State2)
413- XCTAssertEqual ( invokeCount , 2 )
439+ XCTAssertEqual ( invokeCounts , [ 1 , 1 , 0 , 0 , 1 , 2 ] )
414440
415441 // tryState
416442 machine <- . State3
417443 XCTAssertEqual ( machine. state, MyState . State3)
418- XCTAssertEqual ( invokeCount , 3 )
444+ XCTAssertEqual ( invokeCounts , [ 1 , 1 , 1 , 1 , 1 , 3 ] )
419445
420446 }
421447
0 commit comments