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