Untitled

 avatar
unknown
swift
2 years ago
2.4 kB
4
Indexable
`

//

//  FakeLocalAuthenticationContext.swift

//  SendMoney

//

//  Created by Mateusz Kuznik on 27/10/2017.

//Copyright © 2017 Azimo Ltd. All rights reserved.

//



import Foundation

@testable import Azimo

import AzimoTestKit

import LocalAuthentication



enum LocalAuthenticationContextMethods {

    case canEvaluatePolicy

    case evaluatePolicy

    case hasSupportForBiometryType

}



enum LocalAuthenticationContextMethodsParameters: String {

    case policy

    case error

    case localizedReason

    case reply

}



class FakeLocalAuthenticationContext: LocalAuthenticationContext, FakeObject {



    var biometryType: LABiometryType

    

    typealias MethodType = LocalAuthenticationContextMethods

    

    init(biometryType: LABiometryType = .none) {

        self.biometryType = biometryType

    }



    var invocations = [FakeInvocation<MethodType>]()

    var invocationsToReturn = [FakeInvocationResponse<MethodType, Any?>]()

    

    func canEvaluatePolicy(_ policy: LAPolicy, error: NSErrorPointer) -> Bool {

        let parameters: [String: Any] = [

            LocalAuthenticationContextMethodsParameters.policy.rawValue: policy,

            LocalAuthenticationContextMethodsParameters.error.rawValue: error as Any]

        

        let invocation = createInvocation(.canEvaluatePolicy, parameters: parameters)

        invocations.append(invocation)

        return responseValue(forInvocation: invocation, defaultValue: false)

    }

    

    func evaluatePolicy(_ policy: LAPolicy, localizedReason: String, reply: @escaping (Bool, Error?) -> Void) {

        let parameters: [String: Any] = [

            LocalAuthenticationContextMethodsParameters.policy.rawValue: policy,

            LocalAuthenticationContextMethodsParameters.localizedReason.rawValue: localizedReason,

            LocalAuthenticationContextMethodsParameters.reply.rawValue: reply

        ]

        let invocation = createInvocation(.evaluatePolicy, parameters: parameters)

        invocations.append(invocation)

    }

    

    func hasSupportForBiometryType() -> Bool {

        let invocation = createInvocation(.hasSupportForBiometryType)

        invocations.append(invocation)

        return responseValue(forInvocation: invocation, defaultValue: true)

    }

}`
Editor is loading...