Created
November 15, 2018 15:00
-
-
Save djds23/cb087e5f86cfa27c8ccf74d941a69b7d to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| class FollowerViewModelTest: XCTestCase { | |
| let disposeBag = DisposeBag() | |
| func testFollowersUpdate() { | |
| let testFollower = User() | |
| let mockNetworking = FollowerNetworkingMock(mockFollowers: [testFollower]) | |
| // Create a scheduler that starts at 0 | |
| let scheduler = TestScheduler(initialClock: 0) | |
| let viewModel = FollowUserViewModel(networkHandler: mockNetworking, scheduler: scheduler) | |
| let testCountObserver = scheduler.createTestObserver(Int.self) | |
| let testLatestFollowObserver = scheduler.createTestObserver(User.self) | |
| // Bind just like we did with our subject | |
| viewModel | |
| .followCount | |
| .bind(to: testCountObserver) | |
| .dispose(by: disposeBag) | |
| viewModel | |
| .latestFollow | |
| .bind(to: testLatestFollowObserver) | |
| .dispose(by: disposeBag) | |
| viewModel.followUserObserver.onNext(testFollower) | |
| scheduler.start() | |
| // ensure we only got 1 event | |
| XCTAssertEqual(testCountObserver.events.count, 1) | |
| // ensure our only event was the Int 1, the number of followers we have | |
| XCTAssertEqual(testCountObserver.events[0].value.element!, 1) | |
| // ensure we only got 1 event | |
| XCTAssertEqual(testLatestFollowObserver.events.count, 1) | |
| // ensure the follower we got was the same follower we put in our mock | |
| XCTAssertEqual(testLatestFollowObserver.events[0].value.element!, testFollower) | |
| } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment