@@ -14,48 +14,34 @@ class InteractorExecutorTests: XCTestCase {
1414
1515 override func setUp( ) {
1616 super. setUp ( )
17- // Put setup code here. This method is called before the invocation of each test method in the class.
1817
1918 firstRequest. onError = { [ unowned self] ( error: InteractorError ) -> Void in
2019 self . errorMessageFromFirstRequest = error. message
2120 }
2221 }
2322
24- // MARK: registerInteractor
23+ // MARK: - registerInteractor
2524
2625 func testRegisterInteractor_succeeds( ) {
2726 // Act
2827 executor. registerInteractor ( firstInteractor, request: firstRequest)
2928 }
3029
31- // MARK: execute
32-
33- func testExecute_withInteractorAndRequest_callsExecuteOnInteractor( ) {
30+ func testRegisterInteractor_callsErrorClosureOnRequest_whenInteractorDoesNotMatchRequest( ) {
3431 // Arrange
35- executor. registerInteractor ( firstInteractor , request: firstRequest)
32+ executor. registerInteractor ( secondInteractor , request: firstRequest)
3633
3734 // Act
3835 executor. execute ( firstRequest)
3936
4037 // Assert
41- XCTAssertEqual ( firstInteractor . numberOfExceuteCalls , 1 )
42- XCTAssert ( firstInteractor . executedRequest === firstRequest )
38+ let expected = " ACInteractor.ACInteractorExecutor: Request does not match execute function of registered Interactor! "
39+ XCTAssertEqual ( errorMessageFromFirstRequest , expected )
4340 }
4441
45- func testExecute_withTwoInteractors_executeOnSecond_callsExecuteOnSecondInteractor( ) {
46- // Arrange
47- executor. registerInteractor ( firstInteractor, request: firstRequest)
48- executor. registerInteractor ( secondInteractor, request: secondRequest)
49-
50- // Act
51- executor. execute ( secondRequest)
52-
53- // Assert
54- XCTAssertEqual ( secondInteractor. numberOfExceuteCalls, 1 )
55- XCTAssert ( secondInteractor. executedRequest === secondRequest)
56- }
42+ // MARK: - execute
5743
58- func testExecute_withTwoInteractors_executeOnBoth_callsExecuteOnEachInteractor ( ) {
44+ func testExecute_callsExecuteOnInteractor_thatIsRegisteredForRequest ( ) {
5945 // Arrange
6046 executor. registerInteractor ( firstInteractor, request: firstRequest)
6147 executor. registerInteractor ( secondInteractor, request: secondRequest)
@@ -65,14 +51,17 @@ class InteractorExecutorTests: XCTestCase {
6551 executor. execute ( secondRequest)
6652
6753 // Assert
68- XCTAssertEqual ( firstInteractor. numberOfExceuteCalls , 1 )
69- XCTAssert ( firstInteractor. executedRequest === firstRequest)
54+ XCTAssertEqual ( firstInteractor. executedRequests . count , 1 )
55+ XCTAssert ( firstInteractor. executedRequests . first === firstRequest)
7056
71- XCTAssertEqual ( secondInteractor. numberOfExceuteCalls , 1 )
72- XCTAssert ( secondInteractor. executedRequest === secondRequest)
57+ XCTAssertEqual ( secondInteractor. executedRequests . count , 1 )
58+ XCTAssert ( secondInteractor. executedRequests . first === secondRequest)
7359 }
7460
75- func testExecute_withUnknownRequest_callsErrorOnRequest( ) {
61+ func testExecute_callsErrorOnRequest_whenNoInteractorIsRegisteredForRequest( ) {
62+ // Arrange
63+ executor. registerInteractor ( secondInteractor, request: secondRequest)
64+
7665 // Act
7766 executor. execute ( firstRequest)
7867
@@ -81,47 +70,28 @@ class InteractorExecutorTests: XCTestCase {
8170 XCTAssertEqual ( errorMessageFromFirstRequest, expected)
8271 }
8372
84- func testExecute_withMismatchRequest_callsErrorOnRequest( ) {
73+ // MARK: - getInteractor
74+
75+ func testGetInteractor_returnsInteractor_registeredForRequest( ) {
8576 // Arrange
86- executor. registerInteractor ( secondInteractor, request: firstRequest)
77+ executor. registerInteractor ( firstInteractor, request: firstRequest)
78+ executor. registerInteractor ( secondInteractor, request: secondRequest)
8779
8880 // Act
89- executor. execute ( firstRequest)
81+ let firstResult = executor. getInteractor ( request: firstRequest)
82+ let secondResult = executor. getInteractor ( request: secondRequest)
9083
9184 // Assert
92- let expected = " ACInteractor.ACInteractorExecutor: Request does not match execute function of registered Interactor! "
93- XCTAssertEqual ( errorMessageFromFirstRequest , expected )
85+ XCTAssert ( firstResult === firstInteractor )
86+ XCTAssert ( secondResult === secondInteractor )
9487 }
9588
96-
97- // MARK: Test Interactors
98-
99- class FirstInteractor : Interactor {
100- var numberOfExceuteCalls = 0
101- var executedRequest : Request ?
102-
103- class Request : InteractorRequest < NSString > {
104- }
105-
106- func execute( _ request: Request ) {
107- numberOfExceuteCalls += 1
108- executedRequest = request
109- }
110- }
111-
112- class SecondInteractor : Interactor {
113- var numberOfExceuteCalls = 0
114- var executedRequest : Request ?
115-
116- class Request : InteractorRequest < NSString > {
117- }
89+ func testGetInteractor_returnsNil_whenNoInteractorIsRegisteredForRequest( ) {
90+ // Act
91+ let result = executor. getInteractor ( request: firstRequest)
11892
119- func execute( _ request: Request ) {
120- numberOfExceuteCalls += 1
121- executedRequest = request
122- }
93+ // Assert
94+ XCTAssertNil ( result)
12395 }
12496
12597}
126-
127-
0 commit comments