marshroute
96 строк · 4.0 Кб
1import XCTest
2@testable import Marshroute
3
4final class AnimatingTransitionsHandlerTests: XCTestCase {
5
6var transitionsCoordinatorSpy: TransitionsCoordinatorSpy!
7var animatingTransitionsHandler: AnimatingTransitionsHandler!
8
9override func setUp() {
10super.setUp()
11
12transitionsCoordinatorSpy = TransitionsCoordinatorSpy()
13
14animatingTransitionsHandler = BaseAnimatingTransitionsHandler(
15transitionsCoordinator: transitionsCoordinatorSpy
16)
17}
18
19// MARK: - TransitionsHandler
20
21func testThatAnimatingTransitionsHandlerForwards_PerformTransition_CallsToItsTransitionsCoordinator() {
22// Given
23let presentationContext = TransitionContextsCreator.createPresentationTransitionContext()
24
25// When
26animatingTransitionsHandler.performTransition(context: presentationContext)
27
28// Then
29if case .forAnimating(let context, let transitionsHandler) = transitionsCoordinatorSpy.coordinatePerformingTransition! {
30XCTAssert(context == presentationContext)
31XCTAssert(transitionsHandler === animatingTransitionsHandler)
32} else { XCTFail() }
33}
34
35func testThatAnimatingTransitionsHandlerForwards_UndoTransitionsAfter_CallsToItsTransitionsCoordinator() {
36// Given
37let generatedTansitionId = TransitionIdGeneratorImpl().generateNewTransitionId()
38
39// When
40animatingTransitionsHandler.undoTransitionsAfter(transitionId: generatedTansitionId)
41
42// Then
43if case .forAnimating(let transitionId, let transitionsHandler) = transitionsCoordinatorSpy.coordinateUndoingTransitionsAfter! {
44XCTAssert(transitionId == generatedTansitionId)
45XCTAssert(transitionsHandler === animatingTransitionsHandler)
46} else { XCTFail() }
47}
48
49func testThatAnimatingTransitionsHandlerForwards_UndoTransitionWith_CallsToItsTransitionsCoordinator() {
50// Given
51let generatedTansitionId = TransitionIdGeneratorImpl().generateNewTransitionId()
52
53// When
54animatingTransitionsHandler.undoTransitionWith(transitionId: generatedTansitionId)
55
56// Then
57if case .forAnimating(let transitionId, let transitionsHandler) = transitionsCoordinatorSpy.coordinateUndoingTransitionWith! {
58XCTAssert(transitionId == generatedTansitionId)
59XCTAssert(transitionsHandler === animatingTransitionsHandler)
60} else { XCTFail() }
61}
62
63func testThatAnimatingTransitionsHandlerForwards_UndoAllChainedTransitions_CallsToItsTransitionsCoordinator() {
64// When
65animatingTransitionsHandler.undoAllChainedTransitions()
66
67// Then
68if case .forAnimating(let transitionsHandler) = transitionsCoordinatorSpy.coordinateUndoingAllChainedTransitions! {
69XCTAssert(transitionsHandler === animatingTransitionsHandler)
70} else { XCTFail() }
71}
72
73func testThatAnimatingTransitionsHandlerForwards_UndoAllTransitions_CallsToItsTransitionsCoordinator() {
74// When
75animatingTransitionsHandler.undoAllTransitions()
76
77// Then
78if case .forAnimating(let transitionsHandler) = transitionsCoordinatorSpy.coordinateUndoingAllTransitions! {
79XCTAssert(transitionsHandler === animatingTransitionsHandler)
80} else { XCTFail() }
81}
82
83func testThatAnimatingTransitionsHandlerForwards_ResetWithTransition_CallsToItsTransitionsCoordinator() {
84// Given
85let resettingContext = TransitionContextsCreator.createRegisteringEndpointNavigationControllerTransitionContext()
86
87// When
88animatingTransitionsHandler.resetWithTransition(context: resettingContext)
89
90// Then
91if case .forAnimating(let context, let transitionsHandler) = transitionsCoordinatorSpy.coordinateResettingWithTransition! {
92XCTAssert(context == resettingContext)
93XCTAssert(transitionsHandler === animatingTransitionsHandler)
94} else { XCTFail() }
95}
96}
97