ZcashLightClientKit/Tests/OfflineTests/WalletTests.swift

68 lines
2.5 KiB
Swift
Raw Normal View History

//
// WalletTests.swift
// ZcashLightClientKitTests
//
// Created by Francisco Gindre on 13/09/2019.
// Copyright © 2019 Electric Coin Company. All rights reserved.
//
import Foundation
import XCTest
2022-02-28 09:03:20 -08:00
@testable import TestUtils
@testable import ZcashLightClientKit
2021-09-23 06:26:41 -07:00
// swiftlint:disable implicitly_unwrapped_optional force_try force_unwrapping
class WalletTests: XCTestCase {
var dbData: URL! = nil
var paramDestination: URL! = nil
var cacheData: URL! = nil
2021-07-28 09:59:10 -07:00
var network = ZcashNetworkBuilder.network(for: .testnet)
2021-09-23 06:26:41 -07:00
var seedData = Data(base64Encoded: "9VDVOZZZOWWHpZtq1Ebridp3Qeux5C+HwiRR0g7Oi7HgnMs8Gfln83+/Q1NnvClcaSwM4ADFL1uZHxypEWlWXg==")!
override func setUp() {
2021-09-23 06:26:41 -07:00
super.setUp()
dbData = try! __dataDbURL()
cacheData = try! __cacheDbURL()
paramDestination = try! __documentsDirectory().appendingPathComponent("parameters")
}
override func tearDown() {
2021-09-23 06:26:41 -07:00
super.tearDown()
if FileManager.default.fileExists(atPath: dbData.absoluteString) {
2021-09-23 06:26:41 -07:00
try! FileManager.default.trashItem(at: dbData, resultingItemURL: nil)
}
}
2021-07-28 09:59:10 -07:00
func testWalletInitialization() throws {
let derivationTool = DerivationTool(networkType: network.networkType)
let ufvk = try derivationTool.deriveUnifiedFullViewingKeysFromSeed(seedData.bytes, numberOfAccounts: 1)
2021-09-23 06:26:41 -07:00
let wallet = Initializer(
cacheDbURL: try __cacheDbURL(),
dataDbURL: try __dataDbURL(),
pendingDbURL: try TestDbBuilder.pendingTransactionsDbURL(),
endpoint: LightWalletEndpointBuilder.default,
network: network,
spendParamsURL: try __spendParamsURL(),
outputParamsURL: try __outputParamsURL(),
viewingKeys: ufvk,
2021-09-23 06:26:41 -07:00
walletBirthday: 663194
)
2021-07-28 09:59:10 -07:00
let synchronizer = try SDKSynchronizer(initializer: wallet)
var dbInit: Initializer.InitializationResult!
XCTAssertNoThrow(try { dbInit = try synchronizer.prepare(with: nil) }())
guard case .success = dbInit else {
XCTFail("Failed to initDataDb. Expected `.success` got: \(String(describing: dbInit))")
return
}
2021-07-28 09:59:10 -07:00
// fileExists actually sucks, so attempting to delete the file and checking what happens is far better :)
XCTAssertNoThrow( try FileManager.default.removeItem(at: dbData!) )
// TODO: Initialize cacheDB on start, will be done when Synchronizer is ready and integrated
// XCTAssertNoThrow( try FileManager.default.removeItem(at: cacheData!) )
}
}