restructure
Some checks failed
CI - Multi-Platform Native / Build iOS (RSSuper) (push) Has been cancelled
CI - Multi-Platform Native / Build macOS (push) Has been cancelled
CI - Multi-Platform Native / Build Android (push) Has been cancelled
CI - Multi-Platform Native / Build Linux (push) Has been cancelled
CI - Multi-Platform Native / Build Summary (push) Has been cancelled
Some checks failed
CI - Multi-Platform Native / Build iOS (RSSuper) (push) Has been cancelled
CI - Multi-Platform Native / Build macOS (push) Has been cancelled
CI - Multi-Platform Native / Build Android (push) Has been cancelled
CI - Multi-Platform Native / Build Linux (push) Has been cancelled
CI - Multi-Platform Native / Build Summary (push) Has been cancelled
This commit is contained in:
96
iOS/RSSuperTests/SearchFiltersTests.swift
Normal file
96
iOS/RSSuperTests/SearchFiltersTests.swift
Normal file
@@ -0,0 +1,96 @@
|
||||
//
|
||||
// SearchFiltersTests.swift
|
||||
// RSSuperTests
|
||||
//
|
||||
// Created by Mike Freno on 3/29/26.
|
||||
//
|
||||
|
||||
import XCTest
|
||||
@testable import RSSuper
|
||||
|
||||
final class SearchFiltersTests: XCTestCase {
|
||||
|
||||
func testSearchFiltersEncodingDecoding() throws {
|
||||
let filters = SearchFilters(
|
||||
dateFrom: Date(timeIntervalSince1970: 1609459200),
|
||||
dateTo: Date(timeIntervalSince1970: 1609545600),
|
||||
feedIds: ["feed-1", "feed-2"],
|
||||
authors: ["Author 1", "Author 2"],
|
||||
contentType: .audio
|
||||
)
|
||||
|
||||
let data = try JSONEncoder().encode(filters)
|
||||
let decoded = try JSONDecoder().decode(SearchFilters.self, from: data)
|
||||
|
||||
XCTAssertEqual(decoded.dateFrom, filters.dateFrom)
|
||||
XCTAssertEqual(decoded.dateTo, filters.dateTo)
|
||||
XCTAssertEqual(decoded.feedIds, filters.feedIds)
|
||||
XCTAssertEqual(decoded.authors, filters.authors)
|
||||
XCTAssertEqual(decoded.contentType, filters.contentType)
|
||||
}
|
||||
|
||||
func testSearchFiltersEmpty() throws {
|
||||
let filters = SearchFilters()
|
||||
|
||||
XCTAssertNil(filters.dateFrom)
|
||||
XCTAssertNil(filters.dateTo)
|
||||
XCTAssertNil(filters.feedIds)
|
||||
XCTAssertNil(filters.authors)
|
||||
XCTAssertNil(filters.contentType)
|
||||
|
||||
let data = try JSONEncoder().encode(filters)
|
||||
let decoded = try JSONDecoder().decode(SearchFilters.self, from: data)
|
||||
|
||||
XCTAssertNil(decoded.dateFrom)
|
||||
XCTAssertNil(decoded.feedIds)
|
||||
}
|
||||
|
||||
func testSearchFiltersEquality() {
|
||||
let filters1 = SearchFilters(
|
||||
feedIds: ["feed-1"],
|
||||
authors: ["Author 1"]
|
||||
)
|
||||
|
||||
let filters2 = SearchFilters(
|
||||
feedIds: ["feed-1"],
|
||||
authors: ["Author 1"]
|
||||
)
|
||||
|
||||
let filters3 = SearchFilters(
|
||||
feedIds: ["feed-2"],
|
||||
authors: ["Author 2"]
|
||||
)
|
||||
|
||||
XCTAssertEqual(filters1, filters2)
|
||||
XCTAssertNotEqual(filters1, filters3)
|
||||
}
|
||||
|
||||
func testSearchSortOptionLocalizedDescription() {
|
||||
XCTAssertEqual(SearchSortOption.relevance.localizedDescription, "Relevance")
|
||||
XCTAssertEqual(SearchSortOption.dateDesc.localizedDescription, "Date (Newest First)")
|
||||
XCTAssertEqual(SearchSortOption.dateAsc.localizedDescription, "Date (Oldest First)")
|
||||
XCTAssertEqual(SearchSortOption.titleAsc.localizedDescription, "Title (A-Z)")
|
||||
XCTAssertEqual(SearchSortOption.titleDesc.localizedDescription, "Title (Z-A)")
|
||||
XCTAssertEqual(SearchSortOption.feedAsc.localizedDescription, "Feed (A-Z)")
|
||||
XCTAssertEqual(SearchSortOption.feedDesc.localizedDescription, "Feed (Z-A)")
|
||||
}
|
||||
|
||||
func testContentTypeLocalizedDescription() {
|
||||
XCTAssertEqual(ContentType.article.localizedDescription, "Article")
|
||||
XCTAssertEqual(ContentType.audio.localizedDescription, "Audio")
|
||||
XCTAssertEqual(ContentType.video.localizedDescription, "Video")
|
||||
}
|
||||
|
||||
func testSearchFiltersDebugDescription() {
|
||||
let filters = SearchFilters(
|
||||
dateFrom: Date(timeIntervalSince1970: 1609459200),
|
||||
feedIds: ["feed-1", "feed-2"],
|
||||
contentType: .video
|
||||
)
|
||||
|
||||
let debugDesc = filters.debugDescription
|
||||
XCTAssertTrue(debugDesc.contains("feed-1"))
|
||||
XCTAssertTrue(debugDesc.contains("feed-2"))
|
||||
XCTAssertTrue(debugDesc.contains("Video"))
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user