pantuspavel/PPEventRegistryAPI

View on GitHub
PPEventRegistryAPI/PPEventRegistryAPITests/Classes/Transport/PPTransportMock.swift

Summary

Maintainability
A
45 mins
Test Coverage
//
//  PPTransportMock.swift
//  PPEventRegistryAPI
//
//  Created by Pavel Pantus on 7/16/16.
//  Copyright © 2016 Pavel Pantus. All rights reserved.
//

import Foundation
@testable import PPEventRegistryAPI

class PPTransportMock {
    var mockSuccess = true
    var rejectInvocation = false
    var delay = 0.3
}

// MARK: PPTransportProtocol

extension PPTransportMock: PPTransportProtocol {
    internal func postRequest(controller: PPController, method: PPHttpMethod, parameters: [String: Any], completionHandler: @escaping (_ result: PPResult<[String: Any], PPError>) -> ()) {
        if (rejectInvocation) {
            fatalError("Unexpected method was invoked")
        }

        DispatchQueue.main.asyncAfter(deadline: .now() + delay) {
            if self.mockSuccess {
                completionHandler(.Success(["Result": "Success"]))
            } else {
                completionHandler(.Failure(.Error("Mocked Transport Failure")))
            }
        }
    }
}