Skip to content
Snippets Groups Projects
Select Git revision
  • 2edf739af1f1d322c45fe31db195c7de0f48a5d2
  • main default protected
  • development
  • integration
  • v1.1.5
  • v1.1.4
  • v1.1.3
  • v1.1.2
  • v1.1.1
  • v1.1.0
  • v1.0.0
11 results

MessengerSearchContactsTests.swift

Blame
  • SideMenuAnimatorTests.swift 2.37 KiB
    import Foundation
    import XCTest
    
    @testable import Presentation
    
    final class SideMenuAnimatorTests: XCTestCase {
        var sut: SideMenuAnimator!
    
        override func setUp() {
            sut = SideMenuAnimator()
        }
    
        override func tearDown() {
            sut = nil
        }
    
        func test_animateWithFullProgress() {
            let containerView = MockContainerView()
            let progress: CGFloat = 1
    
            sut.animate(in: containerView, to: progress)
    
            XCTAssertEqual(containerView.snapshotView.layer.cornerRadius, 24.0)
            XCTAssertEqual(containerView.fromView.layer.shadowOpacity, 1.0)
    
            let transform = CGAffineTransform.identity.translatedBy(x: 50.0, y: 8.0)
                .scaledBy(x: 0.75, y: 0.75)
    
            XCTAssertEqual(containerView.fromView.transform, transform)
        }
    
        func test_animateWithNoProgress() {
            let containerView = MockContainerView()
            let progress: CGFloat = 0
    
            sut.animate(in: containerView, to: progress)
    
            XCTAssertEqual(containerView.snapshotView.layer.cornerRadius, 0)
            XCTAssertEqual(containerView.fromView.layer.shadowOpacity, 0)
            XCTAssertEqual(containerView.fromView.transform, CGAffineTransform.identity)
        }
    
        func test_animateWithHalfProgress() {
            let containerView = MockContainerView()
            let progress: CGFloat = 0.5
    
            sut.animate(in: containerView, to: progress)
    
            XCTAssertEqual(containerView.snapshotView.layer.cornerRadius, 12)
            XCTAssertEqual(containerView.fromView.layer.shadowOpacity, 0.5)
    
            let transform = CGAffineTransform.identity.translatedBy(x: 25.0, y: 4.0)
                .scaledBy(x: 0.875, y: 0.875)
    
            XCTAssertEqual(containerView.fromView.transform, transform)
        }
    
        func test_shouldNotAnimateForContainerWithoutTaggedView() {
            let containerView = UIView()
            let progress: CGFloat = 0
            sut.animate(in: containerView, to: progress)
            XCTAssertEqual(containerView.subviews.count, 0)
        }
    }
    
    private final class MockContainerView: UIView {
        let fromView = UIView()
        let snapshotView = UIView()
    
        init() {
            let size = CGSize(width: 100, height: 100)
            let frame = CGRect(origin: .zero, size: size)
            super.init(frame: frame)
    
            addSubview(fromView)
            fromView.addSubview(snapshotView)
            fromView.tag = SideMenuPresentTransition.fromViewTag
        }
    
        required init?(coder: NSCoder) { nil }
    }