48 lines
1.5 KiB
Swift
48 lines
1.5 KiB
Swift
//
|
|
// PagedTransactionRepositoryTests.swift
|
|
// ZcashLightClientKit-Unit-Tests
|
|
//
|
|
// Created by Francisco Gindre on 12/6/19.
|
|
//
|
|
|
|
import XCTest
|
|
@testable import TestUtils
|
|
@testable import ZcashLightClientKit
|
|
|
|
// swiftlint:disable implicitly_unwrapped_optional
|
|
class PagedTransactionRepositoryTests: XCTestCase {
|
|
var pagedTransactionRepository: PaginatedTransactionRepository!
|
|
var transactionRepository: TransactionRepository!
|
|
|
|
override func setUp() {
|
|
super.setUp()
|
|
transactionRepository = MockTransactionRepository(
|
|
unminedCount: 5,
|
|
receivedCount: 150,
|
|
sentCount: 100,
|
|
scannedHeight: 1000000,
|
|
network: ZcashNetworkBuilder.network(for: .testnet)
|
|
)
|
|
pagedTransactionRepository = PagedTransactionDAO(repository: transactionRepository)
|
|
}
|
|
|
|
func testBrowsePages() {
|
|
let pageSize = pagedTransactionRepository.pageSize
|
|
let pageCount = pagedTransactionRepository.pageCount
|
|
let totalItems = pagedTransactionRepository.itemCount
|
|
|
|
for index in 0 ..< pageCount / pageSize {
|
|
guard let page = try? pagedTransactionRepository.page(index) else {
|
|
XCTFail("page failed to get page \(index)")
|
|
return
|
|
}
|
|
if index < pageCount {
|
|
XCTAssert(page.count == pageSize)
|
|
} else {
|
|
// last page has to have the remainding items
|
|
XCTAssertEqual(page.count, totalItems - (pageSize * pageCount))
|
|
}
|
|
}
|
|
}
|
|
}
|