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:
102
iOS/RSSuperTests/NotificationPreferencesTests.swift
Normal file
102
iOS/RSSuperTests/NotificationPreferencesTests.swift
Normal file
@@ -0,0 +1,102 @@
|
||||
//
|
||||
// NotificationPreferencesTests.swift
|
||||
// RSSuperTests
|
||||
//
|
||||
// Created by Mike Freno on 3/29/26.
|
||||
//
|
||||
|
||||
import XCTest
|
||||
@testable import RSSuper
|
||||
|
||||
final class NotificationPreferencesTests: XCTestCase {
|
||||
|
||||
func testNotificationPreferencesEncodingDecoding() throws {
|
||||
let prefs = NotificationPreferences(
|
||||
newArticles: true,
|
||||
episodeReleases: false,
|
||||
customAlerts: true,
|
||||
badgeCount: true,
|
||||
sound: false,
|
||||
vibration: true
|
||||
)
|
||||
|
||||
let data = try JSONEncoder().encode(prefs)
|
||||
let decoded = try JSONDecoder().decode(NotificationPreferences.self, from: data)
|
||||
|
||||
XCTAssertEqual(decoded.newArticles, prefs.newArticles)
|
||||
XCTAssertEqual(decoded.episodeReleases, prefs.episodeReleases)
|
||||
XCTAssertEqual(decoded.customAlerts, prefs.customAlerts)
|
||||
XCTAssertEqual(decoded.badgeCount, prefs.badgeCount)
|
||||
XCTAssertEqual(decoded.sound, prefs.sound)
|
||||
XCTAssertEqual(decoded.vibration, prefs.vibration)
|
||||
}
|
||||
|
||||
func testNotificationPreferencesDefaults() {
|
||||
let prefs = NotificationPreferences()
|
||||
|
||||
XCTAssertEqual(prefs.newArticles, true)
|
||||
XCTAssertEqual(prefs.episodeReleases, true)
|
||||
XCTAssertEqual(prefs.customAlerts, false)
|
||||
XCTAssertEqual(prefs.badgeCount, true)
|
||||
XCTAssertEqual(prefs.sound, true)
|
||||
XCTAssertEqual(prefs.vibration, true)
|
||||
}
|
||||
|
||||
func testNotificationPreferencesAllEnabled() {
|
||||
let allEnabled = NotificationPreferences(
|
||||
newArticles: true,
|
||||
episodeReleases: true,
|
||||
customAlerts: true,
|
||||
badgeCount: true,
|
||||
sound: true,
|
||||
vibration: true
|
||||
)
|
||||
|
||||
XCTAssertTrue(allEnabled.allEnabled)
|
||||
}
|
||||
|
||||
func testNotificationPreferencesAnyEnabled() {
|
||||
let noneEnabled = NotificationPreferences(
|
||||
newArticles: false,
|
||||
episodeReleases: false,
|
||||
customAlerts: false,
|
||||
badgeCount: false,
|
||||
sound: false,
|
||||
vibration: false
|
||||
)
|
||||
|
||||
XCTAssertFalse(noneEnabled.anyEnabled)
|
||||
|
||||
let someEnabled = NotificationPreferences(
|
||||
newArticles: true,
|
||||
episodeReleases: false,
|
||||
customAlerts: false,
|
||||
badgeCount: false,
|
||||
sound: false,
|
||||
vibration: false
|
||||
)
|
||||
|
||||
XCTAssertTrue(someEnabled.anyEnabled)
|
||||
}
|
||||
|
||||
func testNotificationPreferencesEquality() {
|
||||
let prefs1 = NotificationPreferences(newArticles: true, episodeReleases: false)
|
||||
let prefs2 = NotificationPreferences(newArticles: true, episodeReleases: false)
|
||||
let prefs3 = NotificationPreferences(newArticles: false, episodeReleases: true)
|
||||
|
||||
XCTAssertEqual(prefs1, prefs2)
|
||||
XCTAssertNotEqual(prefs1, prefs3)
|
||||
}
|
||||
|
||||
func testNotificationPreferencesDebugDescription() {
|
||||
let prefs = NotificationPreferences(
|
||||
newArticles: true,
|
||||
episodeReleases: false,
|
||||
customAlerts: true
|
||||
)
|
||||
|
||||
let debugDesc = prefs.debugDescription
|
||||
XCTAssertTrue(debugDesc.contains("true"))
|
||||
XCTAssertTrue(debugDesc.contains("false"))
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user