Skip to content

Commit

Permalink
[Test] add coordinator add/remove tests
Browse files Browse the repository at this point in the history
  • Loading branch information
zhgchgli0718 committed Feb 28, 2024
1 parent 13ccea0 commit 0dfac02
Showing 1 changed file with 33 additions and 0 deletions.
33 changes: 33 additions & 0 deletions PokemonGuiderTests/CoordinatorTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,32 @@ import Combine

final class CoordinatorTests: XCTestCase {

func testCoordinatorAdd() {
let aCoordinator = FakeCoordinatorA()
let bCoordinator = FakeCoordinatorB()

aCoordinator.add(child: bCoordinator)
XCTAssertEqual(aCoordinator.childCoordinators.count, 1)
XCTAssertTrue(aCoordinator.childCoordinators.first === bCoordinator)

// add sam coordinator again, should remain
aCoordinator.add(child: bCoordinator)
XCTAssertEqual(aCoordinator.childCoordinators.count, 1)
XCTAssertTrue(aCoordinator.childCoordinators.first === bCoordinator)
}

func testCoordinatorRemove() {
let aCoordinator = FakeCoordinatorA()
let bCoordinator = FakeCoordinatorB()

aCoordinator.add(child: bCoordinator)
XCTAssertEqual(aCoordinator.childCoordinators.count, 1)
XCTAssertTrue(aCoordinator.childCoordinators.first === bCoordinator)

aCoordinator.remove(child: bCoordinator)
XCTAssertEqual(aCoordinator.childCoordinators.count, 0)
}

func testPokemonCoordinator() {
let navigationController = SpyUINavigationController()
let pokemonCoordinator = PokemonCoordinator(navigationController: navigationController)
Expand All @@ -33,6 +59,13 @@ final class CoordinatorTests: XCTestCase {
}

private extension CoordinatorTests {
class FakeCoordinatorA: Coordinator {
var childCoordinators: [PokemonGuider.Coordinator] = []
}
class FakeCoordinatorB: Coordinator {
var childCoordinators: [PokemonGuider.Coordinator] = []
}

class SpyUINavigationController: UINavigationController {

var pushViewController: UIViewController?
Expand Down

0 comments on commit 0dfac02

Please sign in to comment.