pscbonline-ios/PSCBOnlineTests/Mocks/PassKitMocks.swift

119 lines
3.0 KiB
Swift
Raw Normal View History

2024-07-08 15:20:00 +03:00
//
// PassKitMocks.swift
// PSCB-OOS-iOSTests
//
// Created by OA on 22.10.2020.
//
#if canImport(PassKit)
import Foundation
import PassKit
// MARK: - Mock payment
internal class MockPayment: PKPayment {
override var token: PKPaymentToken {
return self._token
}
override var billingContact: PKContact? {
return self._billingContact
}
override var shippingContact: PKContact? {
return self._shippingContact
}
override var shippingMethod: PKShippingMethod? {
return self._shippingMethod
}
let _token: MockPaymentToken
let _billingContact: PKContact?
let _shippingContact: PKContact?
let _shippingMethod: PKShippingMethod?
init(token: MockPaymentToken, billingContact: PKContact? = nil, shippingContact: PKContact? = nil, shippingMethod: PKShippingMethod? = nil) {
self._token = token
self._billingContact = billingContact
self._shippingContact = shippingContact
self._shippingMethod = shippingMethod
}
static func createPayment() -> PKPayment {
let token = MockPaymentToken.createToken()
return MockPayment(token: token as! MockPaymentToken)
}
}
// MARK: - Mock payment token
internal class MockPaymentToken: PKPaymentToken {
override var paymentMethod: PKPaymentMethod {
return self._paymentMethod
}
override var transactionIdentifier: String {
return self._transactionIdentifier
}
override var paymentData: Data {
return self._paymentData
}
let _paymentMethod: MockPaymentMethod
let _transactionIdentifier = "2C7B4FD8-7D1B-49D4-8AB5-AFE3CC79265A"
let _paymentData: Data = {
let dict: [AnyHashable: AnyHashable] = [
"version": "EC_v1",
"data": "....",
"signature": "...."
]
return try! JSONSerialization.data(withJSONObject: dict, options: .prettyPrinted)
}()
init(paymentMethod: MockPaymentMethod) {
self._paymentMethod = paymentMethod
}
static func createToken() -> PKPaymentToken {
return MockPaymentToken(paymentMethod: MockPaymentMethod.createMethod() as! MockPaymentMethod)
}
}
// MARK: - Mock payment method
internal class MockPaymentMethod: PKPaymentMethod {
override var displayName: String? {
return self._displayName
}
override var network: PKPaymentNetwork? {
return self._network
}
override var type: PKPaymentMethodType {
return self._type
}
let _displayName: String?
let _network: PKPaymentNetwork?
let _type: PKPaymentMethodType
init(type: PKPaymentMethodType, network: PKPaymentNetwork? = nil, displayName: String? = nil) {
self._network = network
self._type = type
self._displayName = displayName
}
static func createMethod() -> PKPaymentMethod {
return MockPaymentMethod(type: .debit, network: .visa, displayName: "PSCB Visa")
}
}
#endif