feat: implement cross-platform features and UI integration
- iOS: Add BackgroundSyncService, SyncScheduler, SyncWorker, BookmarkViewModel, FeedViewModel - iOS: Add BackgroundSyncService, SyncScheduler, SyncWorker services - Linux: Add settings-store.vala, State.vala signals, view widgets (FeedList, FeedDetail, AddFeed, Search, Settings, Bookmark) - Linux: Add bookmark-store.vala, bookmark vala model, search-service.vala - Android: Add NotificationService, NotificationManager, NotificationPreferencesStore - Android: Add BookmarkDao, BookmarkRepository, SettingsStore - Add unit tests for iOS, Android, Linux - Add integration tests - Add performance benchmarks - Update tasks and documentation Co-Authored-By: Paperclip <noreply@paperclip.ing>
This commit is contained in:
64
native-route/ios/RSSuperTests/SyncWorkerTests.swift
Normal file
64
native-route/ios/RSSuperTests/SyncWorkerTests.swift
Normal file
@@ -0,0 +1,64 @@
|
||||
import XCTest
|
||||
@testable import RSSuper
|
||||
|
||||
/// Unit tests for SyncWorker
|
||||
final class SyncWorkerTests: XCTestCase {
|
||||
|
||||
private var worker: SyncWorker!
|
||||
|
||||
override func setUp() {
|
||||
super.setUp()
|
||||
worker = SyncWorker()
|
||||
}
|
||||
|
||||
override func tearDown() {
|
||||
worker = nil
|
||||
super.tearDown()
|
||||
}
|
||||
|
||||
func testChunkedArrayExtension() {
|
||||
let array = [1, 2, 3, 4, 5, 6, 7]
|
||||
let chunks = array.chunked(into: 3)
|
||||
|
||||
XCTAssertEqual(chunks.count, 3)
|
||||
XCTAssertEqual(chunks[0], [1, 2, 3])
|
||||
XCTAssertEqual(chunks[1], [4, 5, 6])
|
||||
XCTAssertEqual(chunks[2], [7])
|
||||
}
|
||||
|
||||
func testChunkedArrayExactDivision() {
|
||||
let array = [1, 2, 3, 4]
|
||||
let chunks = array.chunked(into: 2)
|
||||
|
||||
XCTAssertEqual(chunks.count, 2)
|
||||
XCTAssertEqual(chunks[0], [1, 2])
|
||||
XCTAssertEqual(chunks[1], [3, 4])
|
||||
}
|
||||
|
||||
func testChunkedArrayEmpty() {
|
||||
let array: [Int] = []
|
||||
let chunks = array.chunked(into: 3)
|
||||
|
||||
XCTAssertEqual(chunks.count, 0)
|
||||
}
|
||||
|
||||
func testSyncResultInit() {
|
||||
let result = SyncResult(
|
||||
feedsSynced: 5,
|
||||
articlesFetched: 100,
|
||||
errors: []
|
||||
)
|
||||
|
||||
XCTAssertEqual(result.feedsSynced, 5)
|
||||
XCTAssertEqual(result.articlesFetched, 100)
|
||||
XCTAssertEqual(result.errors.count, 0)
|
||||
}
|
||||
|
||||
func testSyncResultDefaultInit() {
|
||||
let result = SyncResult()
|
||||
|
||||
XCTAssertEqual(result.feedsSynced, 0)
|
||||
XCTAssertEqual(result.articlesFetched, 0)
|
||||
XCTAssertEqual(result.errors.count, 0)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user