@@ -12,15 +12,15 @@ class LazyInteractorTests: XCTestCase {
1212 lazyInteractor = LazyInteractor ( factory: testFactory)
1313 }
1414
15- // MARK: init()
15+ // MARK: - Init
1616
1717 func testInit_doesNotInitializeLazyInstance( )
1818 {
1919 // Assert
2020 XCTAssertNil ( lazyInteractor. lazyInstance)
2121 }
2222
23- // MARK: getInteractor()
23+ // MARK: - getInteractor
2424
2525 func testGetInteractor_returnsInstanceBuiltWithFactory( )
2626 {
@@ -32,7 +32,7 @@ class LazyInteractorTests: XCTestCase {
3232 }
3333
3434
35- func testGetInteractor_calledTwice_doesNotCreateNewInstance ( )
35+ func testGetInteractor_alwaysReturnsSameInstance ( )
3636 {
3737 // Act
3838 let firstInteractor = lazyInteractor. getInteractor ( )
@@ -42,7 +42,7 @@ class LazyInteractorTests: XCTestCase {
4242 XCTAssert ( firstInteractor === secondInteractor)
4343 }
4444
45- // MARK: execute()
45+ // MARK: - execute
4646
4747 func testExceute_callsExecuteOfInteractor( )
4848 {
@@ -53,9 +53,25 @@ class LazyInteractorTests: XCTestCase {
5353 lazyInteractor. execute ( request)
5454
5555 // Assert
56- let interactor = lazyInteractor. getInteractor ( )
57- XCTAssertEqual ( interactor. executedRequests. count, 1 )
58- XCTAssert ( interactor. executedRequests. first === request)
56+ let interactor = lazyInteractor. lazyInstance
57+ XCTAssertEqual ( interactor? . executedRequests. count, 1 )
58+ XCTAssert ( interactor? . executedRequests. first === request)
59+ }
60+
61+ func testExecute_alwaysUsesSameInteractorInstance( ) {
62+ // Arrange
63+ let firstRequest = TestInteractor . Request ( )
64+ let secondRequest = TestInteractor . Request ( )
65+
66+ // Act
67+ lazyInteractor. execute ( firstRequest)
68+ lazyInteractor. execute ( secondRequest)
69+
70+ // Assert
71+ let interactor = lazyInteractor. lazyInstance
72+ XCTAssertEqual ( interactor? . executedRequests. count, 2 )
73+ XCTAssert ( interactor? . executedRequests. first === firstRequest)
74+ XCTAssert ( interactor? . executedRequests. last === secondRequest)
5975 }
6076
6177}
0 commit comments