marshroute

Форк
0
/
NavigationTransitionsHandlerImplTests.swift 
98 строк · 4.2 Кб
1
import XCTest
2
@testable import Marshroute
3

4
final class NavigationTransitionsHandlerImplTests: XCTestCase {
5

6
    var transitionsCoordinatorSpy: TransitionsCoordinatorSpy!
7
    var navigationTransitionsHandler: NavigationTransitionsHandlerImpl!
8
    var navigationController = UINavigationController()
9
    
10
    override func setUp() {
11
        super.setUp()
12
        
13
        transitionsCoordinatorSpy = TransitionsCoordinatorSpy()
14
        
15
        navigationTransitionsHandler = NavigationTransitionsHandlerImpl(
16
            navigationController: navigationController,
17
            transitionsCoordinator: transitionsCoordinatorSpy
18
        )
19
    }
20
    
21
    // MARK: - TransitionsHandler
22
    
23
    func testThatNavigationTransitionsHandlerForwards_PerformTransition_CallsToItsTransitionsCoordinator() {
24
        // Given
25
        let presentationContext = TransitionContextsCreator.createPresentationTransitionContext()
26
        
27
        // When
28
        navigationTransitionsHandler.performTransition(context: presentationContext)
29
        
30
        // Then
31
        if case .forAnimating(let context, let transitionsHandler) = transitionsCoordinatorSpy.coordinatePerformingTransition! {
32
            XCTAssert(context == presentationContext)
33
            XCTAssert(transitionsHandler === navigationTransitionsHandler)
34
        } else { XCTFail() }
35
    }
36
    
37
    func testThatNavigationTransitionsHandlerForwards_UndoTransitionsAfter_CallsToItsTransitionsCoordinator() {
38
        // Given
39
        let generatedTansitionId = TransitionIdGeneratorImpl().generateNewTransitionId()
40
        
41
        // When
42
        navigationTransitionsHandler.undoTransitionsAfter(transitionId: generatedTansitionId)
43
        
44
        // Then
45
        if case .forAnimating(let transitionId, let transitionsHandler) = transitionsCoordinatorSpy.coordinateUndoingTransitionsAfter! {
46
            XCTAssert(transitionId == generatedTansitionId)
47
            XCTAssert(transitionsHandler === navigationTransitionsHandler)
48
        } else { XCTFail() }
49
    }
50
    
51
    func testThatNavigationTransitionsHandlerForwards_UndoTransitionWith_CallsToItsTransitionsCoordinator() {
52
        // Given
53
        let generatedTansitionId = TransitionIdGeneratorImpl().generateNewTransitionId()
54
        
55
        // When
56
        navigationTransitionsHandler.undoTransitionWith(transitionId: generatedTansitionId)
57
        
58
        // Then
59
        if case .forAnimating(let transitionId, let transitionsHandler) = transitionsCoordinatorSpy.coordinateUndoingTransitionWith! {
60
            XCTAssert(transitionId == generatedTansitionId)
61
            XCTAssert(transitionsHandler === navigationTransitionsHandler)
62
        } else { XCTFail() }
63
    }
64
    
65
    func testThatNavigationTransitionsHandlerForwards_UndoAllChainedTransitions_CallsToItsTransitionsCoordinator() {
66
        // When
67
        navigationTransitionsHandler.undoAllChainedTransitions()
68
        
69
        // Then
70
        if case .forAnimating(let transitionsHandler) = transitionsCoordinatorSpy.coordinateUndoingAllChainedTransitions! {
71
            XCTAssert(transitionsHandler === navigationTransitionsHandler)
72
        } else { XCTFail() }
73
    }
74
    
75
    func testThatNavigationTransitionsHandlerForwards_UndoAllTransitions_CallsToItsTransitionsCoordinator() {
76
        // When
77
        navigationTransitionsHandler.undoAllTransitions()
78
        
79
        // Then
80
        if case .forAnimating(let transitionsHandler) = transitionsCoordinatorSpy.coordinateUndoingAllTransitions! {
81
            XCTAssert(transitionsHandler === navigationTransitionsHandler)
82
        } else { XCTFail() }
83
    }
84

85
    func testThatNavigationTransitionsHandlerForwards_ResetWithTransition_CallsToItsTransitionsCoordinator() {
86
        // Given
87
        let resettingContext = TransitionContextsCreator.createRegisteringEndpointNavigationControllerTransitionContext()
88
        
89
        // When
90
        navigationTransitionsHandler.resetWithTransition(context: resettingContext)
91
        
92
        // Then
93
        if case .forAnimating(let context, let transitionsHandler) = transitionsCoordinatorSpy.coordinateResettingWithTransition! {
94
            XCTAssert(context == resettingContext)
95
            XCTAssert(transitionsHandler === navigationTransitionsHandler)
96
        } else { XCTFail() }
97
    }
98
}
99

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.