Skip to content

Commit ca3a94b

Browse files
committed
Merge pull request #19 from ReactKit/fix/hasRoute
Fix hasRoute() bug when there are routes for both AnyEvent & SomeEvent.
2 parents 653f1a1 + 389aff0 commit ca3a94b

File tree

3 files changed

+31
-1
lines changed

3 files changed

+31
-1
lines changed

SwiftState.xcodeproj/project.pbxproj

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@
2828
1FA62038199660CA00460108 /* StateTransitionTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FA6202F199660CA00460108 /* StateTransitionTests.swift */; };
2929
1FB1EC8A199E515B00ABD937 /* MyEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FB1EC89199E515B00ABD937 /* MyEvent.swift */; };
3030
1FB1EC8F199E60F800ABD937 /* String+SwiftState.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FB1EC8E199E60F800ABD937 /* String+SwiftState.swift */; };
31+
1FB4B39C1AAB3B190072E65D /* BugFixTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FB4B39B1AAB3B190072E65D /* BugFixTests.swift */; };
32+
1FB4B39D1AAB3B190072E65D /* BugFixTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FB4B39B1AAB3B190072E65D /* BugFixTests.swift */; };
3133
1FD01B6019EC2B5C00DA1C91 /* HierarchicalStateMachine.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD01B5F19EC2B5C00DA1C91 /* HierarchicalStateMachine.swift */; };
3234
1FD01B6119EC2B5C00DA1C91 /* HierarchicalStateMachine.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD01B5F19EC2B5C00DA1C91 /* HierarchicalStateMachine.swift */; };
3335
1FD01B6319EC2B6700DA1C91 /* HierarchicalStateMachineTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1FD01B6219EC2B6700DA1C91 /* HierarchicalStateMachineTests.swift */; };
@@ -90,6 +92,7 @@
9092
1FA6202F199660CA00460108 /* StateTransitionTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StateTransitionTests.swift; sourceTree = "<group>"; };
9193
1FB1EC89199E515B00ABD937 /* MyEvent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MyEvent.swift; sourceTree = "<group>"; };
9294
1FB1EC8E199E60F800ABD937 /* String+SwiftState.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "String+SwiftState.swift"; sourceTree = "<group>"; };
95+
1FB4B39B1AAB3B190072E65D /* BugFixTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BugFixTests.swift; sourceTree = "<group>"; };
9396
1FD01B5F19EC2B5C00DA1C91 /* HierarchicalStateMachine.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HierarchicalStateMachine.swift; sourceTree = "<group>"; };
9497
1FD01B6219EC2B6700DA1C91 /* HierarchicalStateMachineTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HierarchicalStateMachineTests.swift; sourceTree = "<group>"; };
9598
4822F0A619D0085E00F5F572 /* SwiftStateTests-iOS.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "SwiftStateTests-iOS.xctest"; sourceTree = BUILT_PRODUCTS_DIR; };
@@ -188,6 +191,7 @@
188191
1FA6202E199660CA00460108 /* StateTransitionChainTests.swift */,
189192
1FA6202D199660CA00460108 /* StateRouteTests.swift */,
190193
1FD01B6219EC2B6700DA1C91 /* HierarchicalStateMachineTests.swift */,
194+
1FB4B39B1AAB3B190072E65D /* BugFixTests.swift */,
191195
1FA6200D1996601000460108 /* Supporting Files */,
192196
);
193197
path = SwiftStateTests;
@@ -414,6 +418,7 @@
414418
1FA62036199660CA00460108 /* StateRouteTests.swift in Sources */,
415419
1FA62031199660CA00460108 /* BasicTests.swift in Sources */,
416420
1FA62034199660CA00460108 /* StateMachineEventTests.swift in Sources */,
421+
1FB4B39C1AAB3B190072E65D /* BugFixTests.swift in Sources */,
417422
1FA62035199660CA00460108 /* StateMachineTests.swift in Sources */,
418423
1FA62037199660CA00460108 /* StateTransitionChainTests.swift in Sources */,
419424
1FA62032199660CA00460108 /* MyState.swift in Sources */,
@@ -433,6 +438,7 @@
433438
4822F0AE19D008EB00F5F572 /* StateMachineChainTests.swift in Sources */,
434439
4822F0B019D008EB00F5F572 /* StateTransitionTests.swift in Sources */,
435440
4822F0A919D008E700F5F572 /* MyState.swift in Sources */,
441+
1FB4B39D1AAB3B190072E65D /* BugFixTests.swift in Sources */,
436442
4822F0B219D008EB00F5F572 /* StateRouteTests.swift in Sources */,
437443
4822F0B119D008EB00F5F572 /* StateTransitionChainTests.swift in Sources */,
438444
4822F0AD19D008EB00F5F572 /* StateMachineTests.swift in Sources */,

SwiftState/StateMachine.swift

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,6 @@ public class StateMachine<S: StateType, E: StateEventType>
162162
for (ev, transitionDict) in self._routes {
163163
if ev == event || ev == nil as Event {
164164
transitionDicts += [transitionDict]
165-
break
166165
}
167166
}
168167
}

SwiftStateTests/BugFixTests.swift

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
//
2+
// BugFixTests.swift
3+
// SwiftState
4+
//
5+
// Created by Yasuhiro Inami on 2015/03/07.
6+
// Copyright (c) 2015年 Yasuhiro Inami. All rights reserved.
7+
//
8+
9+
import SwiftState
10+
import XCTest
11+
12+
class BugFixTests: _TestCase
13+
{
14+
/// `hasRoute` test for "AnyEvent" & "SomeEvent" routes
15+
func testHasRoute_anyEvent_someEvent()
16+
{
17+
let machine = StateMachine<MyState, MyEvent>(state: .State0)
18+
19+
machine.addRoute(.State0 => .State1);
20+
machine.addRouteEvent(.Event0, transitions: [.State1 => .State2])
21+
22+
let hasRoute = machine.hasRoute(.State1 => .State2, forEvent: .Event0)
23+
XCTAssertTrue(hasRoute)
24+
}
25+
}

0 commit comments

Comments
 (0)