diff --git a/.github/workflows/claude.yml b/.github/workflows/claude.yml index 69bee41e..7c162b88 100644 --- a/.github/workflows/claude.yml +++ b/.github/workflows/claude.yml @@ -41,6 +41,8 @@ jobs: Use `gh pr comment` to post a summary review comment on the PR. Use inline comments for specific code issues. Be concise and actionable. + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} claude-respond: # Only respond to @claude mentions from adamayoung @@ -62,3 +64,6 @@ jobs: - uses: anthropics/claude-code-action@v1 with: claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }} + trigger_phrase: "@claude" + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/CLAUDE.md b/CLAUDE.md index 71744e22..3a53f6d7 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -23,9 +23,9 @@ swift test --filter "TestClassName" swift test --filter "TestClassName/testMethodName" # Code Quality -make lint # Check swift-format compliance -make format # Auto-format code -make lint-markdown # Lint markdown files +make format # Auto-format code (requires swiftlint and swiftformat) +make lint # Check swiftlint and swiftformat compliance +make lint-markdown # Lint markdown files (requires markdownlint) # Documentation make preview-docs # Preview DocC locally @@ -85,9 +85,23 @@ HTTPClient (protocol) - `Tests/TMDbIntegrationTests/` - Live API tests - Uses Swift Testing framework (not XCTest) +### Test Writing Guidelines + +**CRITICAL: Never use force unwrapping in tests** +- Always use `#require()` instead of force unwrapping (`!`) when working with optionals +- `#require()` provides better error messages and handles nil gracefully +- Example: + ```swift + // ❌ BAD - force unwrap + let translation = result.translations.first { $0.languageCode == "en" }! + + // ✅ GOOD - use #require + let translation = try #require(result.translations.first { $0.languageCode == "en" }) + ``` + ## Code Style Requirements -Enforced via `.swift-format`: +Enforced via `swiftlint` and `swiftformat`: - **Line length:** 100 characters - **All public declarations must have documentation** (`///` style) @@ -95,6 +109,8 @@ Enforced via `.swift-format`: - **Use guard for early exits** - **No leading underscores** - use file-private instead +**Note:** The `swiftlint` and `swiftformat` tools must be installed separately. If not available, ensure code follows existing style patterns and compiles without warnings. + ## Testing Requirements **CRITICAL: Always run both unit tests AND integration tests after making code changes.** @@ -141,13 +157,15 @@ Unit tests alone may pass even when: **CRITICAL: Before considering ANY task complete, run these steps in order:** -1. **Format code**: `make format` - Auto-format all Swift files -2. **Check lint**: `make lint` - Verify swift-format compliance -3. **Run unit tests**: `make test` - All unit tests must pass -4. **Run integration tests**: `make integration-test` - All integration tests must pass +1. **Format code** (if tools available): `make format` - Auto-format all Swift files with swiftlint and swiftformat + - If tools not installed: Manually verify code follows existing style patterns +2. **Check lint** (if tools available): `make lint` - Verify swiftlint and swiftformat compliance + - If tools not installed: Ensure code compiles with `swift build -Xswiftc -warnings-as-errors` +3. **Run unit tests**: `make test` - All unit tests must pass ✅ **REQUIRED** +4. **Run integration tests**: `make integration-test` - All integration tests must pass ✅ **REQUIRED** 5. **Build documentation**: `make build-docs` - Verify DocC builds without warnings (if public API changed) -**All steps must succeed before the work is complete.** +**Required steps (3-5) must succeed before the work is complete. Steps 1-2 are strongly recommended but can be skipped if formatting tools are not available.** ## Documentation Requirements diff --git a/Package.swift b/Package.swift index f1db32ac..f80e6d42 100644 --- a/Package.swift +++ b/Package.swift @@ -1,9 +1,8 @@ // swift-tools-version:6.0 // The swift-tools-version declares the minimum version of Swift required to build this package. -import PackageDescription - import class Foundation.ProcessInfo +import PackageDescription let package = Package( name: "TMDb", diff --git a/Sources/TMDb/Adapters/URLSessionHTTPClientAdapter.swift b/Sources/TMDb/Adapters/URLSessionHTTPClientAdapter.swift index 28339b62..611c71ac 100644 --- a/Sources/TMDb/Adapters/URLSessionHTTPClientAdapter.swift +++ b/Sources/TMDb/Adapters/URLSessionHTTPClientAdapter.swift @@ -30,8 +30,7 @@ final class URLSessionHTTPClientAdapter: HTTPClient { throw error } - let httpResponse = Self.httpResponse(from: data, response: response) - return httpResponse + return Self.httpResponse(from: data, response: response) } } @@ -73,7 +72,8 @@ extension URLSessionHTTPClientAdapter { guard let data, let response else { continuation.resume( - throwing: NSError(domain: "uk.co.adam-young.TMDb", code: -1)) + throwing: NSError(domain: "uk.co.adam-young.TMDb", code: -1) + ) return } diff --git a/Sources/TMDb/Domain/Models/Certification.swift b/Sources/TMDb/Domain/Models/Certification.swift index 93b588ba..2e83a3e9 100644 --- a/Sources/TMDb/Domain/Models/Certification.swift +++ b/Sources/TMDb/Domain/Models/Certification.swift @@ -15,7 +15,9 @@ public struct Certification: Identifiable, Codable, Equatable, Hashable, Sendabl /// /// Certification's identifier (same as ``code``). /// - public var id: String { code } + public var id: String { + code + } /// /// Certification code. diff --git a/Sources/TMDb/Domain/Models/CollectionTranslation.swift b/Sources/TMDb/Domain/Models/CollectionTranslation.swift index 06b5d89d..b2ebe7a6 100644 --- a/Sources/TMDb/Domain/Models/CollectionTranslation.swift +++ b/Sources/TMDb/Domain/Models/CollectionTranslation.swift @@ -15,7 +15,9 @@ public struct CollectionTranslation: Identifiable, Codable, Equatable, Hashable, /// /// Collection translation's identifier (same as `languageCode`). /// - public var id: String { languageCode } + public var id: String { + languageCode + } /// /// ISO 3166-1 country code. @@ -71,10 +73,10 @@ public struct CollectionTranslation: Identifiable, Codable, Equatable, Hashable, extension CollectionTranslation { private enum CodingKeys: String, CodingKey { - case countryCode = "iso_3166_1" - case languageCode = "iso_639_1" + case countryCode = "iso31661" + case languageCode = "iso6391" case name - case englishName = "english_name" + case englishName case data } diff --git a/Sources/TMDb/Domain/Models/Country.swift b/Sources/TMDb/Domain/Models/Country.swift index 0f94978b..406cab5e 100644 --- a/Sources/TMDb/Domain/Models/Country.swift +++ b/Sources/TMDb/Domain/Models/Country.swift @@ -15,7 +15,9 @@ public struct Country: Identifiable, Codable, Equatable, Hashable, Sendable { /// /// Country's identifier (same as `countryCode`). /// - public var id: String { countryCode } + public var id: String { + countryCode + } /// /// The ISO 3166-1 country code. diff --git a/Sources/TMDb/Domain/Models/Department.swift b/Sources/TMDb/Domain/Models/Department.swift index 4311f0cc..47f1a836 100644 --- a/Sources/TMDb/Domain/Models/Department.swift +++ b/Sources/TMDb/Domain/Models/Department.swift @@ -15,7 +15,9 @@ public struct Department: Identifiable, Codable, Equatable, Hashable, Sendable { /// /// Departments's identifier (same as `name`). /// - public var id: String { name } + public var id: String { + name + } /// /// Department's name. diff --git a/Sources/TMDb/Domain/Models/ImageMetadata.swift b/Sources/TMDb/Domain/Models/ImageMetadata.swift index 136b3a5c..5d6d5976 100644 --- a/Sources/TMDb/Domain/Models/ImageMetadata.swift +++ b/Sources/TMDb/Domain/Models/ImageMetadata.swift @@ -15,7 +15,9 @@ public struct ImageMetadata: Identifiable, Codable, Equatable, Hashable, Sendabl /// /// Image metadata's identifier (same as `filePath`). /// - public var id: URL { filePath } + public var id: URL { + filePath + } /// /// Path of the image. diff --git a/Sources/TMDb/Domain/Models/Language.swift b/Sources/TMDb/Domain/Models/Language.swift index 0b665b4e..eaf336f6 100644 --- a/Sources/TMDb/Domain/Models/Language.swift +++ b/Sources/TMDb/Domain/Models/Language.swift @@ -15,7 +15,9 @@ public struct Language: Identifiable, Codable, Equatable, Hashable, Sendable { /// /// Language code. /// - public var id: String { code } + public var id: String { + code + } /// /// The ISO 639-1 language code. diff --git a/Sources/TMDb/Domain/Models/ProductionCountry.swift b/Sources/TMDb/Domain/Models/ProductionCountry.swift index 47b7e79e..8142f020 100644 --- a/Sources/TMDb/Domain/Models/ProductionCountry.swift +++ b/Sources/TMDb/Domain/Models/ProductionCountry.swift @@ -15,7 +15,9 @@ public struct ProductionCountry: Identifiable, Codable, Equatable, Hashable, Sen /// /// Country's identifier (same as `countryCode`). /// - public var id: String { countryCode } + public var id: String { + countryCode + } /// /// The ISO 3166-1 country code. diff --git a/Sources/TMDb/Domain/Models/SpokenLanguage.swift b/Sources/TMDb/Domain/Models/SpokenLanguage.swift index 78070dd9..7301efa2 100644 --- a/Sources/TMDb/Domain/Models/SpokenLanguage.swift +++ b/Sources/TMDb/Domain/Models/SpokenLanguage.swift @@ -15,7 +15,9 @@ public struct SpokenLanguage: Identifiable, Codable, Equatable, Hashable, Sendab /// /// Language code. /// - public var id: String { languageCode } + public var id: String { + languageCode + } /// /// The ISO 639-1 language code. diff --git a/Sources/TMDb/Domain/Services/Authentication/TMDbAuthenticationService.swift b/Sources/TMDb/Domain/Services/Authentication/TMDbAuthenticationService.swift index cce8c931..9d452997 100644 --- a/Sources/TMDb/Domain/Services/Authentication/TMDbAuthenticationService.swift +++ b/Sources/TMDb/Domain/Services/Authentication/TMDbAuthenticationService.swift @@ -48,11 +48,9 @@ final class TMDbAuthenticationService: AuthenticationService { } func authenticateURL(for token: Token, redirectURL: URL? = nil) -> URL { - let url = authenticateURLBuilder.authenticateURL( + authenticateURLBuilder.authenticateURL( with: token.requestToken, redirectURL: redirectURL ) - - return url } func createSession(withToken token: Token) async throws -> Session { @@ -84,9 +82,7 @@ final class TMDbAuthenticationService: AuthenticationService { throw TMDbError(error: error) } - let session = try await createSession(withToken: validatedToken) - - return session + return try await createSession(withToken: validatedToken) } @discardableResult diff --git a/Sources/TMDb/Networking/TMDbAPIClient.swift b/Sources/TMDb/Networking/TMDbAPIClient.swift index 86443db3..be7ffbd1 100644 --- a/Sources/TMDb/Networking/TMDbAPIClient.swift +++ b/Sources/TMDb/Networking/TMDbAPIClient.swift @@ -102,7 +102,8 @@ extension TMDbAPIClient { var queryItems = urlComponents.queryItems ?? [] for requestQueryItem in requestQueryItems { queryItems.append( - URLQueryItem(name: requestQueryItem.key, value: requestQueryItem.value)) + URLQueryItem(name: requestQueryItem.key, value: requestQueryItem.value) + ) } urlComponents.queryItems = queryItems diff --git a/Sources/TMDb/TMDb.docc/TMDb.md b/Sources/TMDb/TMDb.docc/TMDb.md index f0ad33a5..d4bf81d1 100644 --- a/Sources/TMDb/TMDb.docc/TMDb.md +++ b/Sources/TMDb/TMDb.docc/TMDb.md @@ -72,6 +72,7 @@ Watch providers provided by [JustWatch](https://www.justwatch.com). - ``TVSeriesService`` - ``TVSeries`` +- ``TVSeriesPageableList`` - ``ShowCredits`` - ``TVSeriesAggregateCredits`` - ``AggregateCastMember`` @@ -85,6 +86,7 @@ Watch providers provided by [JustWatch](https://www.justwatch.com). - ``TVSeriesExternalLinksCollection`` - ``TVSeriesImageFilter`` - ``TVSeriesVideoFilter`` +- ``ContentRating`` ### TV Seasons @@ -122,9 +124,11 @@ Watch providers provided by [JustWatch](https://www.justwatch.com). - ``MoviePageableList`` - ``Movie`` - ``MovieSort`` +- ``DiscoverMovieFilter`` - ``TVSeriesPageableList`` - ``TVSeries`` - ``TVSeriesSort`` +- ``DiscoverTVSeriesFilter`` ### Trending diff --git a/Tests/TMDbIntegrationTests/AccountIntegrationTests.swift b/Tests/TMDbIntegrationTests/AccountIntegrationTests.swift index 94795223..5deeb589 100644 --- a/Tests/TMDbIntegrationTests/AccountIntegrationTests.swift +++ b/Tests/TMDbIntegrationTests/AccountIntegrationTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite( diff --git a/Tests/TMDbIntegrationTests/AuthenticationIntegrationTests.swift b/Tests/TMDbIntegrationTests/AuthenticationIntegrationTests.swift index e8026e8e..16918743 100644 --- a/Tests/TMDbIntegrationTests/AuthenticationIntegrationTests.swift +++ b/Tests/TMDbIntegrationTests/AuthenticationIntegrationTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite( @@ -67,4 +66,24 @@ struct AuthenticationIntegrationTests { #expect(isValid) } + @Test("authenticateURL returns valid URL") + func authenticateURLReturnsValidURL() async throws { + let token = try await authenticationService.requestToken() + + let url = authenticationService.authenticateURL(for: token, redirectURL: nil) + + #expect(url.host == "www.themoviedb.org") + #expect(url.path.contains("authenticate") == true) + } + + @Test("authenticateURL with redirect URL returns valid URL") + func authenticateURLWithRedirectReturnsValidURL() async throws { + let token = try await authenticationService.requestToken() + let redirectURL = try #require(URL(string: "myapp://callback")) + + let url = authenticationService.authenticateURL(for: token, redirectURL: redirectURL) + + #expect(url.absoluteString.contains("redirect_to") == true) + } + } diff --git a/Tests/TMDbIntegrationTests/CertificationIntegrationTests.swift b/Tests/TMDbIntegrationTests/CertificationIntegrationTests.swift index 17eadc16..7bdf645b 100644 --- a/Tests/TMDbIntegrationTests/CertificationIntegrationTests.swift +++ b/Tests/TMDbIntegrationTests/CertificationIntegrationTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite( diff --git a/Tests/TMDbIntegrationTests/CollectionIntegrationTests.swift b/Tests/TMDbIntegrationTests/CollectionIntegrationTests.swift index 7c3ff45e..ed187128 100644 --- a/Tests/TMDbIntegrationTests/CollectionIntegrationTests.swift +++ b/Tests/TMDbIntegrationTests/CollectionIntegrationTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite( @@ -79,21 +78,16 @@ struct CollectionIntegrationTests { #expect(!imageCollection.posters.isEmpty) } - @Test("translations", .disabled("Known issue - needs investigation")) + @Test("translations") func translations() async throws { let collectionID = 10 - do { - let translations = try await collectionService.translations( - forCollection: collectionID - ) - - #expect(!translations.isEmpty) - #expect(translations.contains(where: { $0.languageCode == "en" })) - } catch { - Issue.record("Failed with error: \(error)") - throw error - } + let translations = try await collectionService.translations( + forCollection: collectionID + ) + + #expect(!translations.isEmpty) + #expect(translations.contains(where: { $0.languageCode == "en" })) } } diff --git a/Tests/TMDbIntegrationTests/CompanyIntegrationTests.swift b/Tests/TMDbIntegrationTests/CompanyIntegrationTests.swift index cd53948d..d75e1f33 100644 --- a/Tests/TMDbIntegrationTests/CompanyIntegrationTests.swift +++ b/Tests/TMDbIntegrationTests/CompanyIntegrationTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite( diff --git a/Tests/TMDbIntegrationTests/ConfigurationIntegrationTests.swift b/Tests/TMDbIntegrationTests/ConfigurationIntegrationTests.swift index 57392a33..483441d5 100644 --- a/Tests/TMDbIntegrationTests/ConfigurationIntegrationTests.swift +++ b/Tests/TMDbIntegrationTests/ConfigurationIntegrationTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite( diff --git a/Tests/TMDbIntegrationTests/DiscoverIntegrationTests.swift b/Tests/TMDbIntegrationTests/DiscoverIntegrationTests.swift index a6b082e7..276c4f1b 100644 --- a/Tests/TMDbIntegrationTests/DiscoverIntegrationTests.swift +++ b/Tests/TMDbIntegrationTests/DiscoverIntegrationTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite( diff --git a/Tests/TMDbIntegrationTests/FindIntegrationTests.swift b/Tests/TMDbIntegrationTests/FindIntegrationTests.swift index 347af1e0..b2390917 100644 --- a/Tests/TMDbIntegrationTests/FindIntegrationTests.swift +++ b/Tests/TMDbIntegrationTests/FindIntegrationTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite( diff --git a/Tests/TMDbIntegrationTests/GenreIntegrationTests.swift b/Tests/TMDbIntegrationTests/GenreIntegrationTests.swift index 5641ca09..95c345f2 100644 --- a/Tests/TMDbIntegrationTests/GenreIntegrationTests.swift +++ b/Tests/TMDbIntegrationTests/GenreIntegrationTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite( diff --git a/Tests/TMDbIntegrationTests/KeywordIntegrationTests.swift b/Tests/TMDbIntegrationTests/KeywordIntegrationTests.swift index bf556a04..340f08eb 100644 --- a/Tests/TMDbIntegrationTests/KeywordIntegrationTests.swift +++ b/Tests/TMDbIntegrationTests/KeywordIntegrationTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite( diff --git a/Tests/TMDbIntegrationTests/ListIntegrationTests.swift b/Tests/TMDbIntegrationTests/ListIntegrationTests.swift index ddf04557..205db419 100644 --- a/Tests/TMDbIntegrationTests/ListIntegrationTests.swift +++ b/Tests/TMDbIntegrationTests/ListIntegrationTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite( @@ -60,4 +59,78 @@ struct ListIntegrationTests { #expect(status.isPresent == false || status.isPresent == true) } + @Test( + "create list creates new list", + .enabled(if: CredentialHelper.shared.hasCredential), + .disabled("Requires authenticated session") + ) + func createListCreatesNewList() async throws { + let credential = CredentialHelper.shared.tmdbCredential + let session = try await TMDbClient( + apiKey: CredentialHelper.shared.tmdbAPIKey + ).authentication.createSession(withCredential: credential) + + let result = try await listService.create( + name: "Test List", + description: "Integration test list", + language: "en", + isPublic: false, + session: session + ) + + #expect(result.listID > 0) + #expect(result.success) + } + + @Test( + "add and remove item from list", + .enabled(if: CredentialHelper.shared.hasCredential), + .disabled("Requires authenticated session") + ) + func addAndRemoveItemFromList() async throws { + let credential = CredentialHelper.shared.tmdbCredential + let session = try await TMDbClient( + apiKey: CredentialHelper.shared.tmdbAPIKey + ).authentication.createSession(withCredential: credential) + let listID = 1 + let movieID = 550 + + try await listService.addItem(mediaID: movieID, toList: listID, session: session) + + let status = try await listService.itemStatus(forMedia: movieID, inList: listID) + #expect(status.isPresent == true) + + try await listService.removeItem(mediaID: movieID, fromList: listID, session: session) + } + + @Test( + "clear list removes all items", + .enabled(if: CredentialHelper.shared.hasCredential), + .disabled("Requires authenticated session") + ) + func clearListRemovesAllItems() async throws { + let credential = CredentialHelper.shared.tmdbCredential + let session = try await TMDbClient( + apiKey: CredentialHelper.shared.tmdbAPIKey + ).authentication.createSession(withCredential: credential) + let listID = 1 + + try await listService.clear(list: listID, session: session) + } + + @Test( + "delete list removes list", + .enabled(if: CredentialHelper.shared.hasCredential), + .disabled("Requires authenticated session") + ) + func deleteListRemovesList() async throws { + let credential = CredentialHelper.shared.tmdbCredential + let session = try await TMDbClient( + apiKey: CredentialHelper.shared.tmdbAPIKey + ).authentication.createSession(withCredential: credential) + let listID = 1 + + try await listService.delete(list: listID, session: session) + } + } diff --git a/Tests/TMDbIntegrationTests/MovieIntegrationTests.swift b/Tests/TMDbIntegrationTests/MovieIntegrationTests.swift index 6ac8c9ac..6d97acf9 100644 --- a/Tests/TMDbIntegrationTests/MovieIntegrationTests.swift +++ b/Tests/TMDbIntegrationTests/MovieIntegrationTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite( diff --git a/Tests/TMDbIntegrationTests/NetworkIntegrationTests.swift b/Tests/TMDbIntegrationTests/NetworkIntegrationTests.swift index e09c44be..a80c89ae 100644 --- a/Tests/TMDbIntegrationTests/NetworkIntegrationTests.swift +++ b/Tests/TMDbIntegrationTests/NetworkIntegrationTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite( diff --git a/Tests/TMDbIntegrationTests/PersonIntegrationTests.swift b/Tests/TMDbIntegrationTests/PersonIntegrationTests.swift index 1a74b01e..2cd058bf 100644 --- a/Tests/TMDbIntegrationTests/PersonIntegrationTests.swift +++ b/Tests/TMDbIntegrationTests/PersonIntegrationTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite( diff --git a/Tests/TMDbIntegrationTests/SearchIntegrationTests.swift b/Tests/TMDbIntegrationTests/SearchIntegrationTests.swift index c9254f47..1d9e9173 100644 --- a/Tests/TMDbIntegrationTests/SearchIntegrationTests.swift +++ b/Tests/TMDbIntegrationTests/SearchIntegrationTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite( diff --git a/Tests/TMDbIntegrationTests/TVEpisodeServiceTests.swift b/Tests/TMDbIntegrationTests/TVEpisodeServiceTests.swift index 00d9d2fd..043e83c2 100644 --- a/Tests/TMDbIntegrationTests/TVEpisodeServiceTests.swift +++ b/Tests/TMDbIntegrationTests/TVEpisodeServiceTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite( @@ -38,7 +37,7 @@ struct TVEpisodeServiceTests { #expect(episode.id == 63068) #expect(episode.episodeNumber == episodeNumber) #expect(episode.seasonNumber == seasonNumber) - #expect(episode.name == "What is Dead May Never Die") + #expect(episode.name == "What Is Dead May Never Die") } @Test("credits") diff --git a/Tests/TMDbIntegrationTests/TVSeasonIntegrationTests.swift b/Tests/TMDbIntegrationTests/TVSeasonIntegrationTests.swift index 6b3b75c9..be2a169e 100644 --- a/Tests/TMDbIntegrationTests/TVSeasonIntegrationTests.swift +++ b/Tests/TMDbIntegrationTests/TVSeasonIntegrationTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite( diff --git a/Tests/TMDbIntegrationTests/TVSeriesServiceTests.swift b/Tests/TMDbIntegrationTests/TVSeriesServiceTests.swift index 3b057abb..8288d130 100644 --- a/Tests/TMDbIntegrationTests/TVSeriesServiceTests.swift +++ b/Tests/TMDbIntegrationTests/TVSeriesServiceTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite( diff --git a/Tests/TMDbIntegrationTests/TrendingIntegrationTests.swift b/Tests/TMDbIntegrationTests/TrendingIntegrationTests.swift index 4273562e..b3c9b7ea 100644 --- a/Tests/TMDbIntegrationTests/TrendingIntegrationTests.swift +++ b/Tests/TMDbIntegrationTests/TrendingIntegrationTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite( diff --git a/Tests/TMDbIntegrationTests/WatchProviderIntegrationTests.swift b/Tests/TMDbIntegrationTests/WatchProviderIntegrationTests.swift index c2ced16f..66c59e13 100644 --- a/Tests/TMDbIntegrationTests/WatchProviderIntegrationTests.swift +++ b/Tests/TMDbIntegrationTests/WatchProviderIntegrationTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite( diff --git a/Tests/TMDbTests/Adapters/URLSessionHTTPClientAdapterTests.swift b/Tests/TMDbTests/Adapters/URLSessionHTTPClientAdapterTests.swift index da3cd74b..13f239f0 100644 --- a/Tests/TMDbTests/Adapters/URLSessionHTTPClientAdapterTests.swift +++ b/Tests/TMDbTests/Adapters/URLSessionHTTPClientAdapterTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb #if canImport(FoundationNetworking) diff --git a/Tests/TMDbTests/Domain/APIClient/APIRequestQueryItemNameTests.swift b/Tests/TMDbTests/Domain/APIClient/APIRequestQueryItemNameTests.swift index f81fb03a..f9859764 100644 --- a/Tests/TMDbTests/Domain/APIClient/APIRequestQueryItemNameTests.swift +++ b/Tests/TMDbTests/Domain/APIClient/APIRequestQueryItemNameTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.apiClient, .domain)) diff --git a/Tests/TMDbTests/Domain/APIClient/APIStubRequest.swift b/Tests/TMDbTests/Domain/APIClient/APIStubRequest.swift index f0d63822..73ded0ad 100644 --- a/Tests/TMDbTests/Domain/APIClient/APIStubRequest.swift +++ b/Tests/TMDbTests/Domain/APIClient/APIStubRequest.swift @@ -6,7 +6,6 @@ // import Foundation - @testable import TMDb final class APIStubRequest: diff --git a/Tests/TMDbTests/Domain/APIClient/MockAPIClient.swift b/Tests/TMDbTests/Domain/APIClient/MockAPIClient.swift index 6ceadcf7..e97c7ea2 100644 --- a/Tests/TMDbTests/Domain/APIClient/MockAPIClient.swift +++ b/Tests/TMDbTests/Domain/APIClient/MockAPIClient.swift @@ -6,7 +6,6 @@ // import Foundation - @testable import TMDb final class MockAPIClient: APIClient, @unchecked Sendable { @@ -53,7 +52,8 @@ extension MockAPIClient { guard let value = try result.get() as? Request.Response else { preconditionFailure( - "Can't cast response to type \(String(describing: Request.Response.self))") + "Can't cast response to type \(String(describing: Request.Response.self))" + ) } return value diff --git a/Tests/TMDbTests/Domain/Models/APIConfigurationTests.swift b/Tests/TMDbTests/Domain/Models/APIConfigurationTests.swift index b263633d..36faa076 100644 --- a/Tests/TMDbTests/Domain/Models/APIConfigurationTests.swift +++ b/Tests/TMDbTests/Domain/Models/APIConfigurationTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.models)) diff --git a/Tests/TMDbTests/Domain/Models/AccountAvatarTests.swift b/Tests/TMDbTests/Domain/Models/AccountAvatarTests.swift new file mode 100644 index 00000000..467ecd7f --- /dev/null +++ b/Tests/TMDbTests/Domain/Models/AccountAvatarTests.swift @@ -0,0 +1,41 @@ +// +// AccountAvatarTests.swift +// TMDb +// +// Copyright © 2026 Adam Young. +// + +import Foundation +import Testing +@testable import TMDb + +@Suite(.tags(.models, .decoding)) +struct AccountAvatarTests { + + @Test("JSON decoding of AccountAvatar") + func decodeReturnsAccountAvatar() throws { + let result = try JSONDecoder.theMovieDatabase.decode( + AccountAvatar.self, + fromResource: "account-avatar" + ) + + #expect(result.gravatar.hash == accountAvatar.gravatar.hash) + #expect(result.tmdb.avatarPath == accountAvatar.tmdb.avatarPath) + } + +} + +extension AccountAvatarTests { + + private var accountAvatar: AccountAvatar { + AccountAvatar( + gravatar: AccountAvatar.Gravatar( + hash: "c9e9fc152ee756a900db85757c29815d" + ), + tmdb: AccountAvatar.TMDb( + avatarPath: "/5pF2ecF4fW9v7cEyxJQh8VkJZyL.jpg" + ) + ) + } + +} diff --git a/Tests/TMDbTests/Domain/Models/AccountDetailsTests.swift b/Tests/TMDbTests/Domain/Models/AccountDetailsTests.swift index 29ab45a5..262bd17e 100644 --- a/Tests/TMDbTests/Domain/Models/AccountDetailsTests.swift +++ b/Tests/TMDbTests/Domain/Models/AccountDetailsTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.models)) diff --git a/Tests/TMDbTests/Domain/Models/AggregateCastMemberTests.swift b/Tests/TMDbTests/Domain/Models/AggregateCastMemberTests.swift index 69d18c78..347086b2 100644 --- a/Tests/TMDbTests/Domain/Models/AggregateCastMemberTests.swift +++ b/Tests/TMDbTests/Domain/Models/AggregateCastMemberTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.models)) diff --git a/Tests/TMDbTests/Domain/Models/AggregateCrewMemberTests.swift b/Tests/TMDbTests/Domain/Models/AggregateCrewMemberTests.swift index a82895ed..37172317 100644 --- a/Tests/TMDbTests/Domain/Models/AggregateCrewMemberTests.swift +++ b/Tests/TMDbTests/Domain/Models/AggregateCrewMemberTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.models)) diff --git a/Tests/TMDbTests/Domain/Models/CastMemberTests.swift b/Tests/TMDbTests/Domain/Models/CastMemberTests.swift index fd6bc25c..c35595c3 100644 --- a/Tests/TMDbTests/Domain/Models/CastMemberTests.swift +++ b/Tests/TMDbTests/Domain/Models/CastMemberTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.models)) diff --git a/Tests/TMDbTests/Domain/Models/CastRoleTests.swift b/Tests/TMDbTests/Domain/Models/CastRoleTests.swift new file mode 100644 index 00000000..1461740b --- /dev/null +++ b/Tests/TMDbTests/Domain/Models/CastRoleTests.swift @@ -0,0 +1,37 @@ +// +// CastRoleTests.swift +// TMDb +// +// Copyright © 2026 Adam Young. +// + +import Foundation +import Testing +@testable import TMDb + +@Suite(.tags(.models, .decoding)) +struct CastRoleTests { + + @Test("JSON decoding of CastRole") + func decodeReturnsCastRole() throws { + let result = try JSONDecoder.theMovieDatabase.decode( + CastRole.self, + fromResource: "cast-role" + ) + + #expect(result == castRole) + } + +} + +extension CastRoleTests { + + private var castRole: CastRole { + CastRole( + creditID: "52fe4250c3a36847f80149f3", + character: "Jack Sparrow", + episodeCount: 24 + ) + } + +} diff --git a/Tests/TMDbTests/Domain/Models/CertificationTests.swift b/Tests/TMDbTests/Domain/Models/CertificationTests.swift index 54fd1a40..bf1b1419 100644 --- a/Tests/TMDbTests/Domain/Models/CertificationTests.swift +++ b/Tests/TMDbTests/Domain/Models/CertificationTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.models)) diff --git a/Tests/TMDbTests/Domain/Models/CertificationsTests.swift b/Tests/TMDbTests/Domain/Models/CertificationsTests.swift index 8c8c45de..51d5849f 100644 --- a/Tests/TMDbTests/Domain/Models/CertificationsTests.swift +++ b/Tests/TMDbTests/Domain/Models/CertificationsTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.models)) diff --git a/Tests/TMDbTests/Domain/Models/CollectionImageCollectionTests.swift b/Tests/TMDbTests/Domain/Models/CollectionImageCollectionTests.swift index 3858ce51..382dc24f 100644 --- a/Tests/TMDbTests/Domain/Models/CollectionImageCollectionTests.swift +++ b/Tests/TMDbTests/Domain/Models/CollectionImageCollectionTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.models)) diff --git a/Tests/TMDbTests/Domain/Models/CollectionListItemTests.swift b/Tests/TMDbTests/Domain/Models/CollectionListItemTests.swift index 6e763441..2b3db8d2 100644 --- a/Tests/TMDbTests/Domain/Models/CollectionListItemTests.swift +++ b/Tests/TMDbTests/Domain/Models/CollectionListItemTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.models)) diff --git a/Tests/TMDbTests/Domain/Models/CollectionTests.swift b/Tests/TMDbTests/Domain/Models/CollectionTests.swift index 9cc885da..872ad12c 100644 --- a/Tests/TMDbTests/Domain/Models/CollectionTests.swift +++ b/Tests/TMDbTests/Domain/Models/CollectionTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.models)) diff --git a/Tests/TMDbTests/Domain/Models/CollectionTranslationDataTests.swift b/Tests/TMDbTests/Domain/Models/CollectionTranslationDataTests.swift index 60e72e55..88db2973 100644 --- a/Tests/TMDbTests/Domain/Models/CollectionTranslationDataTests.swift +++ b/Tests/TMDbTests/Domain/Models/CollectionTranslationDataTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.models)) diff --git a/Tests/TMDbTests/Domain/Models/CollectionTranslationTests.swift b/Tests/TMDbTests/Domain/Models/CollectionTranslationTests.swift index 8f2e16c0..6b4d05e5 100644 --- a/Tests/TMDbTests/Domain/Models/CollectionTranslationTests.swift +++ b/Tests/TMDbTests/Domain/Models/CollectionTranslationTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.models)) @@ -39,4 +38,94 @@ struct CollectionTranslationTests { #expect(translation.id == "de") } + @Test("JSON decoding with TMDb decoder") + func jsonDecodingWithTMDbDecoder() throws { + let json = """ + { + "iso_3166_1": "DE", + "iso_639_1": "de", + "name": "Deutsch", + "english_name": "German", + "data": { + "title": "Star Wars Filmreihe", + "overview": "Star Wars overview", + "homepage": "http://www.starwars-union.de" + } + } + """ + + let data = try #require(json.data(using: .utf8)) + let translation = try JSONDecoder.theMovieDatabase.decode( + CollectionTranslation.self, + from: data + ) + + #expect(translation.countryCode == "DE") + #expect(translation.languageCode == "de") + #expect(translation.name == "Deutsch") + #expect(translation.englishName == "German") + #expect(translation.data.title == "Star Wars Filmreihe") + #expect(translation.data.overview == "Star Wars overview") + #expect(translation.data.homepageURL == URL(string: "http://www.starwars-union.de")) + } + + @Test("JSON encoding and decoding round trip with TMDb decoder") + func jsonEncodingAndDecodingRoundTripWithTMDbDecoder() throws { + let data = CollectionTranslationData( + title: "Star Wars Filmreihe", + overview: "An overview", + homepageURL: URL(string: "http://www.starwars-union.de") + ) + + let original = CollectionTranslation( + countryCode: "DE", + languageCode: "de", + name: "Deutsch", + englishName: "German", + data: data + ) + + let encoder = JSONEncoder() + encoder.keyEncodingStrategy = .convertToSnakeCase + let jsonData = try encoder.encode(original) + + let decoder = JSONDecoder.theMovieDatabase + let decoded = try decoder.decode(CollectionTranslation.self, from: jsonData) + + #expect(decoded.countryCode == original.countryCode) + #expect(decoded.languageCode == original.languageCode) + #expect(decoded.name == original.name) + #expect(decoded.englishName == original.englishName) + #expect(decoded.data.title == original.data.title) + #expect(decoded.data.overview == original.data.overview) + #expect(decoded.data.homepageURL == original.data.homepageURL) + } + + @Test("JSON decoding from file with multiple translations") + func jsonDecodingFromFileWithMultipleTranslations() throws { + let result = try JSONDecoder.theMovieDatabase.decode( + CollectionTranslationsResult.self, + fromResource: "collection-translations-single" + ) + + #expect(result.id == 10) + #expect(result.translations.count == 2) + + // Verify German translation + let germanTranslation = try #require(result.translations.first { $0.languageCode == "de" }) + #expect(germanTranslation.countryCode == "DE") + #expect(germanTranslation.name == "Deutsch") + #expect(germanTranslation.englishName == "German") + #expect(germanTranslation.data.title == "Star Wars Filmreihe") + #expect(germanTranslation.data.homepageURL == URL(string: "http://www.starwars-union.de")) + + // Verify English translation + let englishTranslation = try #require(result.translations.first { $0.languageCode == "en" }) + #expect(englishTranslation.countryCode == "US") + #expect(englishTranslation.name == "English") + #expect(englishTranslation.englishName == "English") + #expect(englishTranslation.data.title == "") + #expect(englishTranslation.data.homepageURL == URL(string: "https://www.starwars.com/films")) + } + } diff --git a/Tests/TMDbTests/Domain/Models/CompanyTests.swift b/Tests/TMDbTests/Domain/Models/CompanyTests.swift index e724888c..85ccce3e 100644 --- a/Tests/TMDbTests/Domain/Models/CompanyTests.swift +++ b/Tests/TMDbTests/Domain/Models/CompanyTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.models)) diff --git a/Tests/TMDbTests/Domain/Models/ContentRatingTests.swift b/Tests/TMDbTests/Domain/Models/ContentRatingTests.swift index 77d5d6d0..b90a6c60 100644 --- a/Tests/TMDbTests/Domain/Models/ContentRatingTests.swift +++ b/Tests/TMDbTests/Domain/Models/ContentRatingTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.models)) diff --git a/Tests/TMDbTests/Domain/Models/ContentRatingsTests.swift b/Tests/TMDbTests/Domain/Models/ContentRatingsTests.swift index e1b7068c..485965d3 100644 --- a/Tests/TMDbTests/Domain/Models/ContentRatingsTests.swift +++ b/Tests/TMDbTests/Domain/Models/ContentRatingsTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.models)) diff --git a/Tests/TMDbTests/Domain/Models/CountryTests.swift b/Tests/TMDbTests/Domain/Models/CountryTests.swift index 4fd1b119..5df62337 100644 --- a/Tests/TMDbTests/Domain/Models/CountryTests.swift +++ b/Tests/TMDbTests/Domain/Models/CountryTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.models)) diff --git a/Tests/TMDbTests/Domain/Models/CreateListResultTests.swift b/Tests/TMDbTests/Domain/Models/CreateListResultTests.swift index 653f5e76..9f2dba01 100644 --- a/Tests/TMDbTests/Domain/Models/CreateListResultTests.swift +++ b/Tests/TMDbTests/Domain/Models/CreateListResultTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.models)) diff --git a/Tests/TMDbTests/Domain/Models/CreatorTests.swift b/Tests/TMDbTests/Domain/Models/CreatorTests.swift index 9b65a459..8613b2f6 100644 --- a/Tests/TMDbTests/Domain/Models/CreatorTests.swift +++ b/Tests/TMDbTests/Domain/Models/CreatorTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.models)) diff --git a/Tests/TMDbTests/Domain/Models/CrewJobTests.swift b/Tests/TMDbTests/Domain/Models/CrewJobTests.swift new file mode 100644 index 00000000..70440391 --- /dev/null +++ b/Tests/TMDbTests/Domain/Models/CrewJobTests.swift @@ -0,0 +1,37 @@ +// +// CrewJobTests.swift +// TMDb +// +// Copyright © 2026 Adam Young. +// + +import Foundation +import Testing +@testable import TMDb + +@Suite(.tags(.models, .decoding)) +struct CrewJobTests { + + @Test("JSON decoding of CrewJob") + func decodeReturnsCrewJob() throws { + let result = try JSONDecoder.theMovieDatabase.decode( + CrewJob.self, + fromResource: "crew-job" + ) + + #expect(result == crewJob) + } + +} + +extension CrewJobTests { + + private var crewJob: CrewJob { + CrewJob( + creditID: "52fe4250c3a36847f80149f4", + job: "Director", + episodeCount: 12 + ) + } + +} diff --git a/Tests/TMDbTests/Domain/Models/CrewMemberTests.swift b/Tests/TMDbTests/Domain/Models/CrewMemberTests.swift index 744b7a84..c646d6d8 100644 --- a/Tests/TMDbTests/Domain/Models/CrewMemberTests.swift +++ b/Tests/TMDbTests/Domain/Models/CrewMemberTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.models)) diff --git a/Tests/TMDbTests/Domain/Models/DepartmentTests.swift b/Tests/TMDbTests/Domain/Models/DepartmentTests.swift index 5be4692b..cbdc86e5 100644 --- a/Tests/TMDbTests/Domain/Models/DepartmentTests.swift +++ b/Tests/TMDbTests/Domain/Models/DepartmentTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.models)) diff --git a/Tests/TMDbTests/Domain/Models/ExternalSourceTests.swift b/Tests/TMDbTests/Domain/Models/ExternalSourceTests.swift new file mode 100644 index 00000000..0bdd2f9b --- /dev/null +++ b/Tests/TMDbTests/Domain/Models/ExternalSourceTests.swift @@ -0,0 +1,73 @@ +// +// ExternalSourceTests.swift +// TMDb +// +// Copyright © 2026 Adam Young. +// + +import Foundation +import Testing +@testable import TMDb + +@Suite(.tags(.models)) +struct ExternalSourceTests { + + @Test("IMDb ID rawValue is imdb_id") + func imdbIDRawValue() { + #expect(ExternalSource.imdbID.rawValue == "imdb_id") + } + + @Test("Facebook ID rawValue is facebook_id") + func facebookIDRawValue() { + #expect(ExternalSource.facebookID.rawValue == "facebook_id") + } + + @Test("Instagram ID rawValue is instagram_id") + func instagramIDRawValue() { + #expect(ExternalSource.instagramID.rawValue == "instagram_id") + } + + @Test("Twitter ID rawValue is twitter_id") + func twitterIDRawValue() { + #expect(ExternalSource.twitterID.rawValue == "twitter_id") + } + + @Test("TVDB ID rawValue is tvdb_id") + func tvdbIDRawValue() { + #expect(ExternalSource.tvdbID.rawValue == "tvdb_id") + } + + @Test("TikTok ID rawValue is tiktok_id") + func tiktokIDRawValue() { + #expect(ExternalSource.tiktokID.rawValue == "tiktok_id") + } + + @Test("YouTube ID rawValue is youtube_id") + func youtubeIDRawValue() { + #expect(ExternalSource.youtubeID.rawValue == "youtube_id") + } + + @Test("Wikidata ID rawValue is wikidata_id") + func wikidataIDRawValue() { + #expect(ExternalSource.wikidataID.rawValue == "wikidata_id") + } + + @Test("JSON decoding of ExternalSource", .tags(.decoding)) + func decodeReturnsExternalSource() throws { + let data = Data("{\"source\": \"imdb_id\"}".utf8) + let decoder = JSONDecoder() + + let result = try decoder.decode(MockObject.self, from: data).source + + #expect(result == .imdbID) + } + +} + +extension ExternalSourceTests { + + private struct MockObject: Decodable { + let source: ExternalSource + } + +} diff --git a/Tests/TMDbTests/Domain/Models/FacebookLinkTests.swift b/Tests/TMDbTests/Domain/Models/FacebookLinkTests.swift index a70727fc..b7eb9458 100644 --- a/Tests/TMDbTests/Domain/Models/FacebookLinkTests.swift +++ b/Tests/TMDbTests/Domain/Models/FacebookLinkTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.models)) diff --git a/Tests/TMDbTests/Domain/Models/FindResultsTests.swift b/Tests/TMDbTests/Domain/Models/FindResultsTests.swift new file mode 100644 index 00000000..428d7b3b --- /dev/null +++ b/Tests/TMDbTests/Domain/Models/FindResultsTests.swift @@ -0,0 +1,92 @@ +// +// FindResultsTests.swift +// TMDb +// +// Copyright © 2026 Adam Young. +// + +import Foundation +import Testing +@testable import TMDb + +@Suite(.tags(.models, .decoding)) +struct FindResultsTests { + + @Test("JSON decoding of FindResults") + func decodeReturnsFindResults() throws { + let result = try JSONDecoder.theMovieDatabase.decode( + FindResults.self, + fromResource: "find-results" + ) + + #expect(result.movieResults.count == findResults.movieResults.count) + #expect(result.movieResults.first?.id == findResults.movieResults.first?.id) + #expect(result.personResults == findResults.personResults) + #expect(result.tvResults == findResults.tvResults) + #expect(result.tvSeasonResults == findResults.tvSeasonResults) + #expect(result.tvEpisodeResults == findResults.tvEpisodeResults) + } + +} + +extension FindResultsTests { + + private var findResults: FindResults { + FindResults( + movieResults: [ + Movie( + id: 550, + title: "Fight Club", + tagline: "How much can you know about yourself if you've never been in a fight?", + originalTitle: "Fight Club", + originalLanguage: "en", + overview: + // swiftlint:disable:next line_length + "A ticking-time-bomb insomniac and a slippery soap salesman channel primal male aggression into a shocking new form of therapy.", + runtime: 139, + genres: [ + Genre(id: 18, name: "Drama") + ], + releaseDate: DateFormatter.theMovieDatabase.date(from: "1999-10-12"), + posterPath: nil, + backdropPath: URL(string: "/fCayJrkfRaCRCTh8GqN30f8oyQF.jpg"), + budget: 63_000_000, + revenue: 100_853_753, + homepageURL: nil, + imdbID: "tt0137523", + status: .released, + productionCompanies: [ + ProductionCompany( + id: 508, + name: "Regency Enterprises", + originCountry: "US", + logoPath: URL(string: "/7PzJdsLGlR7oW4J0J5Xcd0pHGRg.png") + ) + ], + productionCountries: [ + ProductionCountry( + countryCode: "US", + name: "United States of America" + ) + ], + spokenLanguages: [ + SpokenLanguage( + languageCode: "en", + name: "English" + ) + ], + popularity: 0.5, + voteAverage: 7.8, + voteCount: 3439, + hasVideo: false, + isAdultOnly: false + ) + ], + personResults: [], + tvResults: [], + tvSeasonResults: [], + tvEpisodeResults: [] + ) + } + +} diff --git a/Tests/TMDbTests/Domain/Models/GenderTests.swift b/Tests/TMDbTests/Domain/Models/GenderTests.swift index 0f38dbd1..bd18c055 100644 --- a/Tests/TMDbTests/Domain/Models/GenderTests.swift +++ b/Tests/TMDbTests/Domain/Models/GenderTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.models)) diff --git a/Tests/TMDbTests/Domain/Models/GenreListTests.swift b/Tests/TMDbTests/Domain/Models/GenreListTests.swift index 7663181d..2a50ee2f 100644 --- a/Tests/TMDbTests/Domain/Models/GenreListTests.swift +++ b/Tests/TMDbTests/Domain/Models/GenreListTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.models)) diff --git a/Tests/TMDbTests/Domain/Models/GenreTests.swift b/Tests/TMDbTests/Domain/Models/GenreTests.swift index 74a3934f..e8375309 100644 --- a/Tests/TMDbTests/Domain/Models/GenreTests.swift +++ b/Tests/TMDbTests/Domain/Models/GenreTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.models)) diff --git a/Tests/TMDbTests/Domain/Models/GuestSessionTests.swift b/Tests/TMDbTests/Domain/Models/GuestSessionTests.swift index fea2b6ab..8757d465 100644 --- a/Tests/TMDbTests/Domain/Models/GuestSessionTests.swift +++ b/Tests/TMDbTests/Domain/Models/GuestSessionTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.models)) diff --git a/Tests/TMDbTests/Domain/Models/IMDbLinkTests.swift b/Tests/TMDbTests/Domain/Models/IMDbLinkTests.swift index db08e164..c884ce85 100644 --- a/Tests/TMDbTests/Domain/Models/IMDbLinkTests.swift +++ b/Tests/TMDbTests/Domain/Models/IMDbLinkTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.models)) diff --git a/Tests/TMDbTests/Domain/Models/ImageCollectionTests.swift b/Tests/TMDbTests/Domain/Models/ImageCollectionTests.swift index b2ff0ea5..c1cbe942 100644 --- a/Tests/TMDbTests/Domain/Models/ImageCollectionTests.swift +++ b/Tests/TMDbTests/Domain/Models/ImageCollectionTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.models)) diff --git a/Tests/TMDbTests/Domain/Models/ImageMetadataTests.swift b/Tests/TMDbTests/Domain/Models/ImageMetadataTests.swift index 03d5e953..80beeff4 100644 --- a/Tests/TMDbTests/Domain/Models/ImageMetadataTests.swift +++ b/Tests/TMDbTests/Domain/Models/ImageMetadataTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.models)) diff --git a/Tests/TMDbTests/Domain/Models/ImagesConfiguration+URLsTests.swift b/Tests/TMDbTests/Domain/Models/ImagesConfiguration+URLsTests.swift index 7910c683..d89805c7 100644 --- a/Tests/TMDbTests/Domain/Models/ImagesConfiguration+URLsTests.swift +++ b/Tests/TMDbTests/Domain/Models/ImagesConfiguration+URLsTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb // swiftlint:disable type_body_length @@ -49,7 +48,8 @@ struct ImagesConfigurationURLsTests { func backdropURLWhenNoWidthIsGivenReturnsOriginalURL() throws { let path = try #require(URL(string: "/image.jpg")) let expectedResult = try #require( - URL(string: "https://image.tmdb.org/t/p/original/image.jpg")) + URL(string: "https://image.tmdb.org/t/p/original/image.jpg") + ) let result = configuration.backdropURL(for: path) @@ -60,7 +60,8 @@ struct ImagesConfigurationURLsTests { func backdropURLWhenWidthIsVeryLargeReturnsOriginalURL() throws { let path = try #require(URL(string: "/image.jpg")) let expectedResult = try #require( - URL(string: "https://image.tmdb.org/t/p/original/image.jpg")) + URL(string: "https://image.tmdb.org/t/p/original/image.jpg") + ) let result = configuration.backdropURL(for: path, idealWidth: 100_000) @@ -101,7 +102,8 @@ struct ImagesConfigurationURLsTests { func backdropURLWhenConfigurationIsEmptyReturnsOriginalURL() throws { let path = try #require(URL(string: "/image.jpg")) let expectedResult = try #require( - URL(string: "https://image.tmdb.org/t/p/original/image.jpg")) + URL(string: "https://image.tmdb.org/t/p/original/image.jpg") + ) let result = emptyConfiguration.backdropURL(for: path) @@ -112,7 +114,8 @@ struct ImagesConfigurationURLsTests { func logoURLWhenNoWidthIsGivenReturnsOriginalURL() throws { let path = try #require(URL(string: "/image.jpg")) let expectedResult = try #require( - URL(string: "https://image.tmdb.org/t/p/original/image.jpg")) + URL(string: "https://image.tmdb.org/t/p/original/image.jpg") + ) let result = configuration.logoURL(for: path) @@ -123,7 +126,8 @@ struct ImagesConfigurationURLsTests { func logoURLWhenWidthIsVeryLargeReturnsOriginalURL() throws { let path = try #require(URL(string: "/image.jpg")) let expectedResult = try #require( - URL(string: "https://image.tmdb.org/t/p/original/image.jpg")) + URL(string: "https://image.tmdb.org/t/p/original/image.jpg") + ) let result = configuration.logoURL(for: path, idealWidth: 100_000) @@ -164,7 +168,8 @@ struct ImagesConfigurationURLsTests { func logoURLWhenConfigurationIsEmptyReturnsOriginalURL() throws { let path = try #require(URL(string: "/image.jpg")) let expectedResult = try #require( - URL(string: "https://image.tmdb.org/t/p/original/image.jpg")) + URL(string: "https://image.tmdb.org/t/p/original/image.jpg") + ) let result = emptyConfiguration.logoURL(for: path) @@ -175,7 +180,8 @@ struct ImagesConfigurationURLsTests { func posterURLWhenNoWidthIsGivenReturnsOriginalURL() throws { let path = try #require(URL(string: "/image.jpg")) let expectedResult = try #require( - URL(string: "https://image.tmdb.org/t/p/original/image.jpg")) + URL(string: "https://image.tmdb.org/t/p/original/image.jpg") + ) let result = configuration.posterURL(for: path) @@ -186,7 +192,8 @@ struct ImagesConfigurationURLsTests { func posterURLWhenWidthIsVeryLargeReturnsOriginalURL() throws { let path = try #require(URL(string: "/image.jpg")) let expectedResult = try #require( - URL(string: "https://image.tmdb.org/t/p/original/image.jpg")) + URL(string: "https://image.tmdb.org/t/p/original/image.jpg") + ) let result = configuration.posterURL(for: path, idealWidth: 100_000) @@ -227,7 +234,8 @@ struct ImagesConfigurationURLsTests { func posterURLWhenConfigurationIsEmptyReturnsOriginalURL() throws { let path = try #require(URL(string: "/image.jpg")) let expectedResult = try #require( - URL(string: "https://image.tmdb.org/t/p/original/image.jpg")) + URL(string: "https://image.tmdb.org/t/p/original/image.jpg") + ) let result = emptyConfiguration.posterURL(for: path) @@ -238,7 +246,8 @@ struct ImagesConfigurationURLsTests { func profileURLWhenNoWidthIsGivenReturnsOriginalURL() throws { let path = try #require(URL(string: "/image.jpg")) let expectedResult = try #require( - URL(string: "https://image.tmdb.org/t/p/original/image.jpg")) + URL(string: "https://image.tmdb.org/t/p/original/image.jpg") + ) let result = configuration.profileURL(for: path) @@ -249,7 +258,8 @@ struct ImagesConfigurationURLsTests { func profileURLWhenWidthIsVeryLargeReturnsOriginalURL() throws { let path = try #require(URL(string: "/image.jpg")) let expectedResult = try #require( - URL(string: "https://image.tmdb.org/t/p/original/image.jpg")) + URL(string: "https://image.tmdb.org/t/p/original/image.jpg") + ) let result = configuration.profileURL(for: path, idealWidth: 100_000) @@ -290,7 +300,8 @@ struct ImagesConfigurationURLsTests { func profileURLWhenConfigurationIsEmptyReturnsOriginalURL() throws { let path = try #require(URL(string: "/image.jpg")) let expectedResult = try #require( - URL(string: "https://image.tmdb.org/t/p/original/image.jpg")) + URL(string: "https://image.tmdb.org/t/p/original/image.jpg") + ) let result = emptyConfiguration.profileURL(for: path) @@ -301,7 +312,8 @@ struct ImagesConfigurationURLsTests { func stillURLWhenNoWidthIsGivenReturnsOriginalURL() throws { let path = try #require(URL(string: "/image.jpg")) let expectedResult = try #require( - URL(string: "https://image.tmdb.org/t/p/original/image.jpg")) + URL(string: "https://image.tmdb.org/t/p/original/image.jpg") + ) let result = configuration.stillURL(for: path) @@ -312,7 +324,8 @@ struct ImagesConfigurationURLsTests { func stillURLWhenWidthIsVeryLargeReturnsOriginalURL() throws { let path = try #require(URL(string: "/image.jpg")) let expectedResult = try #require( - URL(string: "https://image.tmdb.org/t/p/original/image.jpg")) + URL(string: "https://image.tmdb.org/t/p/original/image.jpg") + ) let result = configuration.stillURL(for: path, idealWidth: 100_000) @@ -353,7 +366,8 @@ struct ImagesConfigurationURLsTests { func stillURLWhenConfigurationIsEmptyReturnsOriginalURL() throws { let path = try #require(URL(string: "/image.jpg")) let expectedResult = try #require( - URL(string: "https://image.tmdb.org/t/p/original/image.jpg")) + URL(string: "https://image.tmdb.org/t/p/original/image.jpg") + ) let result = emptyConfiguration.stillURL(for: path) diff --git a/Tests/TMDbTests/Domain/Models/ImagesConfigurationTests.swift b/Tests/TMDbTests/Domain/Models/ImagesConfigurationTests.swift index fbca5d6a..b14772e7 100644 --- a/Tests/TMDbTests/Domain/Models/ImagesConfigurationTests.swift +++ b/Tests/TMDbTests/Domain/Models/ImagesConfigurationTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.models)) diff --git a/Tests/TMDbTests/Domain/Models/InstagramLinkTests.swift b/Tests/TMDbTests/Domain/Models/InstagramLinkTests.swift index 07d9db94..5044b145 100644 --- a/Tests/TMDbTests/Domain/Models/InstagramLinkTests.swift +++ b/Tests/TMDbTests/Domain/Models/InstagramLinkTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.models)) diff --git a/Tests/TMDbTests/Domain/Models/KeywordTests.swift b/Tests/TMDbTests/Domain/Models/KeywordTests.swift index b806f54a..21bb0275 100644 --- a/Tests/TMDbTests/Domain/Models/KeywordTests.swift +++ b/Tests/TMDbTests/Domain/Models/KeywordTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.models)) diff --git a/Tests/TMDbTests/Domain/Models/LanguageTests.swift b/Tests/TMDbTests/Domain/Models/LanguageTests.swift index ce119132..a869914c 100644 --- a/Tests/TMDbTests/Domain/Models/LanguageTests.swift +++ b/Tests/TMDbTests/Domain/Models/LanguageTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.models)) diff --git a/Tests/TMDbTests/Domain/Models/MediaListItemStatusTests.swift b/Tests/TMDbTests/Domain/Models/MediaListItemStatusTests.swift index 89b59955..85919650 100644 --- a/Tests/TMDbTests/Domain/Models/MediaListItemStatusTests.swift +++ b/Tests/TMDbTests/Domain/Models/MediaListItemStatusTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.models)) diff --git a/Tests/TMDbTests/Domain/Models/MediaListItemTests.swift b/Tests/TMDbTests/Domain/Models/MediaListItemTests.swift index 40009929..f8ed9e04 100644 --- a/Tests/TMDbTests/Domain/Models/MediaListItemTests.swift +++ b/Tests/TMDbTests/Domain/Models/MediaListItemTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.models)) diff --git a/Tests/TMDbTests/Domain/Models/MediaListTests.swift b/Tests/TMDbTests/Domain/Models/MediaListTests.swift index bb9cae63..9b3a610d 100644 --- a/Tests/TMDbTests/Domain/Models/MediaListTests.swift +++ b/Tests/TMDbTests/Domain/Models/MediaListTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.models)) diff --git a/Tests/TMDbTests/Domain/Models/MediaPageableListTests.swift b/Tests/TMDbTests/Domain/Models/MediaPageableListTests.swift index 7732801b..fcaa09a1 100644 --- a/Tests/TMDbTests/Domain/Models/MediaPageableListTests.swift +++ b/Tests/TMDbTests/Domain/Models/MediaPageableListTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.models)) diff --git a/Tests/TMDbTests/Domain/Models/MediaTests.swift b/Tests/TMDbTests/Domain/Models/MediaTests.swift index bfb1f80e..fbcbdb93 100644 --- a/Tests/TMDbTests/Domain/Models/MediaTests.swift +++ b/Tests/TMDbTests/Domain/Models/MediaTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.models)) diff --git a/Tests/TMDbTests/Domain/Models/MovieCastCreditTests.swift b/Tests/TMDbTests/Domain/Models/MovieCastCreditTests.swift index b48fef07..a2df3409 100644 --- a/Tests/TMDbTests/Domain/Models/MovieCastCreditTests.swift +++ b/Tests/TMDbTests/Domain/Models/MovieCastCreditTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.models)) diff --git a/Tests/TMDbTests/Domain/Models/MovieCrewCreditTests.swift b/Tests/TMDbTests/Domain/Models/MovieCrewCreditTests.swift index c02cef35..471ebf0c 100644 --- a/Tests/TMDbTests/Domain/Models/MovieCrewCreditTests.swift +++ b/Tests/TMDbTests/Domain/Models/MovieCrewCreditTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.models)) diff --git a/Tests/TMDbTests/Domain/Models/MovieExternalLinksCollectionTests.swift b/Tests/TMDbTests/Domain/Models/MovieExternalLinksCollectionTests.swift index 1c2d2b92..c5fcf0fc 100644 --- a/Tests/TMDbTests/Domain/Models/MovieExternalLinksCollectionTests.swift +++ b/Tests/TMDbTests/Domain/Models/MovieExternalLinksCollectionTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.models)) diff --git a/Tests/TMDbTests/Domain/Models/MovieListItemTests.swift b/Tests/TMDbTests/Domain/Models/MovieListItemTests.swift index 9063fee9..b919be56 100644 --- a/Tests/TMDbTests/Domain/Models/MovieListItemTests.swift +++ b/Tests/TMDbTests/Domain/Models/MovieListItemTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.models)) diff --git a/Tests/TMDbTests/Domain/Models/MoviePageableListTests.swift b/Tests/TMDbTests/Domain/Models/MoviePageableListTests.swift index 343c8aef..18402818 100644 --- a/Tests/TMDbTests/Domain/Models/MoviePageableListTests.swift +++ b/Tests/TMDbTests/Domain/Models/MoviePageableListTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.models)) diff --git a/Tests/TMDbTests/Domain/Models/MovieReleaseDatesByCountryTests.swift b/Tests/TMDbTests/Domain/Models/MovieReleaseDatesByCountryTests.swift index ed27a785..865e2f44 100644 --- a/Tests/TMDbTests/Domain/Models/MovieReleaseDatesByCountryTests.swift +++ b/Tests/TMDbTests/Domain/Models/MovieReleaseDatesByCountryTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.models)) diff --git a/Tests/TMDbTests/Domain/Models/MovieTests.swift b/Tests/TMDbTests/Domain/Models/MovieTests.swift index 10fd4415..fbdf5f13 100644 --- a/Tests/TMDbTests/Domain/Models/MovieTests.swift +++ b/Tests/TMDbTests/Domain/Models/MovieTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.models)) diff --git a/Tests/TMDbTests/Domain/Models/NetworkAlternativeNameTests.swift b/Tests/TMDbTests/Domain/Models/NetworkAlternativeNameTests.swift new file mode 100644 index 00000000..5b96b2b2 --- /dev/null +++ b/Tests/TMDbTests/Domain/Models/NetworkAlternativeNameTests.swift @@ -0,0 +1,45 @@ +// +// NetworkAlternativeNameTests.swift +// TMDb +// +// Copyright © 2026 Adam Young. +// + +import Foundation +import Testing +@testable import TMDb + +@Suite(.tags(.models, .decoding)) +struct NetworkAlternativeNameTests { + + @Test("JSON decoding of NetworkAlternativeName") + func decodeReturnsNetworkAlternativeName() throws { + let data = Data( + """ + { + "name": "HBO Network", + "type": "" + } + """.utf8 + ) + + let result = try JSONDecoder.theMovieDatabase.decode( + NetworkAlternativeName.self, + from: data + ) + + #expect(result == networkAlternativeName) + } + +} + +extension NetworkAlternativeNameTests { + + private var networkAlternativeName: NetworkAlternativeName { + NetworkAlternativeName( + name: "HBO Network", + type: "" + ) + } + +} diff --git a/Tests/TMDbTests/Domain/Models/NetworkLogoTests.swift b/Tests/TMDbTests/Domain/Models/NetworkLogoTests.swift new file mode 100644 index 00000000..10a2911f --- /dev/null +++ b/Tests/TMDbTests/Domain/Models/NetworkLogoTests.swift @@ -0,0 +1,38 @@ +// +// NetworkLogoTests.swift +// TMDb +// +// Copyright © 2026 Adam Young. +// + +import Foundation +import Testing +@testable import TMDb + +@Suite(.tags(.models, .decoding)) +struct NetworkLogoTests { + + @Test("JSON decoding of NetworkLogo") + func decodeReturnsNetworkLogo() throws { + let expectedResult = try networkLogo() + + let result = try JSONDecoder.theMovieDatabase.decode( + NetworkLogo.self, + fromResource: "network-logo" + ) + + #expect(result == expectedResult) + } + +} + +extension NetworkLogoTests { + + private func networkLogo() throws -> NetworkLogo { + try NetworkLogo( + filePath: #require(URL(string: "/tuomPhY2UtuPTqqFnKMVHvSb724.png")), + aspectRatio: 3.73134328358209 + ) + } + +} diff --git a/Tests/TMDbTests/Domain/Models/NetworkTests.swift b/Tests/TMDbTests/Domain/Models/NetworkTests.swift index a286c2dc..affcff25 100644 --- a/Tests/TMDbTests/Domain/Models/NetworkTests.swift +++ b/Tests/TMDbTests/Domain/Models/NetworkTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.models)) diff --git a/Tests/TMDbTests/Domain/Models/PageableListResultTests.swift b/Tests/TMDbTests/Domain/Models/PageableListResultTests.swift index 08a65234..496eb431 100644 --- a/Tests/TMDbTests/Domain/Models/PageableListResultTests.swift +++ b/Tests/TMDbTests/Domain/Models/PageableListResultTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.models)) diff --git a/Tests/TMDbTests/Domain/Models/PersonCombinedCreditsTests.swift b/Tests/TMDbTests/Domain/Models/PersonCombinedCreditsTests.swift index 2cc2eaee..f2916f97 100644 --- a/Tests/TMDbTests/Domain/Models/PersonCombinedCreditsTests.swift +++ b/Tests/TMDbTests/Domain/Models/PersonCombinedCreditsTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.models)) @@ -68,7 +67,7 @@ struct PersonCombinedCreditsTests { } @Test("allShows contains a unique list of cast and crew TV series") - func allShowsContainsUniqueListOfCastAndCrewTVSeries() throws { + func allShowsContainsUniqueListOfCastAndCrewTVSeries() { let credits = PersonCombinedCredits( id: 1, cast: [ @@ -130,7 +129,8 @@ struct PersonCombinedCreditsTests { episodeCount: 2, character: "", creditID: "525333fb19c295794002c720" - )), + ) + ), ShowCastCredit.movie( MovieCastCredit( id: 109_091, @@ -151,7 +151,8 @@ struct PersonCombinedCreditsTests { character: "Westray", creditID: "52fe4aaac3a36847f81db47d", order: 2 - )) + ) + ) ], crew: [ ShowCrewCredit.tvSeries( @@ -175,7 +176,8 @@ struct PersonCombinedCreditsTests { job: "Executive Producer", department: "Production", creditID: "58cf92ae9251415a7d0339c3" - )), + ) + ), ShowCrewCredit.movie( MovieCrewCredit( id: 174_349, @@ -196,7 +198,8 @@ struct PersonCombinedCreditsTests { job: "Executive Producer", department: "Production", creditID: "52fe4d49c3a36847f8258cf3" - )) + ) + ) ] ) diff --git a/Tests/TMDbTests/Domain/Models/PersonExternalLinksCollectionTests.swift b/Tests/TMDbTests/Domain/Models/PersonExternalLinksCollectionTests.swift index f357f98a..f53f7447 100644 --- a/Tests/TMDbTests/Domain/Models/PersonExternalLinksCollectionTests.swift +++ b/Tests/TMDbTests/Domain/Models/PersonExternalLinksCollectionTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.models)) diff --git a/Tests/TMDbTests/Domain/Models/PersonImageCollectionTests.swift b/Tests/TMDbTests/Domain/Models/PersonImageCollectionTests.swift index 2392bbec..bdd8a5a3 100644 --- a/Tests/TMDbTests/Domain/Models/PersonImageCollectionTests.swift +++ b/Tests/TMDbTests/Domain/Models/PersonImageCollectionTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.models)) diff --git a/Tests/TMDbTests/Domain/Models/PersonListItemTests.swift b/Tests/TMDbTests/Domain/Models/PersonListItemTests.swift new file mode 100644 index 00000000..ebdf052f --- /dev/null +++ b/Tests/TMDbTests/Domain/Models/PersonListItemTests.swift @@ -0,0 +1,72 @@ +// +// PersonListItemTests.swift +// TMDb +// +// Copyright © 2026 Adam Young. +// + +import Foundation +import Testing +@testable import TMDb + +@Suite(.tags(.models, .decoding)) +struct PersonListItemTests { + + @Test("JSON decoding of PersonListItem") + func decodeReturnsPersonListItem() throws { + let result = try JSONDecoder.theMovieDatabase.decode( + PersonListItem.self, + fromResource: "person-list-item" + ) + + #expect(result.id == personListItem.id) + #expect(result.name == personListItem.name) + #expect(result.originalName == personListItem.originalName) + #expect(result.knownForDepartment == personListItem.knownForDepartment) + #expect(result.gender == personListItem.gender) + #expect(result.profilePath == personListItem.profilePath) + #expect(result.popularity == personListItem.popularity) + #expect(result.isAdultOnly == personListItem.isAdultOnly) + #expect(result.knownFor?.count == personListItem.knownFor?.count) + } + +} + +extension PersonListItemTests { + + private var personListItem: PersonListItem { + PersonListItem( + id: 287, + name: "Brad Pitt", + originalName: "William Bradley Pitt", + knownForDepartment: "Acting", + gender: .male, + profilePath: URL(string: "/kU3B75TyRiCgE270EyZnHjfivoq.jpg"), + popularity: 65.732, + knownFor: [ + .movie( + MovieListItem( + id: 550, + title: "Fight Club", + originalTitle: "Fight Club", + originalLanguage: "en", + overview: + // swiftlint:disable:next line_length + "A ticking-time-bomb insomniac and a slippery soap salesman channel primal male aggression into a shocking new form of therapy.", + genreIDs: [27], + releaseDate: DateFormatter.theMovieDatabase.date(from: "1999-10-12"), + posterPath: URL(string: "/uGyiewQnDHPuiHN9V4k2t9QBPnh.jpg"), + backdropPath: URL(string: "/tkHQ7tnYYUEnqlrKuhufIsSVToU.jpg"), + popularity: 1080.713, + voteAverage: 7.8, + voteCount: 3439, + hasVideo: false, + isAdultOnly: false + ) + ) + ], + isAdultOnly: false + ) + } + +} diff --git a/Tests/TMDbTests/Domain/Models/PersonMovieCreditsTests.swift b/Tests/TMDbTests/Domain/Models/PersonMovieCreditsTests.swift index 3c593ef4..bce641d3 100644 --- a/Tests/TMDbTests/Domain/Models/PersonMovieCreditsTests.swift +++ b/Tests/TMDbTests/Domain/Models/PersonMovieCreditsTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.models)) diff --git a/Tests/TMDbTests/Domain/Models/PersonPageableListTests.swift b/Tests/TMDbTests/Domain/Models/PersonPageableListTests.swift index c001ca3d..18c543c5 100644 --- a/Tests/TMDbTests/Domain/Models/PersonPageableListTests.swift +++ b/Tests/TMDbTests/Domain/Models/PersonPageableListTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.models)) diff --git a/Tests/TMDbTests/Domain/Models/PersonTVSeriesCreditsTests.swift b/Tests/TMDbTests/Domain/Models/PersonTVSeriesCreditsTests.swift index acf3a871..07f8c90f 100644 --- a/Tests/TMDbTests/Domain/Models/PersonTVSeriesCreditsTests.swift +++ b/Tests/TMDbTests/Domain/Models/PersonTVSeriesCreditsTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.models)) diff --git a/Tests/TMDbTests/Domain/Models/PersonTests.swift b/Tests/TMDbTests/Domain/Models/PersonTests.swift index 97e7e345..e0d938ea 100644 --- a/Tests/TMDbTests/Domain/Models/PersonTests.swift +++ b/Tests/TMDbTests/Domain/Models/PersonTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.models)) diff --git a/Tests/TMDbTests/Domain/Models/ProductionCompanyTests.swift b/Tests/TMDbTests/Domain/Models/ProductionCompanyTests.swift index 9ccfd948..5539534d 100644 --- a/Tests/TMDbTests/Domain/Models/ProductionCompanyTests.swift +++ b/Tests/TMDbTests/Domain/Models/ProductionCompanyTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.models)) diff --git a/Tests/TMDbTests/Domain/Models/ProductionCountryTests.swift b/Tests/TMDbTests/Domain/Models/ProductionCountryTests.swift index b6cc6bc8..e52da53e 100644 --- a/Tests/TMDbTests/Domain/Models/ProductionCountryTests.swift +++ b/Tests/TMDbTests/Domain/Models/ProductionCountryTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.models)) diff --git a/Tests/TMDbTests/Domain/Models/ReleaseDateTests.swift b/Tests/TMDbTests/Domain/Models/ReleaseDateTests.swift index bcc89895..628c92e7 100644 --- a/Tests/TMDbTests/Domain/Models/ReleaseDateTests.swift +++ b/Tests/TMDbTests/Domain/Models/ReleaseDateTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.models)) @@ -18,8 +17,7 @@ struct ReleaseDateTests { let formatter = ISO8601DateFormatter() formatter.formatOptions = [.withInternetDateTime, .withFractionalSeconds] - // swiftlint:disable:next force_unwrapping - let releaseDate = formatter.date(from: "1999-10-15T00:00:00.000Z")! + let releaseDate = try #require(formatter.date(from: "1999-10-15T00:00:00.000Z")) let expectedResult = ReleaseDate( certification: "R", languageCode: "", diff --git a/Tests/TMDbTests/Domain/Models/ReleaseTypeTests.swift b/Tests/TMDbTests/Domain/Models/ReleaseTypeTests.swift index 4b4a0fde..136def15 100644 --- a/Tests/TMDbTests/Domain/Models/ReleaseTypeTests.swift +++ b/Tests/TMDbTests/Domain/Models/ReleaseTypeTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.models)) diff --git a/Tests/TMDbTests/Domain/Models/ReviewPageableListTests.swift b/Tests/TMDbTests/Domain/Models/ReviewPageableListTests.swift index 8b9f9adc..f97636e9 100644 --- a/Tests/TMDbTests/Domain/Models/ReviewPageableListTests.swift +++ b/Tests/TMDbTests/Domain/Models/ReviewPageableListTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.models)) diff --git a/Tests/TMDbTests/Domain/Models/ReviewTests.swift b/Tests/TMDbTests/Domain/Models/ReviewTests.swift index f591d502..49719b62 100644 --- a/Tests/TMDbTests/Domain/Models/ReviewTests.swift +++ b/Tests/TMDbTests/Domain/Models/ReviewTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.models)) diff --git a/Tests/TMDbTests/Domain/Models/SessionTests.swift b/Tests/TMDbTests/Domain/Models/SessionTests.swift index bb26cf24..1b9edc3c 100644 --- a/Tests/TMDbTests/Domain/Models/SessionTests.swift +++ b/Tests/TMDbTests/Domain/Models/SessionTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.models)) diff --git a/Tests/TMDbTests/Domain/Models/ShowCastCreditTests.swift b/Tests/TMDbTests/Domain/Models/ShowCastCreditTests.swift index 4d22b14b..54d11ff1 100644 --- a/Tests/TMDbTests/Domain/Models/ShowCastCreditTests.swift +++ b/Tests/TMDbTests/Domain/Models/ShowCastCreditTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.models)) diff --git a/Tests/TMDbTests/Domain/Models/ShowCreditsTests.swift b/Tests/TMDbTests/Domain/Models/ShowCreditsTests.swift index 614c9c45..89ebbc5a 100644 --- a/Tests/TMDbTests/Domain/Models/ShowCreditsTests.swift +++ b/Tests/TMDbTests/Domain/Models/ShowCreditsTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.models)) diff --git a/Tests/TMDbTests/Domain/Models/ShowCrewCreditTests.swift b/Tests/TMDbTests/Domain/Models/ShowCrewCreditTests.swift index 019a9d6b..e79f1767 100644 --- a/Tests/TMDbTests/Domain/Models/ShowCrewCreditTests.swift +++ b/Tests/TMDbTests/Domain/Models/ShowCrewCreditTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.models)) diff --git a/Tests/TMDbTests/Domain/Models/ShowTests.swift b/Tests/TMDbTests/Domain/Models/ShowTests.swift index a292e6f5..7fdd0918 100644 --- a/Tests/TMDbTests/Domain/Models/ShowTests.swift +++ b/Tests/TMDbTests/Domain/Models/ShowTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.models)) diff --git a/Tests/TMDbTests/Domain/Models/ShowTypeTests.swift b/Tests/TMDbTests/Domain/Models/ShowTypeTests.swift index 754316f3..fe46a7c1 100644 --- a/Tests/TMDbTests/Domain/Models/ShowTypeTests.swift +++ b/Tests/TMDbTests/Domain/Models/ShowTypeTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.models)) diff --git a/Tests/TMDbTests/Domain/Models/ShowWatchProviderTests.swift b/Tests/TMDbTests/Domain/Models/ShowWatchProviderTests.swift new file mode 100644 index 00000000..68228e87 --- /dev/null +++ b/Tests/TMDbTests/Domain/Models/ShowWatchProviderTests.swift @@ -0,0 +1,67 @@ +// +// ShowWatchProviderTests.swift +// TMDb +// +// Copyright © 2026 Adam Young. +// + +import Foundation +import Testing +@testable import TMDb + +@Suite(.tags(.models, .decoding)) +struct ShowWatchProviderTests { + + @Test("JSON decoding of ShowWatchProvider") + func decodeReturnsShowWatchProvider() throws { + let result = try JSONDecoder.theMovieDatabase.decode( + ShowWatchProvider.self, + fromResource: "show-watch-provider" + ) + + #expect(result.link == showWatchProvider.link) + #expect(result.flatRate == showWatchProvider.flatRate) + #expect(result.buy == showWatchProvider.buy) + #expect(result.rent == showWatchProvider.rent) + #expect(result.free == showWatchProvider.free) + } + +} + +extension ShowWatchProviderTests { + + private var showWatchProvider: ShowWatchProvider { + ShowWatchProvider( + link: "https://www.themoviedb.org/movie/550-fight-club/watch", + free: [ + WatchProvider( + id: 300, + name: "Pluto TV", + logoPath: URL(string: "/aS2zvJWn9mwiCOeaaCkIh4wleZS.jpg") + ) + ], + flatRate: [ + WatchProvider( + id: 8, + name: "Netflix", + logoPath: URL(string: "/t2yyOv40HZeVlLjYsCsPHnWLk4W.jpg") + ) + ], + buy: [ + WatchProvider( + id: 2, + name: "Apple TV", + logoPath: URL(string: "/peURlLlr8jggOwK53fJ5wdQl05y.jpg") + ) + ], + rent: [ + WatchProvider( + id: 2, + name: "Apple TV", + logoPath: URL(string: "/peURlLlr8jggOwK53fJ5wdQl05y.jpg") + ) + ] + ) + } + +} diff --git a/Tests/TMDbTests/Domain/Models/ShowWatchProvidersByCountryTests.swift b/Tests/TMDbTests/Domain/Models/ShowWatchProvidersByCountryTests.swift index 8f059d69..13a73620 100644 --- a/Tests/TMDbTests/Domain/Models/ShowWatchProvidersByCountryTests.swift +++ b/Tests/TMDbTests/Domain/Models/ShowWatchProvidersByCountryTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.models)) diff --git a/Tests/TMDbTests/Domain/Models/SpokenLanguageTests.swift b/Tests/TMDbTests/Domain/Models/SpokenLanguageTests.swift index b6c9d00c..153f8397 100644 --- a/Tests/TMDbTests/Domain/Models/SpokenLanguageTests.swift +++ b/Tests/TMDbTests/Domain/Models/SpokenLanguageTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.models)) diff --git a/Tests/TMDbTests/Domain/Models/StatusTests.swift b/Tests/TMDbTests/Domain/Models/StatusTests.swift index 539f1713..f9c46a94 100644 --- a/Tests/TMDbTests/Domain/Models/StatusTests.swift +++ b/Tests/TMDbTests/Domain/Models/StatusTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.models)) diff --git a/Tests/TMDbTests/Domain/Models/TMDbErrorTMDbAPIErrorTests.swift b/Tests/TMDbTests/Domain/Models/TMDbErrorTMDbAPIErrorTests.swift index f3a09e7f..35450ab4 100644 --- a/Tests/TMDbTests/Domain/Models/TMDbErrorTMDbAPIErrorTests.swift +++ b/Tests/TMDbTests/Domain/Models/TMDbErrorTMDbAPIErrorTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.models)) diff --git a/Tests/TMDbTests/Domain/Models/TMDbErrorTests.swift b/Tests/TMDbTests/Domain/Models/TMDbErrorTests.swift index 26f9f7c9..f4f270fb 100644 --- a/Tests/TMDbTests/Domain/Models/TMDbErrorTests.swift +++ b/Tests/TMDbTests/Domain/Models/TMDbErrorTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.models)) diff --git a/Tests/TMDbTests/Domain/Models/TMDbStatusResponseTests.swift b/Tests/TMDbTests/Domain/Models/TMDbStatusResponseTests.swift index 18aab8e3..d551e1da 100644 --- a/Tests/TMDbTests/Domain/Models/TMDbStatusResponseTests.swift +++ b/Tests/TMDbTests/Domain/Models/TMDbStatusResponseTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.models)) diff --git a/Tests/TMDbTests/Domain/Models/TVEpisodeAirDateTests.swift b/Tests/TMDbTests/Domain/Models/TVEpisodeAirDateTests.swift index 01a77e59..dee859ed 100644 --- a/Tests/TMDbTests/Domain/Models/TVEpisodeAirDateTests.swift +++ b/Tests/TMDbTests/Domain/Models/TVEpisodeAirDateTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.models)) diff --git a/Tests/TMDbTests/Domain/Models/TVEpisodeImageCollectionTests.swift b/Tests/TMDbTests/Domain/Models/TVEpisodeImageCollectionTests.swift index 6d2049fb..8c0f888a 100644 --- a/Tests/TMDbTests/Domain/Models/TVEpisodeImageCollectionTests.swift +++ b/Tests/TMDbTests/Domain/Models/TVEpisodeImageCollectionTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.models)) diff --git a/Tests/TMDbTests/Domain/Models/TVEpisodeTests.swift b/Tests/TMDbTests/Domain/Models/TVEpisodeTests.swift index b34fa7a7..b27d4d87 100644 --- a/Tests/TMDbTests/Domain/Models/TVEpisodeTests.swift +++ b/Tests/TMDbTests/Domain/Models/TVEpisodeTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.models)) diff --git a/Tests/TMDbTests/Domain/Models/TVSeasonAggregateCreditsTests.swift b/Tests/TMDbTests/Domain/Models/TVSeasonAggregateCreditsTests.swift index b98e7ac5..f4cc67b2 100644 --- a/Tests/TMDbTests/Domain/Models/TVSeasonAggregateCreditsTests.swift +++ b/Tests/TMDbTests/Domain/Models/TVSeasonAggregateCreditsTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.models)) diff --git a/Tests/TMDbTests/Domain/Models/TVSeasonImageCollectionTests.swift b/Tests/TMDbTests/Domain/Models/TVSeasonImageCollectionTests.swift new file mode 100644 index 00000000..5e0a910d --- /dev/null +++ b/Tests/TMDbTests/Domain/Models/TVSeasonImageCollectionTests.swift @@ -0,0 +1,48 @@ +// +// TVSeasonImageCollectionTests.swift +// TMDb +// +// Copyright © 2026 Adam Young. +// + +import Foundation +import Testing +@testable import TMDb + +@Suite(.tags(.models, .decoding)) +struct TVSeasonImageCollectionTests { + + @Test("JSON decoding of TVSeasonImageCollection") + func decodeReturnsTVSeasonImageCollection() throws { + let expectedResult = try tvSeasonImageCollection() + let result = try JSONDecoder.theMovieDatabase.decode( + TVSeasonImageCollection.self, + fromResource: "tv-season-image-collection" + ) + + #expect(result.id == expectedResult.id) + #expect(result.posters == expectedResult.posters) + } + +} + +extension TVSeasonImageCollectionTests { + + private func tvSeasonImageCollection() throws -> TVSeasonImageCollection { + try TVSeasonImageCollection( + id: 3624, + posters: [ + ImageMetadata( + filePath: #require(URL(string: "/fCayJrkfRaCRCTh8GqN30f8oyQF.jpg")), + width: 1280, + height: 720, + aspectRatio: 1.77777777777778, + voteAverage: 5.7, + voteCount: 957, + languageCode: "en" + ) + ] + ) + } + +} diff --git a/Tests/TMDbTests/Domain/Models/TVSeasonTests.swift b/Tests/TMDbTests/Domain/Models/TVSeasonTests.swift index a4ee16e0..95765d7c 100644 --- a/Tests/TMDbTests/Domain/Models/TVSeasonTests.swift +++ b/Tests/TMDbTests/Domain/Models/TVSeasonTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.models)) diff --git a/Tests/TMDbTests/Domain/Models/TVSeriesAggregateCreditsTests.swift b/Tests/TMDbTests/Domain/Models/TVSeriesAggregateCreditsTests.swift index 62f6fedf..c501755b 100644 --- a/Tests/TMDbTests/Domain/Models/TVSeriesAggregateCreditsTests.swift +++ b/Tests/TMDbTests/Domain/Models/TVSeriesAggregateCreditsTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.models)) diff --git a/Tests/TMDbTests/Domain/Models/TVSeriesCastCreditTests.swift b/Tests/TMDbTests/Domain/Models/TVSeriesCastCreditTests.swift index 016e1ac5..8041d2f2 100644 --- a/Tests/TMDbTests/Domain/Models/TVSeriesCastCreditTests.swift +++ b/Tests/TMDbTests/Domain/Models/TVSeriesCastCreditTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.models)) diff --git a/Tests/TMDbTests/Domain/Models/TVSeriesCrewCreditTests.swift b/Tests/TMDbTests/Domain/Models/TVSeriesCrewCreditTests.swift index e6d665b6..a9f6dad8 100644 --- a/Tests/TMDbTests/Domain/Models/TVSeriesCrewCreditTests.swift +++ b/Tests/TMDbTests/Domain/Models/TVSeriesCrewCreditTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.models)) diff --git a/Tests/TMDbTests/Domain/Models/TVSeriesExternalLinksCollectionTests.swift b/Tests/TMDbTests/Domain/Models/TVSeriesExternalLinksCollectionTests.swift index 4363efd0..6a303758 100644 --- a/Tests/TMDbTests/Domain/Models/TVSeriesExternalLinksCollectionTests.swift +++ b/Tests/TMDbTests/Domain/Models/TVSeriesExternalLinksCollectionTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.models)) diff --git a/Tests/TMDbTests/Domain/Models/TVSeriesListItemTests.swift b/Tests/TMDbTests/Domain/Models/TVSeriesListItemTests.swift index 98192182..092c5809 100644 --- a/Tests/TMDbTests/Domain/Models/TVSeriesListItemTests.swift +++ b/Tests/TMDbTests/Domain/Models/TVSeriesListItemTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.models)) diff --git a/Tests/TMDbTests/Domain/Models/TVSeriesPageableListTests.swift b/Tests/TMDbTests/Domain/Models/TVSeriesPageableListTests.swift index eb482300..fe5ba8a2 100644 --- a/Tests/TMDbTests/Domain/Models/TVSeriesPageableListTests.swift +++ b/Tests/TMDbTests/Domain/Models/TVSeriesPageableListTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.models)) diff --git a/Tests/TMDbTests/Domain/Models/TVSeriesTests.swift b/Tests/TMDbTests/Domain/Models/TVSeriesTests.swift index 9594d9fc..5b143645 100644 --- a/Tests/TMDbTests/Domain/Models/TVSeriesTests.swift +++ b/Tests/TMDbTests/Domain/Models/TVSeriesTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.models)) @@ -68,7 +67,8 @@ struct TVSeriesTests { #expect(episode.episodeNumber == 7) #expect(episode.seasonNumber == 7) #expect( - episode.overview == "A meeting is held in King's Landing. Problems arise in the North.") + episode.overview == "A meeting is held in King's Landing. Problems arise in the North." + ) #expect(episode.airDate == DateFormatter.theMovieDatabase.date(from: "2017-08-27")) #expect(episode.productionCode == "707") #expect(episode.showID == 1399) diff --git a/Tests/TMDbTests/Domain/Models/TikTokLinkTests.swift b/Tests/TMDbTests/Domain/Models/TikTokLinkTests.swift index 1ac15268..910a8b4d 100644 --- a/Tests/TMDbTests/Domain/Models/TikTokLinkTests.swift +++ b/Tests/TMDbTests/Domain/Models/TikTokLinkTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.models)) diff --git a/Tests/TMDbTests/Domain/Models/TokenTests.swift b/Tests/TMDbTests/Domain/Models/TokenTests.swift index 644ade3a..f5f4b96f 100644 --- a/Tests/TMDbTests/Domain/Models/TokenTests.swift +++ b/Tests/TMDbTests/Domain/Models/TokenTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.models)) diff --git a/Tests/TMDbTests/Domain/Models/TwitterLinkTests.swift b/Tests/TMDbTests/Domain/Models/TwitterLinkTests.swift index 48537382..6ef4db68 100644 --- a/Tests/TMDbTests/Domain/Models/TwitterLinkTests.swift +++ b/Tests/TMDbTests/Domain/Models/TwitterLinkTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.models)) diff --git a/Tests/TMDbTests/Domain/Models/VideoCollectionTests.swift b/Tests/TMDbTests/Domain/Models/VideoCollectionTests.swift index fbdfc045..f894c90a 100644 --- a/Tests/TMDbTests/Domain/Models/VideoCollectionTests.swift +++ b/Tests/TMDbTests/Domain/Models/VideoCollectionTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.models)) diff --git a/Tests/TMDbTests/Domain/Models/VideoMetadataTests.swift b/Tests/TMDbTests/Domain/Models/VideoMetadataTests.swift index 607e36af..d297d1f0 100644 --- a/Tests/TMDbTests/Domain/Models/VideoMetadataTests.swift +++ b/Tests/TMDbTests/Domain/Models/VideoMetadataTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.models)) diff --git a/Tests/TMDbTests/Domain/Models/VideoSizeTests.swift b/Tests/TMDbTests/Domain/Models/VideoSizeTests.swift index bfe2fc30..b65d8fab 100644 --- a/Tests/TMDbTests/Domain/Models/VideoSizeTests.swift +++ b/Tests/TMDbTests/Domain/Models/VideoSizeTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.models)) diff --git a/Tests/TMDbTests/Domain/Models/VideoTypeTests.swift b/Tests/TMDbTests/Domain/Models/VideoTypeTests.swift index 3eda0975..dc24eac9 100644 --- a/Tests/TMDbTests/Domain/Models/VideoTypeTests.swift +++ b/Tests/TMDbTests/Domain/Models/VideoTypeTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.models)) diff --git a/Tests/TMDbTests/Domain/Models/WatchProviderRegionsTests.swift b/Tests/TMDbTests/Domain/Models/WatchProviderRegionsTests.swift index a2cb2e05..3dbc98c4 100644 --- a/Tests/TMDbTests/Domain/Models/WatchProviderRegionsTests.swift +++ b/Tests/TMDbTests/Domain/Models/WatchProviderRegionsTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.models)) diff --git a/Tests/TMDbTests/Domain/Models/WatchProviderResultTests.swift b/Tests/TMDbTests/Domain/Models/WatchProviderResultTests.swift index 6e547884..9b4ef564 100644 --- a/Tests/TMDbTests/Domain/Models/WatchProviderResultTests.swift +++ b/Tests/TMDbTests/Domain/Models/WatchProviderResultTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.models)) diff --git a/Tests/TMDbTests/Domain/Models/WatchProviderTests.swift b/Tests/TMDbTests/Domain/Models/WatchProviderTests.swift index 072d2d46..d109c0f5 100644 --- a/Tests/TMDbTests/Domain/Models/WatchProviderTests.swift +++ b/Tests/TMDbTests/Domain/Models/WatchProviderTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.models)) diff --git a/Tests/TMDbTests/Domain/Models/WikiDataLinkTests.swift b/Tests/TMDbTests/Domain/Models/WikiDataLinkTests.swift index df269c08..0b4bd105 100644 --- a/Tests/TMDbTests/Domain/Models/WikiDataLinkTests.swift +++ b/Tests/TMDbTests/Domain/Models/WikiDataLinkTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.models)) diff --git a/Tests/TMDbTests/Domain/Services/Account/Requests/AccountRequestTests.swift b/Tests/TMDbTests/Domain/Services/Account/Requests/AccountRequestTests.swift index f9df8c02..f44a088f 100644 --- a/Tests/TMDbTests/Domain/Services/Account/Requests/AccountRequestTests.swift +++ b/Tests/TMDbTests/Domain/Services/Account/Requests/AccountRequestTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.requests, .account)) diff --git a/Tests/TMDbTests/Domain/Services/Account/Requests/AddFavouriteRequestTests.swift b/Tests/TMDbTests/Domain/Services/Account/Requests/AddFavouriteRequestTests.swift index d8d557d7..32dff817 100644 --- a/Tests/TMDbTests/Domain/Services/Account/Requests/AddFavouriteRequestTests.swift +++ b/Tests/TMDbTests/Domain/Services/Account/Requests/AddFavouriteRequestTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.requests, .account)) diff --git a/Tests/TMDbTests/Domain/Services/Account/Requests/AddToWatchlistRequestTests.swift b/Tests/TMDbTests/Domain/Services/Account/Requests/AddToWatchlistRequestTests.swift index fca5a8d6..9dd5e13c 100644 --- a/Tests/TMDbTests/Domain/Services/Account/Requests/AddToWatchlistRequestTests.swift +++ b/Tests/TMDbTests/Domain/Services/Account/Requests/AddToWatchlistRequestTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.requests, .account)) diff --git a/Tests/TMDbTests/Domain/Services/Account/Requests/FavouriteMoviesRequestTests.swift b/Tests/TMDbTests/Domain/Services/Account/Requests/FavouriteMoviesRequestTests.swift index 6c63b102..cf4774ca 100644 --- a/Tests/TMDbTests/Domain/Services/Account/Requests/FavouriteMoviesRequestTests.swift +++ b/Tests/TMDbTests/Domain/Services/Account/Requests/FavouriteMoviesRequestTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.requests, .account)) @@ -53,7 +52,8 @@ struct FavouriteMoviesRequestTests { ) #expect( - request.queryItems == ["sort_by": "created_at.desc", "page": "2", "session_id": "abc"]) + request.queryItems == ["sort_by": "created_at.desc", "page": "2", "session_id": "abc"] + ) } @Test("method is GET") diff --git a/Tests/TMDbTests/Domain/Services/Account/Requests/FavouriteTVSeriesRequestTests.swift b/Tests/TMDbTests/Domain/Services/Account/Requests/FavouriteTVSeriesRequestTests.swift index 11ddd8e3..aa512be5 100644 --- a/Tests/TMDbTests/Domain/Services/Account/Requests/FavouriteTVSeriesRequestTests.swift +++ b/Tests/TMDbTests/Domain/Services/Account/Requests/FavouriteTVSeriesRequestTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.requests, .account)) @@ -53,7 +52,8 @@ struct FavouriteTVSeriesRequestTests { ) #expect( - request.queryItems == ["sort_by": "created_at.desc", "page": "2", "session_id": "abc"]) + request.queryItems == ["sort_by": "created_at.desc", "page": "2", "session_id": "abc"] + ) } @Test("method is GET") diff --git a/Tests/TMDbTests/Domain/Services/Account/Requests/MovieWatchlistRequestTests.swift b/Tests/TMDbTests/Domain/Services/Account/Requests/MovieWatchlistRequestTests.swift index 9e7c0018..684dc9e1 100644 --- a/Tests/TMDbTests/Domain/Services/Account/Requests/MovieWatchlistRequestTests.swift +++ b/Tests/TMDbTests/Domain/Services/Account/Requests/MovieWatchlistRequestTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.requests, .account)) @@ -53,7 +52,8 @@ struct MovieWatchlistRequestTests { ) #expect( - request.queryItems == ["sort_by": "created_at.desc", "page": "2", "session_id": "abc"]) + request.queryItems == ["sort_by": "created_at.desc", "page": "2", "session_id": "abc"] + ) } @Test("method is GET") diff --git a/Tests/TMDbTests/Domain/Services/Account/Requests/TVSeriesWatchlistRequestTests.swift b/Tests/TMDbTests/Domain/Services/Account/Requests/TVSeriesWatchlistRequestTests.swift index 1a6d81ff..6a0a1560 100644 --- a/Tests/TMDbTests/Domain/Services/Account/Requests/TVSeriesWatchlistRequestTests.swift +++ b/Tests/TMDbTests/Domain/Services/Account/Requests/TVSeriesWatchlistRequestTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.requests, .account)) @@ -53,7 +52,8 @@ struct TVSeriesWatchlistRequestTests { ) #expect( - request.queryItems == ["sort_by": "created_at.desc", "page": "2", "session_id": "abc"]) + request.queryItems == ["sort_by": "created_at.desc", "page": "2", "session_id": "abc"] + ) } @Test("method is GET") diff --git a/Tests/TMDbTests/Domain/Services/Account/Sorts/FavouriteSortTests.swift b/Tests/TMDbTests/Domain/Services/Account/Sorts/FavouriteSortTests.swift index e88a5c0d..cbc86616 100644 --- a/Tests/TMDbTests/Domain/Services/Account/Sorts/FavouriteSortTests.swift +++ b/Tests/TMDbTests/Domain/Services/Account/Sorts/FavouriteSortTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.account)) diff --git a/Tests/TMDbTests/Domain/Services/Account/Sorts/WatchlistSortTests.swift b/Tests/TMDbTests/Domain/Services/Account/Sorts/WatchlistSortTests.swift index 39d2890c..c736bc1c 100644 --- a/Tests/TMDbTests/Domain/Services/Account/Sorts/WatchlistSortTests.swift +++ b/Tests/TMDbTests/Domain/Services/Account/Sorts/WatchlistSortTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.account)) diff --git a/Tests/TMDbTests/Domain/Services/Account/TMDbAccountServiceDetailsTests.swift b/Tests/TMDbTests/Domain/Services/Account/TMDbAccountServiceDetailsTests.swift index 70f3038f..444f6bd8 100644 --- a/Tests/TMDbTests/Domain/Services/Account/TMDbAccountServiceDetailsTests.swift +++ b/Tests/TMDbTests/Domain/Services/Account/TMDbAccountServiceDetailsTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.services, .account)) diff --git a/Tests/TMDbTests/Domain/Services/Account/TMDbAccountServiceFavouriteTests.swift b/Tests/TMDbTests/Domain/Services/Account/TMDbAccountServiceFavouriteTests.swift index d8534f54..3e3b6ccd 100644 --- a/Tests/TMDbTests/Domain/Services/Account/TMDbAccountServiceFavouriteTests.swift +++ b/Tests/TMDbTests/Domain/Services/Account/TMDbAccountServiceFavouriteTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.services, .account)) diff --git a/Tests/TMDbTests/Domain/Services/Account/TMDbAccountServiceWatchlistTests.swift b/Tests/TMDbTests/Domain/Services/Account/TMDbAccountServiceWatchlistTests.swift index afe97b8f..b7e14fce 100644 --- a/Tests/TMDbTests/Domain/Services/Account/TMDbAccountServiceWatchlistTests.swift +++ b/Tests/TMDbTests/Domain/Services/Account/TMDbAccountServiceWatchlistTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.services, .account)) diff --git a/Tests/TMDbTests/Domain/Services/Authentication/AuthenticateURLMockBuilder.swift b/Tests/TMDbTests/Domain/Services/Authentication/AuthenticateURLMockBuilder.swift index e98ee5e9..110d708e 100644 --- a/Tests/TMDbTests/Domain/Services/Authentication/AuthenticateURLMockBuilder.swift +++ b/Tests/TMDbTests/Domain/Services/Authentication/AuthenticateURLMockBuilder.swift @@ -6,7 +6,6 @@ // import Foundation - @testable import TMDb final class AuthenticateURLMockBuilder: AuthenticateURLBuilding, @unchecked Sendable { diff --git a/Tests/TMDbTests/Domain/Services/Authentication/Requests/CreateGuestSessionRequestTests.swift b/Tests/TMDbTests/Domain/Services/Authentication/Requests/CreateGuestSessionRequestTests.swift index e0aa8906..5996c47c 100644 --- a/Tests/TMDbTests/Domain/Services/Authentication/Requests/CreateGuestSessionRequestTests.swift +++ b/Tests/TMDbTests/Domain/Services/Authentication/Requests/CreateGuestSessionRequestTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.requests, .authentication)) diff --git a/Tests/TMDbTests/Domain/Services/Authentication/Requests/CreateRequestTokenRequestTests.swift b/Tests/TMDbTests/Domain/Services/Authentication/Requests/CreateRequestTokenRequestTests.swift index 38d3e71a..c0a924b3 100644 --- a/Tests/TMDbTests/Domain/Services/Authentication/Requests/CreateRequestTokenRequestTests.swift +++ b/Tests/TMDbTests/Domain/Services/Authentication/Requests/CreateRequestTokenRequestTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.requests, .authentication)) diff --git a/Tests/TMDbTests/Domain/Services/Authentication/Requests/CreateSessionRequestTests.swift b/Tests/TMDbTests/Domain/Services/Authentication/Requests/CreateSessionRequestTests.swift index 12bb4a4b..26f5577d 100644 --- a/Tests/TMDbTests/Domain/Services/Authentication/Requests/CreateSessionRequestTests.swift +++ b/Tests/TMDbTests/Domain/Services/Authentication/Requests/CreateSessionRequestTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.requests, .authentication)) diff --git a/Tests/TMDbTests/Domain/Services/Authentication/Requests/DeleteSessionRequestTests.swift b/Tests/TMDbTests/Domain/Services/Authentication/Requests/DeleteSessionRequestTests.swift index 8053b061..f0201e43 100644 --- a/Tests/TMDbTests/Domain/Services/Authentication/Requests/DeleteSessionRequestTests.swift +++ b/Tests/TMDbTests/Domain/Services/Authentication/Requests/DeleteSessionRequestTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.requests, .authentication)) diff --git a/Tests/TMDbTests/Domain/Services/Authentication/Requests/ValidateKeyRequestTests.swift b/Tests/TMDbTests/Domain/Services/Authentication/Requests/ValidateKeyRequestTests.swift index a0aff90f..c047ca26 100644 --- a/Tests/TMDbTests/Domain/Services/Authentication/Requests/ValidateKeyRequestTests.swift +++ b/Tests/TMDbTests/Domain/Services/Authentication/Requests/ValidateKeyRequestTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.requests, .authentication)) diff --git a/Tests/TMDbTests/Domain/Services/Authentication/Requests/ValidateTokenWithLoginRequestTests.swift b/Tests/TMDbTests/Domain/Services/Authentication/Requests/ValidateTokenWithLoginRequestTests.swift index 3ab59530..e2543255 100644 --- a/Tests/TMDbTests/Domain/Services/Authentication/Requests/ValidateTokenWithLoginRequestTests.swift +++ b/Tests/TMDbTests/Domain/Services/Authentication/Requests/ValidateTokenWithLoginRequestTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.requests, .authentication)) diff --git a/Tests/TMDbTests/Domain/Services/Authentication/TMDbAuthenticationServiceTests.swift b/Tests/TMDbTests/Domain/Services/Authentication/TMDbAuthenticationServiceTests.swift index 315ca1d2..4a11caeb 100644 --- a/Tests/TMDbTests/Domain/Services/Authentication/TMDbAuthenticationServiceTests.swift +++ b/Tests/TMDbTests/Domain/Services/Authentication/TMDbAuthenticationServiceTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.services, .authentication)) diff --git a/Tests/TMDbTests/Domain/Services/Authentication/URLBuilders/AuthenticateURLBuilderTests.swift b/Tests/TMDbTests/Domain/Services/Authentication/URLBuilders/AuthenticateURLBuilderTests.swift index 18e5ba14..f01ed46f 100644 --- a/Tests/TMDbTests/Domain/Services/Authentication/URLBuilders/AuthenticateURLBuilderTests.swift +++ b/Tests/TMDbTests/Domain/Services/Authentication/URLBuilders/AuthenticateURLBuilderTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.authentication)) diff --git a/Tests/TMDbTests/Domain/Services/Certifications/Requests/MovieCertificationsRequestTests.swift b/Tests/TMDbTests/Domain/Services/Certifications/Requests/MovieCertificationsRequestTests.swift index 5c337cfd..697e6bf1 100644 --- a/Tests/TMDbTests/Domain/Services/Certifications/Requests/MovieCertificationsRequestTests.swift +++ b/Tests/TMDbTests/Domain/Services/Certifications/Requests/MovieCertificationsRequestTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.requests, .certification)) diff --git a/Tests/TMDbTests/Domain/Services/Certifications/Requests/TVSeriesCertificationsRequestTests.swift b/Tests/TMDbTests/Domain/Services/Certifications/Requests/TVSeriesCertificationsRequestTests.swift index 8b49bff3..d8f18df5 100644 --- a/Tests/TMDbTests/Domain/Services/Certifications/Requests/TVSeriesCertificationsRequestTests.swift +++ b/Tests/TMDbTests/Domain/Services/Certifications/Requests/TVSeriesCertificationsRequestTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.requests, .certification)) diff --git a/Tests/TMDbTests/Domain/Services/Certifications/TMDbCertificationServiceTests.swift b/Tests/TMDbTests/Domain/Services/Certifications/TMDbCertificationServiceTests.swift index 27d514e0..72dfb25e 100644 --- a/Tests/TMDbTests/Domain/Services/Certifications/TMDbCertificationServiceTests.swift +++ b/Tests/TMDbTests/Domain/Services/Certifications/TMDbCertificationServiceTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.services, .certification)) diff --git a/Tests/TMDbTests/Domain/Services/Collections/Requests/CollectionImagesRequestTests.swift b/Tests/TMDbTests/Domain/Services/Collections/Requests/CollectionImagesRequestTests.swift index fcb4fbf2..78abe33c 100644 --- a/Tests/TMDbTests/Domain/Services/Collections/Requests/CollectionImagesRequestTests.swift +++ b/Tests/TMDbTests/Domain/Services/Collections/Requests/CollectionImagesRequestTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.requests, .collection)) diff --git a/Tests/TMDbTests/Domain/Services/Collections/Requests/CollectionRequestTests.swift b/Tests/TMDbTests/Domain/Services/Collections/Requests/CollectionRequestTests.swift index e0f86bfb..e5c2c5b8 100644 --- a/Tests/TMDbTests/Domain/Services/Collections/Requests/CollectionRequestTests.swift +++ b/Tests/TMDbTests/Domain/Services/Collections/Requests/CollectionRequestTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.requests, .collection)) diff --git a/Tests/TMDbTests/Domain/Services/Collections/Requests/CollectionTranslationsRequestTests.swift b/Tests/TMDbTests/Domain/Services/Collections/Requests/CollectionTranslationsRequestTests.swift index 28f5f45e..ad9833df 100644 --- a/Tests/TMDbTests/Domain/Services/Collections/Requests/CollectionTranslationsRequestTests.swift +++ b/Tests/TMDbTests/Domain/Services/Collections/Requests/CollectionTranslationsRequestTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.requests, .collection)) diff --git a/Tests/TMDbTests/Domain/Services/Collections/TMDbCollectionServiceDetailsTests.swift b/Tests/TMDbTests/Domain/Services/Collections/TMDbCollectionServiceDetailsTests.swift index d9f012fa..17bc4200 100644 --- a/Tests/TMDbTests/Domain/Services/Collections/TMDbCollectionServiceDetailsTests.swift +++ b/Tests/TMDbTests/Domain/Services/Collections/TMDbCollectionServiceDetailsTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.services, .collection)) diff --git a/Tests/TMDbTests/Domain/Services/Collections/TMDbCollectionServiceMediaTests.swift b/Tests/TMDbTests/Domain/Services/Collections/TMDbCollectionServiceMediaTests.swift index 56961202..0b49432d 100644 --- a/Tests/TMDbTests/Domain/Services/Collections/TMDbCollectionServiceMediaTests.swift +++ b/Tests/TMDbTests/Domain/Services/Collections/TMDbCollectionServiceMediaTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.services, .collection)) diff --git a/Tests/TMDbTests/Domain/Services/Companies/Requests/CompanyDetailsRequestTests.swift b/Tests/TMDbTests/Domain/Services/Companies/Requests/CompanyDetailsRequestTests.swift index 916e578c..bebda851 100644 --- a/Tests/TMDbTests/Domain/Services/Companies/Requests/CompanyDetailsRequestTests.swift +++ b/Tests/TMDbTests/Domain/Services/Companies/Requests/CompanyDetailsRequestTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.requests, .company)) diff --git a/Tests/TMDbTests/Domain/Services/Companies/TMDbCompanyServiceTests.swift b/Tests/TMDbTests/Domain/Services/Companies/TMDbCompanyServiceTests.swift index f5de9ac9..2969110c 100644 --- a/Tests/TMDbTests/Domain/Services/Companies/TMDbCompanyServiceTests.swift +++ b/Tests/TMDbTests/Domain/Services/Companies/TMDbCompanyServiceTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.services, .company)) diff --git a/Tests/TMDbTests/Domain/Services/Configuration/Requests/APIConfigurationRequestTests.swift b/Tests/TMDbTests/Domain/Services/Configuration/Requests/APIConfigurationRequestTests.swift index f254f93a..34229f63 100644 --- a/Tests/TMDbTests/Domain/Services/Configuration/Requests/APIConfigurationRequestTests.swift +++ b/Tests/TMDbTests/Domain/Services/Configuration/Requests/APIConfigurationRequestTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.requests, .configuration)) diff --git a/Tests/TMDbTests/Domain/Services/Configuration/Requests/CountriesConfigurationRequestTests.swift b/Tests/TMDbTests/Domain/Services/Configuration/Requests/CountriesConfigurationRequestTests.swift index 8d73c5b7..d99f69f6 100644 --- a/Tests/TMDbTests/Domain/Services/Configuration/Requests/CountriesConfigurationRequestTests.swift +++ b/Tests/TMDbTests/Domain/Services/Configuration/Requests/CountriesConfigurationRequestTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.requests, .configuration)) diff --git a/Tests/TMDbTests/Domain/Services/Configuration/Requests/JobsConfigurationRequestTests.swift b/Tests/TMDbTests/Domain/Services/Configuration/Requests/JobsConfigurationRequestTests.swift index d101e45a..44d9edb1 100644 --- a/Tests/TMDbTests/Domain/Services/Configuration/Requests/JobsConfigurationRequestTests.swift +++ b/Tests/TMDbTests/Domain/Services/Configuration/Requests/JobsConfigurationRequestTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.requests, .configuration)) diff --git a/Tests/TMDbTests/Domain/Services/Configuration/Requests/LanguaguesConfigurationRequestTests.swift b/Tests/TMDbTests/Domain/Services/Configuration/Requests/LanguaguesConfigurationRequestTests.swift index 34003fbb..2e43e532 100644 --- a/Tests/TMDbTests/Domain/Services/Configuration/Requests/LanguaguesConfigurationRequestTests.swift +++ b/Tests/TMDbTests/Domain/Services/Configuration/Requests/LanguaguesConfigurationRequestTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.requests, .configuration)) diff --git a/Tests/TMDbTests/Domain/Services/Configuration/TMDbConfigurationServiceTests.swift b/Tests/TMDbTests/Domain/Services/Configuration/TMDbConfigurationServiceTests.swift index b2c8cbb6..9f53095a 100644 --- a/Tests/TMDbTests/Domain/Services/Configuration/TMDbConfigurationServiceTests.swift +++ b/Tests/TMDbTests/Domain/Services/Configuration/TMDbConfigurationServiceTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.services, .configuration)) diff --git a/Tests/TMDbTests/Domain/Services/Discover/Filters/DiscoverMovieFilterTests.swift b/Tests/TMDbTests/Domain/Services/Discover/Filters/DiscoverMovieFilterTests.swift new file mode 100644 index 00000000..b5f67aa3 --- /dev/null +++ b/Tests/TMDbTests/Domain/Services/Discover/Filters/DiscoverMovieFilterTests.swift @@ -0,0 +1,133 @@ +// +// DiscoverMovieFilterTests.swift +// TMDb +// +// Copyright © 2026 Adam Young. +// + +import Foundation +import Testing +@testable import TMDb + +@Suite(.tags(.filters, .discover)) +struct DiscoverMovieFilterTests { + + @Test("init with default values creates filter with nil properties") + func initWithDefaultValuesCreatesFilterWithNilProperties() { + let filter = DiscoverMovieFilter() + + #expect(filter.people == nil) + #expect(filter.originalLanguage == nil) + #expect(filter.genres == nil) + #expect(filter.primaryReleaseYear == nil) + } + + @Test("init with people sets people property") + func initWithPeopleSetsPeopleProperty() { + let people = [1, 2, 3] + + let filter = DiscoverMovieFilter(people: people) + + #expect(filter.people == people) + #expect(filter.originalLanguage == nil) + #expect(filter.genres == nil) + #expect(filter.primaryReleaseYear == nil) + } + + @Test("init with original language sets original language property") + func initWithOriginalLanguageSetsOriginalLanguageProperty() { + let originalLanguage = "en" + + let filter = DiscoverMovieFilter(originalLanguage: originalLanguage) + + #expect(filter.people == nil) + #expect(filter.originalLanguage == originalLanguage) + #expect(filter.genres == nil) + #expect(filter.primaryReleaseYear == nil) + } + + @Test("init with genres sets genres property") + func initWithGenresSetsGenresProperty() { + let genres = [28, 12, 16] + + let filter = DiscoverMovieFilter(genres: genres) + + #expect(filter.people == nil) + #expect(filter.originalLanguage == nil) + #expect(filter.genres == genres) + #expect(filter.primaryReleaseYear == nil) + } + + @Test("init with primary release year sets primary release year property") + func initWithPrimaryReleaseYearSetsPrimaryReleaseYearProperty() { + let primaryReleaseYear = DiscoverMovieFilter.PrimaryReleaseYearFilter.on(2024) + + let filter = DiscoverMovieFilter(primaryReleaseYear: primaryReleaseYear) + + #expect(filter.people == nil) + #expect(filter.originalLanguage == nil) + #expect(filter.genres == nil) + #expect(filter.primaryReleaseYear == primaryReleaseYear) + } + + @Test("init with all parameters sets all properties") + func initWithAllParametersSetsAllProperties() { + let people = [1, 2, 3] + let originalLanguage = "en" + let genres = [28, 12, 16] + let primaryReleaseYear = DiscoverMovieFilter.PrimaryReleaseYearFilter.on(2024) + + let filter = DiscoverMovieFilter( + people: people, + originalLanguage: originalLanguage, + genres: genres, + primaryReleaseYear: primaryReleaseYear + ) + + #expect(filter.people == people) + #expect(filter.originalLanguage == originalLanguage) + #expect(filter.genres == genres) + #expect(filter.primaryReleaseYear == primaryReleaseYear) + } + + @Test("primary release year filter on returns correct date bounds") + func primaryReleaseYearFilterOnReturnsCorrectDateBounds() { + let filter = DiscoverMovieFilter.PrimaryReleaseYearFilter.on(2024) + + let bounds = filter.dateBounds() + + #expect(bounds.gte == "2024-01-01") + #expect(bounds.lte == "2024-12-31") + } + + @Test("primary release year filter from returns correct date bounds") + func primaryReleaseYearFilterFromReturnsCorrectDateBounds() { + let filter = DiscoverMovieFilter.PrimaryReleaseYearFilter.from(2020) + + let bounds = filter.dateBounds() + + #expect(bounds.gte == "2020-01-01") + #expect(bounds.lte == nil) + } + + @Test("primary release year filter up to returns correct date bounds") + func primaryReleaseYearFilterUpToReturnsCorrectDateBounds() { + let filter = DiscoverMovieFilter.PrimaryReleaseYearFilter.upTo(2025) + + let bounds = filter.dateBounds() + + #expect(bounds.gte == nil) + #expect(bounds.lte == "2025-12-31") + } + + @Test("primary release year filter between returns correct date bounds") + func primaryReleaseYearFilterBetweenReturnsCorrectDateBounds() { + let filter = DiscoverMovieFilter.PrimaryReleaseYearFilter.between(start: 2020, end: 2025) + + let bounds = filter.dateBounds() + + #expect(bounds.gte == "2020-01-01") + #expect(bounds.lte == "2025-12-31") + } + +} diff --git a/Tests/TMDbTests/Domain/Services/Discover/Filters/DiscoverTVSeriesFilterTests.swift b/Tests/TMDbTests/Domain/Services/Discover/Filters/DiscoverTVSeriesFilterTests.swift new file mode 100644 index 00000000..c4448217 --- /dev/null +++ b/Tests/TMDbTests/Domain/Services/Discover/Filters/DiscoverTVSeriesFilterTests.swift @@ -0,0 +1,57 @@ +// +// DiscoverTVSeriesFilterTests.swift +// TMDb +// +// Copyright © 2026 Adam Young. +// + +import Foundation +import Testing +@testable import TMDb + +@Suite(.tags(.filters, .discover)) +struct DiscoverTVSeriesFilterTests { + + @Test("init with default values creates filter with nil properties") + func initWithDefaultValuesCreatesFilterWithNilProperties() { + let filter = DiscoverTVSeriesFilter() + + #expect(filter.originalLanguage == nil) + #expect(filter.genres == nil) + } + + @Test("init with original language sets original language property") + func initWithOriginalLanguageSetsOriginalLanguageProperty() { + let originalLanguage = "en" + + let filter = DiscoverTVSeriesFilter(originalLanguage: originalLanguage) + + #expect(filter.originalLanguage == originalLanguage) + #expect(filter.genres == nil) + } + + @Test("init with genres sets genres property") + func initWithGenresSetsGenresProperty() { + let genres = [18, 35, 80] + + let filter = DiscoverTVSeriesFilter(genres: genres) + + #expect(filter.originalLanguage == nil) + #expect(filter.genres == genres) + } + + @Test("init with all parameters sets all properties") + func initWithAllParametersSetsAllProperties() { + let originalLanguage = "en" + let genres = [18, 35, 80] + + let filter = DiscoverTVSeriesFilter( + originalLanguage: originalLanguage, + genres: genres + ) + + #expect(filter.originalLanguage == originalLanguage) + #expect(filter.genres == genres) + } + +} diff --git a/Tests/TMDbTests/Domain/Services/Discover/Requests/DiscoverMoviesRequestTests.swift b/Tests/TMDbTests/Domain/Services/Discover/Requests/DiscoverMoviesRequestTests.swift index 72257c37..54880b38 100644 --- a/Tests/TMDbTests/Domain/Services/Discover/Requests/DiscoverMoviesRequestTests.swift +++ b/Tests/TMDbTests/Domain/Services/Discover/Requests/DiscoverMoviesRequestTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.requests, .discover)) @@ -60,7 +59,8 @@ struct DiscoverMoviesRequestTests { request.queryItems == [ "primary_release_date.gte": "2025-01-01", "primary_release_date.lte": "2025-12-31" - ]) + ] + ) } @Test("queryItems with primary release date from year") @@ -88,7 +88,8 @@ struct DiscoverMoviesRequestTests { request.queryItems == [ "primary_release_date.gte": "2020-01-01", "primary_release_date.lte": "2025-12-31" - ]) + ] + ) } @Test("queryItems with sortedBy") @@ -129,7 +130,8 @@ struct DiscoverMoviesRequestTests { "with_people": "1,2,3", "page": "2", "language": "en" - ]) + ] + ) } @Test("method is GET") diff --git a/Tests/TMDbTests/Domain/Services/Discover/Requests/DiscoverTVSeriesRequestTests.swift b/Tests/TMDbTests/Domain/Services/Discover/Requests/DiscoverTVSeriesRequestTests.swift index d594981b..ea6dd724 100644 --- a/Tests/TMDbTests/Domain/Services/Discover/Requests/DiscoverTVSeriesRequestTests.swift +++ b/Tests/TMDbTests/Domain/Services/Discover/Requests/DiscoverTVSeriesRequestTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.requests, .discover)) @@ -35,7 +34,7 @@ struct DiscoverTVSeriesRequestTests { } @Test("queryItems with page") - func queryItemsWithPage() throws { + func queryItemsWithPage() { let request = DiscoverTVSeriesRequest(page: 1) #expect(request.queryItems == ["page": "1"]) @@ -77,7 +76,8 @@ struct DiscoverTVSeriesRequestTests { "sort_by": "first_air_date.asc", "page": "2", "language": "en" - ]) + ] + ) } @Test("method is GET") diff --git a/Tests/TMDbTests/Domain/Services/Discover/Sorts/MovieSortTests.swift b/Tests/TMDbTests/Domain/Services/Discover/Sorts/MovieSortTests.swift index 918502bd..bb1412fc 100644 --- a/Tests/TMDbTests/Domain/Services/Discover/Sorts/MovieSortTests.swift +++ b/Tests/TMDbTests/Domain/Services/Discover/Sorts/MovieSortTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.discover)) diff --git a/Tests/TMDbTests/Domain/Services/Discover/Sorts/TVSeriesSortTests.swift b/Tests/TMDbTests/Domain/Services/Discover/Sorts/TVSeriesSortTests.swift index 0dcf33ff..ad28defd 100644 --- a/Tests/TMDbTests/Domain/Services/Discover/Sorts/TVSeriesSortTests.swift +++ b/Tests/TMDbTests/Domain/Services/Discover/Sorts/TVSeriesSortTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.discover)) diff --git a/Tests/TMDbTests/Domain/Services/Discover/TMDbDiscoverServiceTests.swift b/Tests/TMDbTests/Domain/Services/Discover/TMDbDiscoverServiceTests.swift index 116ad0d9..9cf8ece5 100644 --- a/Tests/TMDbTests/Domain/Services/Discover/TMDbDiscoverServiceTests.swift +++ b/Tests/TMDbTests/Domain/Services/Discover/TMDbDiscoverServiceTests.swift @@ -7,10 +7,9 @@ import Foundation import Testing - @testable import TMDb -@Suite(.tags(.services, .configuration)) +@Suite(.tags(.services, .discover)) struct TMDbDiscoverServiceTests { var service: TMDbDiscoverService! @@ -64,6 +63,96 @@ struct TMDbDiscoverServiceTests { } } + @Test("movies with filter using original language returns movies") + func moviesWithFilterUsingOriginalLanguageReturnsMovies() async throws { + let filter = DiscoverMovieFilter(originalLanguage: "en") + let expectedResult = MoviePageableList.mock() + apiClient.addResponse(.success(expectedResult)) + let expectedRequest = DiscoverMoviesRequest( + filter: filter, sortedBy: nil, page: nil, language: nil + ) + + let result = try await service.movies(filter: filter) + + #expect(result == expectedResult) + #expect(apiClient.lastRequest as? DiscoverMoviesRequest == expectedRequest) + } + + @Test("movies with filter using genres returns movies") + func moviesWithFilterUsingGenresReturnsMovies() async throws { + let filter = DiscoverMovieFilter(genres: [28, 12, 16]) + let expectedResult = MoviePageableList.mock() + apiClient.addResponse(.success(expectedResult)) + let expectedRequest = DiscoverMoviesRequest( + filter: filter, sortedBy: nil, page: nil, language: nil + ) + + let result = try await service.movies(filter: filter) + + #expect(result == expectedResult) + #expect(apiClient.lastRequest as? DiscoverMoviesRequest == expectedRequest) + } + + @Test("movies with filter using primary release year on returns movies") + func moviesWithFilterUsingPrimaryReleaseYearOnReturnsMovies() async throws { + let filter = DiscoverMovieFilter(primaryReleaseYear: .on(2024)) + let expectedResult = MoviePageableList.mock() + apiClient.addResponse(.success(expectedResult)) + let expectedRequest = DiscoverMoviesRequest( + filter: filter, sortedBy: nil, page: nil, language: nil + ) + + let result = try await service.movies(filter: filter) + + #expect(result == expectedResult) + #expect(apiClient.lastRequest as? DiscoverMoviesRequest == expectedRequest) + } + + @Test("movies with filter using primary release year from returns movies") + func moviesWithFilterUsingPrimaryReleaseYearFromReturnsMovies() async throws { + let filter = DiscoverMovieFilter(primaryReleaseYear: .from(2020)) + let expectedResult = MoviePageableList.mock() + apiClient.addResponse(.success(expectedResult)) + let expectedRequest = DiscoverMoviesRequest( + filter: filter, sortedBy: nil, page: nil, language: nil + ) + + let result = try await service.movies(filter: filter) + + #expect(result == expectedResult) + #expect(apiClient.lastRequest as? DiscoverMoviesRequest == expectedRequest) + } + + @Test("movies with filter using primary release year up to returns movies") + func moviesWithFilterUsingPrimaryReleaseYearUpToReturnsMovies() async throws { + let filter = DiscoverMovieFilter(primaryReleaseYear: .upTo(2020)) + let expectedResult = MoviePageableList.mock() + apiClient.addResponse(.success(expectedResult)) + let expectedRequest = DiscoverMoviesRequest( + filter: filter, sortedBy: nil, page: nil, language: nil + ) + + let result = try await service.movies(filter: filter) + + #expect(result == expectedResult) + #expect(apiClient.lastRequest as? DiscoverMoviesRequest == expectedRequest) + } + + @Test("movies with filter using primary release year between returns movies") + func moviesWithFilterUsingPrimaryReleaseYearBetweenReturnsMovies() async throws { + let filter = DiscoverMovieFilter(primaryReleaseYear: .between(start: 2015, end: 2020)) + let expectedResult = MoviePageableList.mock() + apiClient.addResponse(.success(expectedResult)) + let expectedRequest = DiscoverMoviesRequest( + filter: filter, sortedBy: nil, page: nil, language: nil + ) + + let result = try await service.movies(filter: filter) + + #expect(result == expectedResult) + #expect(apiClient.lastRequest as? DiscoverMoviesRequest == expectedRequest) + } + @Test("tvSeries with default parameter values returns TV series") func tvSeriesWithDefaultParameterValuesReturnsTVSeries() async throws { let expectedResult = TVSeriesPageableList.mock() @@ -102,4 +191,34 @@ struct TMDbDiscoverServiceTests { } } + @Test("tvSeries with filter using original language returns TV series") + func tvSeriesWithFilterUsingOriginalLanguageReturnsTVSeries() async throws { + let filter = DiscoverTVSeriesFilter(originalLanguage: "en") + let expectedResult = TVSeriesPageableList.mock() + apiClient.addResponse(.success(expectedResult)) + let expectedRequest = DiscoverTVSeriesRequest( + filter: filter, sortedBy: nil, page: nil, language: nil + ) + + let result = try await service.tvSeries(filter: filter) + + #expect(result == expectedResult) + #expect(apiClient.lastRequest as? DiscoverTVSeriesRequest == expectedRequest) + } + + @Test("tvSeries with filter using genres returns TV series") + func tvSeriesWithFilterUsingGenresReturnsTVSeries() async throws { + let filter = DiscoverTVSeriesFilter(genres: [18, 35, 10765]) + let expectedResult = TVSeriesPageableList.mock() + apiClient.addResponse(.success(expectedResult)) + let expectedRequest = DiscoverTVSeriesRequest( + filter: filter, sortedBy: nil, page: nil, language: nil + ) + + let result = try await service.tvSeries(filter: filter) + + #expect(result == expectedResult) + #expect(apiClient.lastRequest as? DiscoverTVSeriesRequest == expectedRequest) + } + } diff --git a/Tests/TMDbTests/Domain/Services/Find/Requests/FindByIDRequestTests.swift b/Tests/TMDbTests/Domain/Services/Find/Requests/FindByIDRequestTests.swift index afc27652..75b55ab2 100644 --- a/Tests/TMDbTests/Domain/Services/Find/Requests/FindByIDRequestTests.swift +++ b/Tests/TMDbTests/Domain/Services/Find/Requests/FindByIDRequestTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.requests, .find)) diff --git a/Tests/TMDbTests/Domain/Services/Find/TMDbFindServiceTests.swift b/Tests/TMDbTests/Domain/Services/Find/TMDbFindServiceTests.swift index 77eb7ae7..ad4ead45 100644 --- a/Tests/TMDbTests/Domain/Services/Find/TMDbFindServiceTests.swift +++ b/Tests/TMDbTests/Domain/Services/Find/TMDbFindServiceTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.services, .find)) diff --git a/Tests/TMDbTests/Domain/Services/Genres/Requests/MovieGenresRequestTests.swift b/Tests/TMDbTests/Domain/Services/Genres/Requests/MovieGenresRequestTests.swift index ed695c78..869c1f57 100644 --- a/Tests/TMDbTests/Domain/Services/Genres/Requests/MovieGenresRequestTests.swift +++ b/Tests/TMDbTests/Domain/Services/Genres/Requests/MovieGenresRequestTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.requests, .genre)) diff --git a/Tests/TMDbTests/Domain/Services/Genres/Requests/TVSeriesGenresRequestTests.swift b/Tests/TMDbTests/Domain/Services/Genres/Requests/TVSeriesGenresRequestTests.swift index 385c62e8..12b6c52e 100644 --- a/Tests/TMDbTests/Domain/Services/Genres/Requests/TVSeriesGenresRequestTests.swift +++ b/Tests/TMDbTests/Domain/Services/Genres/Requests/TVSeriesGenresRequestTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.requests, .genre)) diff --git a/Tests/TMDbTests/Domain/Services/Genres/TMDbGenreServiceTests.swift b/Tests/TMDbTests/Domain/Services/Genres/TMDbGenreServiceTests.swift index c02953e8..29bc2744 100644 --- a/Tests/TMDbTests/Domain/Services/Genres/TMDbGenreServiceTests.swift +++ b/Tests/TMDbTests/Domain/Services/Genres/TMDbGenreServiceTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.services, .genre)) diff --git a/Tests/TMDbTests/Domain/Services/Keywords/Requests/KeywordMoviesRequestTests.swift b/Tests/TMDbTests/Domain/Services/Keywords/Requests/KeywordMoviesRequestTests.swift index 1e2e6557..8c46c7ef 100644 --- a/Tests/TMDbTests/Domain/Services/Keywords/Requests/KeywordMoviesRequestTests.swift +++ b/Tests/TMDbTests/Domain/Services/Keywords/Requests/KeywordMoviesRequestTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.requests, .keyword)) diff --git a/Tests/TMDbTests/Domain/Services/Keywords/Requests/KeywordRequestTests.swift b/Tests/TMDbTests/Domain/Services/Keywords/Requests/KeywordRequestTests.swift index d6ef8c6f..adad5700 100644 --- a/Tests/TMDbTests/Domain/Services/Keywords/Requests/KeywordRequestTests.swift +++ b/Tests/TMDbTests/Domain/Services/Keywords/Requests/KeywordRequestTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.requests, .keyword)) diff --git a/Tests/TMDbTests/Domain/Services/Keywords/TMDbKeywordServiceTests.swift b/Tests/TMDbTests/Domain/Services/Keywords/TMDbKeywordServiceTests.swift index 788b3dff..415534e7 100644 --- a/Tests/TMDbTests/Domain/Services/Keywords/TMDbKeywordServiceTests.swift +++ b/Tests/TMDbTests/Domain/Services/Keywords/TMDbKeywordServiceTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.services, .keyword)) diff --git a/Tests/TMDbTests/Domain/Services/Lists/Requests/AddMediaRequestTests.swift b/Tests/TMDbTests/Domain/Services/Lists/Requests/AddMediaRequestTests.swift index b42116f6..e541ed97 100644 --- a/Tests/TMDbTests/Domain/Services/Lists/Requests/AddMediaRequestTests.swift +++ b/Tests/TMDbTests/Domain/Services/Lists/Requests/AddMediaRequestTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.requests, .list)) diff --git a/Tests/TMDbTests/Domain/Services/Lists/Requests/ClearListRequestTests.swift b/Tests/TMDbTests/Domain/Services/Lists/Requests/ClearListRequestTests.swift index 45a43d8e..64796d67 100644 --- a/Tests/TMDbTests/Domain/Services/Lists/Requests/ClearListRequestTests.swift +++ b/Tests/TMDbTests/Domain/Services/Lists/Requests/ClearListRequestTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.requests, .list)) diff --git a/Tests/TMDbTests/Domain/Services/Lists/Requests/CreateListRequestTests.swift b/Tests/TMDbTests/Domain/Services/Lists/Requests/CreateListRequestTests.swift index 28f68687..515d3512 100644 --- a/Tests/TMDbTests/Domain/Services/Lists/Requests/CreateListRequestTests.swift +++ b/Tests/TMDbTests/Domain/Services/Lists/Requests/CreateListRequestTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.requests, .list)) diff --git a/Tests/TMDbTests/Domain/Services/Lists/Requests/DeleteListRequestTests.swift b/Tests/TMDbTests/Domain/Services/Lists/Requests/DeleteListRequestTests.swift index 3393558f..8160e734 100644 --- a/Tests/TMDbTests/Domain/Services/Lists/Requests/DeleteListRequestTests.swift +++ b/Tests/TMDbTests/Domain/Services/Lists/Requests/DeleteListRequestTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.requests, .list)) diff --git a/Tests/TMDbTests/Domain/Services/Lists/Requests/ListItemStatusRequestTests.swift b/Tests/TMDbTests/Domain/Services/Lists/Requests/ListItemStatusRequestTests.swift index a2f402fa..b8944019 100644 --- a/Tests/TMDbTests/Domain/Services/Lists/Requests/ListItemStatusRequestTests.swift +++ b/Tests/TMDbTests/Domain/Services/Lists/Requests/ListItemStatusRequestTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.requests, .list)) diff --git a/Tests/TMDbTests/Domain/Services/Lists/Requests/ListRequestTests.swift b/Tests/TMDbTests/Domain/Services/Lists/Requests/ListRequestTests.swift index 21e22782..1e7b57a2 100644 --- a/Tests/TMDbTests/Domain/Services/Lists/Requests/ListRequestTests.swift +++ b/Tests/TMDbTests/Domain/Services/Lists/Requests/ListRequestTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.requests, .list)) diff --git a/Tests/TMDbTests/Domain/Services/Lists/Requests/RemoveMediaRequestTests.swift b/Tests/TMDbTests/Domain/Services/Lists/Requests/RemoveMediaRequestTests.swift index d76a3638..72618681 100644 --- a/Tests/TMDbTests/Domain/Services/Lists/Requests/RemoveMediaRequestTests.swift +++ b/Tests/TMDbTests/Domain/Services/Lists/Requests/RemoveMediaRequestTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.requests, .list)) diff --git a/Tests/TMDbTests/Domain/Services/Lists/TMDbListServiceDetailsTests.swift b/Tests/TMDbTests/Domain/Services/Lists/TMDbListServiceDetailsTests.swift index 26a3a226..7256a3af 100644 --- a/Tests/TMDbTests/Domain/Services/Lists/TMDbListServiceDetailsTests.swift +++ b/Tests/TMDbTests/Domain/Services/Lists/TMDbListServiceDetailsTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.services, .list)) diff --git a/Tests/TMDbTests/Domain/Services/Lists/TMDbListServiceManagementTests.swift b/Tests/TMDbTests/Domain/Services/Lists/TMDbListServiceManagementTests.swift index 5e02d069..f65c779c 100644 --- a/Tests/TMDbTests/Domain/Services/Lists/TMDbListServiceManagementTests.swift +++ b/Tests/TMDbTests/Domain/Services/Lists/TMDbListServiceManagementTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.services, .list)) diff --git a/Tests/TMDbTests/Domain/Services/Movies/Filters/MovieImageFilterTests.swift b/Tests/TMDbTests/Domain/Services/Movies/Filters/MovieImageFilterTests.swift new file mode 100644 index 00000000..68ef0466 --- /dev/null +++ b/Tests/TMDbTests/Domain/Services/Movies/Filters/MovieImageFilterTests.swift @@ -0,0 +1,31 @@ +// +// MovieImageFilterTests.swift +// TMDb +// +// Copyright © 2026 Adam Young. +// + +import Foundation +import Testing +@testable import TMDb + +@Suite(.tags(.filters, .movie)) +struct MovieImageFilterTests { + + @Test("init with default values creates filter with nil properties") + func initWithDefaultValuesCreatesFilterWithNilProperties() { + let filter = MovieImageFilter() + + #expect(filter.languages == nil) + } + + @Test("init with languages sets languages property") + func initWithLanguagesSetsLanguagesProperty() { + let languages = ["en", "fr", "de"] + + let filter = MovieImageFilter(languages: languages) + + #expect(filter.languages == languages) + } + +} diff --git a/Tests/TMDbTests/Domain/Services/Movies/Filters/MovieVideoFilterTests.swift b/Tests/TMDbTests/Domain/Services/Movies/Filters/MovieVideoFilterTests.swift new file mode 100644 index 00000000..1194da0e --- /dev/null +++ b/Tests/TMDbTests/Domain/Services/Movies/Filters/MovieVideoFilterTests.swift @@ -0,0 +1,31 @@ +// +// MovieVideoFilterTests.swift +// TMDb +// +// Copyright © 2026 Adam Young. +// + +import Foundation +import Testing +@testable import TMDb + +@Suite(.tags(.filters, .movie)) +struct MovieVideoFilterTests { + + @Test("init with default values creates filter with nil properties") + func initWithDefaultValuesCreatesFilterWithNilProperties() { + let filter = MovieVideoFilter() + + #expect(filter.languages == nil) + } + + @Test("init with languages sets languages property") + func initWithLanguagesSetsLanguagesProperty() { + let languages = ["en", "fr", "de"] + + let filter = MovieVideoFilter(languages: languages) + + #expect(filter.languages == languages) + } + +} diff --git a/Tests/TMDbTests/Domain/Services/Movies/Requests/MovieCreditsRequestTests.swift b/Tests/TMDbTests/Domain/Services/Movies/Requests/MovieCreditsRequestTests.swift index 34119596..75c7af01 100644 --- a/Tests/TMDbTests/Domain/Services/Movies/Requests/MovieCreditsRequestTests.swift +++ b/Tests/TMDbTests/Domain/Services/Movies/Requests/MovieCreditsRequestTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.requests, .movie)) diff --git a/Tests/TMDbTests/Domain/Services/Movies/Requests/MovieExternalLinksRequestTests.swift b/Tests/TMDbTests/Domain/Services/Movies/Requests/MovieExternalLinksRequestTests.swift index e9abbbc6..480a2546 100644 --- a/Tests/TMDbTests/Domain/Services/Movies/Requests/MovieExternalLinksRequestTests.swift +++ b/Tests/TMDbTests/Domain/Services/Movies/Requests/MovieExternalLinksRequestTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.requests, .movie)) diff --git a/Tests/TMDbTests/Domain/Services/Movies/Requests/MovieImagesRequestTests.swift b/Tests/TMDbTests/Domain/Services/Movies/Requests/MovieImagesRequestTests.swift index 1bf96302..cd4303eb 100644 --- a/Tests/TMDbTests/Domain/Services/Movies/Requests/MovieImagesRequestTests.swift +++ b/Tests/TMDbTests/Domain/Services/Movies/Requests/MovieImagesRequestTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.requests, .movie)) diff --git a/Tests/TMDbTests/Domain/Services/Movies/Requests/MovieRecommendationsRequestTests.swift b/Tests/TMDbTests/Domain/Services/Movies/Requests/MovieRecommendationsRequestTests.swift index aa34d166..5229f4ce 100644 --- a/Tests/TMDbTests/Domain/Services/Movies/Requests/MovieRecommendationsRequestTests.swift +++ b/Tests/TMDbTests/Domain/Services/Movies/Requests/MovieRecommendationsRequestTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.requests, .movie)) diff --git a/Tests/TMDbTests/Domain/Services/Movies/Requests/MovieReleaseDatesRequestTests.swift b/Tests/TMDbTests/Domain/Services/Movies/Requests/MovieReleaseDatesRequestTests.swift index e2594307..36440f42 100644 --- a/Tests/TMDbTests/Domain/Services/Movies/Requests/MovieReleaseDatesRequestTests.swift +++ b/Tests/TMDbTests/Domain/Services/Movies/Requests/MovieReleaseDatesRequestTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.requests, .movie)) diff --git a/Tests/TMDbTests/Domain/Services/Movies/Requests/MovieRequestTests.swift b/Tests/TMDbTests/Domain/Services/Movies/Requests/MovieRequestTests.swift index 356be02c..326ff600 100644 --- a/Tests/TMDbTests/Domain/Services/Movies/Requests/MovieRequestTests.swift +++ b/Tests/TMDbTests/Domain/Services/Movies/Requests/MovieRequestTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.requests, .movie)) diff --git a/Tests/TMDbTests/Domain/Services/Movies/Requests/MovieReviewsRequestTests.swift b/Tests/TMDbTests/Domain/Services/Movies/Requests/MovieReviewsRequestTests.swift index 8f5e5a7c..9775a4a7 100644 --- a/Tests/TMDbTests/Domain/Services/Movies/Requests/MovieReviewsRequestTests.swift +++ b/Tests/TMDbTests/Domain/Services/Movies/Requests/MovieReviewsRequestTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.requests, .movie)) diff --git a/Tests/TMDbTests/Domain/Services/Movies/Requests/MovieVideosRequestTests.swift b/Tests/TMDbTests/Domain/Services/Movies/Requests/MovieVideosRequestTests.swift index 49df54d2..680d1e7f 100644 --- a/Tests/TMDbTests/Domain/Services/Movies/Requests/MovieVideosRequestTests.swift +++ b/Tests/TMDbTests/Domain/Services/Movies/Requests/MovieVideosRequestTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.requests, .movie)) diff --git a/Tests/TMDbTests/Domain/Services/Movies/Requests/MovieWatchProvidersRequestTests.swift b/Tests/TMDbTests/Domain/Services/Movies/Requests/MovieWatchProvidersRequestTests.swift index 7d5bd274..14767648 100644 --- a/Tests/TMDbTests/Domain/Services/Movies/Requests/MovieWatchProvidersRequestTests.swift +++ b/Tests/TMDbTests/Domain/Services/Movies/Requests/MovieWatchProvidersRequestTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.requests, .movie)) diff --git a/Tests/TMDbTests/Domain/Services/Movies/Requests/MoviesNowPlayingRequestTests.swift b/Tests/TMDbTests/Domain/Services/Movies/Requests/MoviesNowPlayingRequestTests.swift index badf0fc5..7fde30e9 100644 --- a/Tests/TMDbTests/Domain/Services/Movies/Requests/MoviesNowPlayingRequestTests.swift +++ b/Tests/TMDbTests/Domain/Services/Movies/Requests/MoviesNowPlayingRequestTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.requests, .movie)) diff --git a/Tests/TMDbTests/Domain/Services/Movies/Requests/PopularMoviesRequestTests.swift b/Tests/TMDbTests/Domain/Services/Movies/Requests/PopularMoviesRequestTests.swift index 1063fe51..b1268d88 100644 --- a/Tests/TMDbTests/Domain/Services/Movies/Requests/PopularMoviesRequestTests.swift +++ b/Tests/TMDbTests/Domain/Services/Movies/Requests/PopularMoviesRequestTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.requests, .movie)) diff --git a/Tests/TMDbTests/Domain/Services/Movies/Requests/SimilarMoviesRequest.swift b/Tests/TMDbTests/Domain/Services/Movies/Requests/SimilarMoviesRequestTests.swift similarity index 97% rename from Tests/TMDbTests/Domain/Services/Movies/Requests/SimilarMoviesRequest.swift rename to Tests/TMDbTests/Domain/Services/Movies/Requests/SimilarMoviesRequestTests.swift index 7d55794a..3aaabdb5 100644 --- a/Tests/TMDbTests/Domain/Services/Movies/Requests/SimilarMoviesRequest.swift +++ b/Tests/TMDbTests/Domain/Services/Movies/Requests/SimilarMoviesRequestTests.swift @@ -1,5 +1,5 @@ // -// SimilarMoviesRequest.swift +// SimilarMoviesRequestTests.swift // TMDb // // Copyright © 2026 Adam Young. @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.requests, .movie)) diff --git a/Tests/TMDbTests/Domain/Services/Movies/Requests/TopRatedMoviesRequestTests.swift b/Tests/TMDbTests/Domain/Services/Movies/Requests/TopRatedMoviesRequestTests.swift index 7d21383b..45098684 100644 --- a/Tests/TMDbTests/Domain/Services/Movies/Requests/TopRatedMoviesRequestTests.swift +++ b/Tests/TMDbTests/Domain/Services/Movies/Requests/TopRatedMoviesRequestTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.requests, .movie)) diff --git a/Tests/TMDbTests/Domain/Services/Movies/Requests/UpcomingMoviesRequestTests.swift b/Tests/TMDbTests/Domain/Services/Movies/Requests/UpcomingMoviesRequestTests.swift index b4dad6b8..a1d63b7f 100644 --- a/Tests/TMDbTests/Domain/Services/Movies/Requests/UpcomingMoviesRequestTests.swift +++ b/Tests/TMDbTests/Domain/Services/Movies/Requests/UpcomingMoviesRequestTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.requests, .movie)) diff --git a/Tests/TMDbTests/Domain/Services/Movies/TMDbMovieServiceConfigurationTests.swift b/Tests/TMDbTests/Domain/Services/Movies/TMDbMovieServiceConfigurationTests.swift index 3898e98f..2f15106e 100644 --- a/Tests/TMDbTests/Domain/Services/Movies/TMDbMovieServiceConfigurationTests.swift +++ b/Tests/TMDbTests/Domain/Services/Movies/TMDbMovieServiceConfigurationTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.services, .movie)) diff --git a/Tests/TMDbTests/Domain/Services/Movies/TMDbMovieServiceCreditsTests.swift b/Tests/TMDbTests/Domain/Services/Movies/TMDbMovieServiceCreditsTests.swift index e49dda8c..62eccf3e 100644 --- a/Tests/TMDbTests/Domain/Services/Movies/TMDbMovieServiceCreditsTests.swift +++ b/Tests/TMDbTests/Domain/Services/Movies/TMDbMovieServiceCreditsTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.services, .movie)) diff --git a/Tests/TMDbTests/Domain/Services/Movies/TMDbMovieServiceDetailsTests.swift b/Tests/TMDbTests/Domain/Services/Movies/TMDbMovieServiceDetailsTests.swift index 91ff7414..f8c48856 100644 --- a/Tests/TMDbTests/Domain/Services/Movies/TMDbMovieServiceDetailsTests.swift +++ b/Tests/TMDbTests/Domain/Services/Movies/TMDbMovieServiceDetailsTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.services, .movie)) diff --git a/Tests/TMDbTests/Domain/Services/Movies/TMDbMovieServiceListsTests.swift b/Tests/TMDbTests/Domain/Services/Movies/TMDbMovieServiceListsTests.swift index 4651b2f6..0f10881d 100644 --- a/Tests/TMDbTests/Domain/Services/Movies/TMDbMovieServiceListsTests.swift +++ b/Tests/TMDbTests/Domain/Services/Movies/TMDbMovieServiceListsTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.services, .movie)) diff --git a/Tests/TMDbTests/Domain/Services/Movies/TMDbMovieServiceMediaTests.swift b/Tests/TMDbTests/Domain/Services/Movies/TMDbMovieServiceMediaTests.swift index 1de6551d..a274bc50 100644 --- a/Tests/TMDbTests/Domain/Services/Movies/TMDbMovieServiceMediaTests.swift +++ b/Tests/TMDbTests/Domain/Services/Movies/TMDbMovieServiceMediaTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.services, .movie)) diff --git a/Tests/TMDbTests/Domain/Services/Movies/TMDbMovieServiceOthersTests.swift b/Tests/TMDbTests/Domain/Services/Movies/TMDbMovieServiceOthersTests.swift index df11abb7..14c0d374 100644 --- a/Tests/TMDbTests/Domain/Services/Movies/TMDbMovieServiceOthersTests.swift +++ b/Tests/TMDbTests/Domain/Services/Movies/TMDbMovieServiceOthersTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.services, .movie)) diff --git a/Tests/TMDbTests/Domain/Services/Movies/TMDbMovieServiceReleaseDatesTests.swift b/Tests/TMDbTests/Domain/Services/Movies/TMDbMovieServiceReleaseDatesTests.swift index 955323b2..0b1453f9 100644 --- a/Tests/TMDbTests/Domain/Services/Movies/TMDbMovieServiceReleaseDatesTests.swift +++ b/Tests/TMDbTests/Domain/Services/Movies/TMDbMovieServiceReleaseDatesTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.services, .movie)) diff --git a/Tests/TMDbTests/Domain/Services/Movies/TMDbMovieServiceReviewsTests.swift b/Tests/TMDbTests/Domain/Services/Movies/TMDbMovieServiceReviewsTests.swift index 37efa17e..e4e770e9 100644 --- a/Tests/TMDbTests/Domain/Services/Movies/TMDbMovieServiceReviewsTests.swift +++ b/Tests/TMDbTests/Domain/Services/Movies/TMDbMovieServiceReviewsTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.services, .movie)) diff --git a/Tests/TMDbTests/Domain/Services/Networks/Requests/NetworkAlternativeNamesRequestTests.swift b/Tests/TMDbTests/Domain/Services/Networks/Requests/NetworkAlternativeNamesRequestTests.swift index 4f0a2860..4ef4c0b5 100644 --- a/Tests/TMDbTests/Domain/Services/Networks/Requests/NetworkAlternativeNamesRequestTests.swift +++ b/Tests/TMDbTests/Domain/Services/Networks/Requests/NetworkAlternativeNamesRequestTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.requests, .network)) diff --git a/Tests/TMDbTests/Domain/Services/Networks/Requests/NetworkImagesRequestTests.swift b/Tests/TMDbTests/Domain/Services/Networks/Requests/NetworkImagesRequestTests.swift index 4381bd8b..9aaa9cb8 100644 --- a/Tests/TMDbTests/Domain/Services/Networks/Requests/NetworkImagesRequestTests.swift +++ b/Tests/TMDbTests/Domain/Services/Networks/Requests/NetworkImagesRequestTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.requests, .network)) diff --git a/Tests/TMDbTests/Domain/Services/Networks/Requests/NetworkRequestTests.swift b/Tests/TMDbTests/Domain/Services/Networks/Requests/NetworkRequestTests.swift index d21d793c..62b60590 100644 --- a/Tests/TMDbTests/Domain/Services/Networks/Requests/NetworkRequestTests.swift +++ b/Tests/TMDbTests/Domain/Services/Networks/Requests/NetworkRequestTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.requests, .network)) diff --git a/Tests/TMDbTests/Domain/Services/Networks/TMDbNetworkServiceTests.swift b/Tests/TMDbTests/Domain/Services/Networks/TMDbNetworkServiceTests.swift index d2ddc75d..f786a85a 100644 --- a/Tests/TMDbTests/Domain/Services/Networks/TMDbNetworkServiceTests.swift +++ b/Tests/TMDbTests/Domain/Services/Networks/TMDbNetworkServiceTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.services, .network)) diff --git a/Tests/TMDbTests/Domain/Services/People/Requests/PersonCombinedCreditsRequestTests.swift b/Tests/TMDbTests/Domain/Services/People/Requests/PersonCombinedCreditsRequestTests.swift index 80b5ac22..54f96880 100644 --- a/Tests/TMDbTests/Domain/Services/People/Requests/PersonCombinedCreditsRequestTests.swift +++ b/Tests/TMDbTests/Domain/Services/People/Requests/PersonCombinedCreditsRequestTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.requests, .people)) diff --git a/Tests/TMDbTests/Domain/Services/People/Requests/PersonExternalLinksRequestTests.swift b/Tests/TMDbTests/Domain/Services/People/Requests/PersonExternalLinksRequestTests.swift index 9a0fc54f..aa660e11 100644 --- a/Tests/TMDbTests/Domain/Services/People/Requests/PersonExternalLinksRequestTests.swift +++ b/Tests/TMDbTests/Domain/Services/People/Requests/PersonExternalLinksRequestTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.requests, .people)) diff --git a/Tests/TMDbTests/Domain/Services/People/Requests/PersonImagesRequestTests.swift b/Tests/TMDbTests/Domain/Services/People/Requests/PersonImagesRequestTests.swift index cb0b3ae5..0d4bffbf 100644 --- a/Tests/TMDbTests/Domain/Services/People/Requests/PersonImagesRequestTests.swift +++ b/Tests/TMDbTests/Domain/Services/People/Requests/PersonImagesRequestTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.requests, .people)) diff --git a/Tests/TMDbTests/Domain/Services/People/Requests/PersonMovieCreditsRequestTests.swift b/Tests/TMDbTests/Domain/Services/People/Requests/PersonMovieCreditsRequestTests.swift index 205462f3..e97e81e7 100644 --- a/Tests/TMDbTests/Domain/Services/People/Requests/PersonMovieCreditsRequestTests.swift +++ b/Tests/TMDbTests/Domain/Services/People/Requests/PersonMovieCreditsRequestTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.requests, .people)) diff --git a/Tests/TMDbTests/Domain/Services/People/Requests/PersonRequestTests.swift b/Tests/TMDbTests/Domain/Services/People/Requests/PersonRequestTests.swift index c27d57b6..df242aa6 100644 --- a/Tests/TMDbTests/Domain/Services/People/Requests/PersonRequestTests.swift +++ b/Tests/TMDbTests/Domain/Services/People/Requests/PersonRequestTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.requests, .people)) diff --git a/Tests/TMDbTests/Domain/Services/People/Requests/PersonTVSeriesCreditsRequestTests.swift b/Tests/TMDbTests/Domain/Services/People/Requests/PersonTVSeriesCreditsRequestTests.swift index 02208946..ca31b6b2 100644 --- a/Tests/TMDbTests/Domain/Services/People/Requests/PersonTVSeriesCreditsRequestTests.swift +++ b/Tests/TMDbTests/Domain/Services/People/Requests/PersonTVSeriesCreditsRequestTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.requests, .people)) diff --git a/Tests/TMDbTests/Domain/Services/People/Requests/PopularPeopleRequestTests.swift b/Tests/TMDbTests/Domain/Services/People/Requests/PopularPeopleRequestTests.swift index c103b8be..154d3b7b 100644 --- a/Tests/TMDbTests/Domain/Services/People/Requests/PopularPeopleRequestTests.swift +++ b/Tests/TMDbTests/Domain/Services/People/Requests/PopularPeopleRequestTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.requests, .people)) diff --git a/Tests/TMDbTests/Domain/Services/People/TMDbPersonServiceTests.swift b/Tests/TMDbTests/Domain/Services/People/TMDbPersonServiceTests.swift index 44b70e49..875dc92f 100644 --- a/Tests/TMDbTests/Domain/Services/People/TMDbPersonServiceTests.swift +++ b/Tests/TMDbTests/Domain/Services/People/TMDbPersonServiceTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.requests, .people)) diff --git a/Tests/TMDbTests/Domain/Services/Search/Filters/AllMediaSearchFilterTests.swift b/Tests/TMDbTests/Domain/Services/Search/Filters/AllMediaSearchFilterTests.swift new file mode 100644 index 00000000..ef394ed0 --- /dev/null +++ b/Tests/TMDbTests/Domain/Services/Search/Filters/AllMediaSearchFilterTests.swift @@ -0,0 +1,31 @@ +// +// AllMediaSearchFilterTests.swift +// TMDb +// +// Copyright © 2026 Adam Young. +// + +import Foundation +import Testing +@testable import TMDb + +@Suite(.tags(.filters, .search)) +struct AllMediaSearchFilterTests { + + @Test("init with default values creates filter with nil properties") + func initWithDefaultValuesCreatesFilterWithNilProperties() { + let filter = AllMediaSearchFilter() + + #expect(filter.includeAdult == nil) + } + + @Test("init with include adult sets include adult property") + func initWithIncludeAdultSetsIncludeAdultProperty() { + let includeAdult = true + + let filter = AllMediaSearchFilter(includeAdult: includeAdult) + + #expect(filter.includeAdult == includeAdult) + } + +} diff --git a/Tests/TMDbTests/Domain/Services/Search/Filters/MovieSearchFilterTests.swift b/Tests/TMDbTests/Domain/Services/Search/Filters/MovieSearchFilterTests.swift new file mode 100644 index 00000000..bc891002 --- /dev/null +++ b/Tests/TMDbTests/Domain/Services/Search/Filters/MovieSearchFilterTests.swift @@ -0,0 +1,74 @@ +// +// MovieSearchFilterTests.swift +// TMDb +// +// Copyright © 2026 Adam Young. +// + +import Foundation +import Testing +@testable import TMDb + +@Suite(.tags(.filters, .search)) +struct MovieSearchFilterTests { + + @Test("init with default values creates filter with nil properties") + func initWithDefaultValuesCreatesFilterWithNilProperties() { + let filter = MovieSearchFilter() + + #expect(filter.primaryReleaseYear == nil) + #expect(filter.country == nil) + #expect(filter.includeAdult == nil) + } + + @Test("init with primary release year sets primary release year property") + func initWithPrimaryReleaseYearSetsPrimaryReleaseYearProperty() { + let primaryReleaseYear = 2024 + + let filter = MovieSearchFilter(primaryReleaseYear: primaryReleaseYear) + + #expect(filter.primaryReleaseYear == primaryReleaseYear) + #expect(filter.country == nil) + #expect(filter.includeAdult == nil) + } + + @Test("init with country sets country property") + func initWithCountrySetsCountryProperty() { + let country = "US" + + let filter = MovieSearchFilter(country: country) + + #expect(filter.primaryReleaseYear == nil) + #expect(filter.country == country) + #expect(filter.includeAdult == nil) + } + + @Test("init with include adult sets include adult property") + func initWithIncludeAdultSetsIncludeAdultProperty() { + let includeAdult = true + + let filter = MovieSearchFilter(includeAdult: includeAdult) + + #expect(filter.primaryReleaseYear == nil) + #expect(filter.country == nil) + #expect(filter.includeAdult == includeAdult) + } + + @Test("init with all parameters sets all properties") + func initWithAllParametersSetsAllProperties() { + let primaryReleaseYear = 2024 + let country = "US" + let includeAdult = true + + let filter = MovieSearchFilter( + primaryReleaseYear: primaryReleaseYear, + country: country, + includeAdult: includeAdult + ) + + #expect(filter.primaryReleaseYear == primaryReleaseYear) + #expect(filter.country == country) + #expect(filter.includeAdult == includeAdult) + } + +} diff --git a/Tests/TMDbTests/Domain/Services/Search/Filters/PersonSearchFilterTests.swift b/Tests/TMDbTests/Domain/Services/Search/Filters/PersonSearchFilterTests.swift new file mode 100644 index 00000000..e34c3696 --- /dev/null +++ b/Tests/TMDbTests/Domain/Services/Search/Filters/PersonSearchFilterTests.swift @@ -0,0 +1,31 @@ +// +// PersonSearchFilterTests.swift +// TMDb +// +// Copyright © 2026 Adam Young. +// + +import Foundation +import Testing +@testable import TMDb + +@Suite(.tags(.filters, .search)) +struct PersonSearchFilterTests { + + @Test("init with default values creates filter with nil properties") + func initWithDefaultValuesCreatesFilterWithNilProperties() { + let filter = PersonSearchFilter() + + #expect(filter.includeAdult == nil) + } + + @Test("init with include adult sets include adult property") + func initWithIncludeAdultSetsIncludeAdultProperty() { + let includeAdult = true + + let filter = PersonSearchFilter(includeAdult: includeAdult) + + #expect(filter.includeAdult == includeAdult) + } + +} diff --git a/Tests/TMDbTests/Domain/Services/Search/Filters/TVSeriesSearchFilterTests.swift b/Tests/TMDbTests/Domain/Services/Search/Filters/TVSeriesSearchFilterTests.swift new file mode 100644 index 00000000..dbcc7faa --- /dev/null +++ b/Tests/TMDbTests/Domain/Services/Search/Filters/TVSeriesSearchFilterTests.swift @@ -0,0 +1,74 @@ +// +// TVSeriesSearchFilterTests.swift +// TMDb +// +// Copyright © 2026 Adam Young. +// + +import Foundation +import Testing +@testable import TMDb + +@Suite(.tags(.filters, .search)) +struct TVSeriesSearchFilterTests { + + @Test("init with default values creates filter with nil properties") + func initWithDefaultValuesCreatesFilterWithNilProperties() { + let filter = TVSeriesSearchFilter(firstAirDateYear: nil, year: nil, includeAdult: nil) + + #expect(filter.firstAirDateYear == nil) + #expect(filter.year == nil) + #expect(filter.includeAdult == nil) + } + + @Test("init with first air date year sets first air date year property") + func initWithFirstAirDateYearSetsFirstAirDateYearProperty() { + let firstAirDateYear = 2024 + + let filter = TVSeriesSearchFilter(firstAirDateYear: firstAirDateYear, year: nil, includeAdult: nil) + + #expect(filter.firstAirDateYear == firstAirDateYear) + #expect(filter.year == nil) + #expect(filter.includeAdult == nil) + } + + @Test("init with year sets year property") + func initWithYearSetsYearProperty() { + let year = 2024 + + let filter = TVSeriesSearchFilter(firstAirDateYear: nil, year: year, includeAdult: nil) + + #expect(filter.firstAirDateYear == nil) + #expect(filter.year == year) + #expect(filter.includeAdult == nil) + } + + @Test("init with include adult sets include adult property") + func initWithIncludeAdultSetsIncludeAdultProperty() { + let includeAdult = true + + let filter = TVSeriesSearchFilter(firstAirDateYear: nil, year: nil, includeAdult: includeAdult) + + #expect(filter.firstAirDateYear == nil) + #expect(filter.year == nil) + #expect(filter.includeAdult == includeAdult) + } + + @Test("init with all parameters sets all properties") + func initWithAllParametersSetsAllProperties() { + let firstAirDateYear = 2024 + let year = 2023 + let includeAdult = true + + let filter = TVSeriesSearchFilter( + firstAirDateYear: firstAirDateYear, + year: year, + includeAdult: includeAdult + ) + + #expect(filter.firstAirDateYear == firstAirDateYear) + #expect(filter.year == year) + #expect(filter.includeAdult == includeAdult) + } + +} diff --git a/Tests/TMDbTests/Domain/Services/Search/Requests/MovieSearchRequestTests.swift b/Tests/TMDbTests/Domain/Services/Search/Requests/MovieSearchRequestTests.swift index 41245e7c..9dba69b2 100644 --- a/Tests/TMDbTests/Domain/Services/Search/Requests/MovieSearchRequestTests.swift +++ b/Tests/TMDbTests/Domain/Services/Search/Requests/MovieSearchRequestTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.requests, .search)) @@ -79,7 +78,8 @@ struct MovieSearchRequestTests { "include_adult": "false", "page": "2", "language": "en" - ]) + ] + ) } @Test("method is GET") diff --git a/Tests/TMDbTests/Domain/Services/Search/Requests/MultiSearchRequestTests.swift b/Tests/TMDbTests/Domain/Services/Search/Requests/MultiSearchRequestTests.swift index fe2e57f3..4d6104a4 100644 --- a/Tests/TMDbTests/Domain/Services/Search/Requests/MultiSearchRequestTests.swift +++ b/Tests/TMDbTests/Domain/Services/Search/Requests/MultiSearchRequestTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.requests, .search)) @@ -63,7 +62,8 @@ struct MultiSearchRequestTests { "page": "2", "include_adult": "false", "language": "en" - ]) + ] + ) } @Test("method is GET") diff --git a/Tests/TMDbTests/Domain/Services/Search/Requests/PersonSearchRequestTests.swift b/Tests/TMDbTests/Domain/Services/Search/Requests/PersonSearchRequestTests.swift index 9ad5a66b..932c9aa2 100644 --- a/Tests/TMDbTests/Domain/Services/Search/Requests/PersonSearchRequestTests.swift +++ b/Tests/TMDbTests/Domain/Services/Search/Requests/PersonSearchRequestTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.requests, .search)) @@ -60,7 +59,8 @@ struct PersonSearchRequestTests { "include_adult": "false", "page": "2", "language": "en" - ]) + ] + ) } @Test("method is GET") diff --git a/Tests/TMDbTests/Domain/Services/Search/Requests/TVSeriesSearchRequestTests.swift b/Tests/TMDbTests/Domain/Services/Search/Requests/TVSeriesSearchRequestTests.swift index 61398afe..ea783345 100644 --- a/Tests/TMDbTests/Domain/Services/Search/Requests/TVSeriesSearchRequestTests.swift +++ b/Tests/TMDbTests/Domain/Services/Search/Requests/TVSeriesSearchRequestTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.requests, .search)) @@ -81,7 +80,8 @@ struct TVSeriesSearchRequestTests { "include_adult": "false", "page": "3", "language": "en" - ]) + ] + ) } @Test("method is GET") diff --git a/Tests/TMDbTests/Domain/Services/Search/TMDbSearchServiceTests.swift b/Tests/TMDbTests/Domain/Services/Search/TMDbSearchServiceTests.swift index 62164a6a..62b75f1d 100644 --- a/Tests/TMDbTests/Domain/Services/Search/TMDbSearchServiceTests.swift +++ b/Tests/TMDbTests/Domain/Services/Search/TMDbSearchServiceTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.requests, .search)) diff --git a/Tests/TMDbTests/Domain/Services/TVEpisodes/Filters/TVEpisodeImageFilterTests.swift b/Tests/TMDbTests/Domain/Services/TVEpisodes/Filters/TVEpisodeImageFilterTests.swift new file mode 100644 index 00000000..fb9d8696 --- /dev/null +++ b/Tests/TMDbTests/Domain/Services/TVEpisodes/Filters/TVEpisodeImageFilterTests.swift @@ -0,0 +1,31 @@ +// +// TVEpisodeImageFilterTests.swift +// TMDb +// +// Copyright © 2026 Adam Young. +// + +import Foundation +import Testing +@testable import TMDb + +@Suite(.tags(.filters, .tvEpisode)) +struct TVEpisodeImageFilterTests { + + @Test("init with default values creates filter with nil properties") + func initWithDefaultValuesCreatesFilterWithNilProperties() { + let filter = TVEpisodeImageFilter() + + #expect(filter.languages == nil) + } + + @Test("init with languages sets languages property") + func initWithLanguagesSetsLanguagesProperty() { + let languages = ["en", "fr", "de"] + + let filter = TVEpisodeImageFilter(languages: languages) + + #expect(filter.languages == languages) + } + +} diff --git a/Tests/TMDbTests/Domain/Services/TVEpisodes/Filters/TVEpisodeVideoFilterTests.swift b/Tests/TMDbTests/Domain/Services/TVEpisodes/Filters/TVEpisodeVideoFilterTests.swift new file mode 100644 index 00000000..6f42f317 --- /dev/null +++ b/Tests/TMDbTests/Domain/Services/TVEpisodes/Filters/TVEpisodeVideoFilterTests.swift @@ -0,0 +1,31 @@ +// +// TVEpisodeVideoFilterTests.swift +// TMDb +// +// Copyright © 2026 Adam Young. +// + +import Foundation +import Testing +@testable import TMDb + +@Suite(.tags(.filters, .tvEpisode)) +struct TVEpisodeVideoFilterTests { + + @Test("init with default values creates filter with nil properties") + func initWithDefaultValuesCreatesFilterWithNilProperties() { + let filter = TVEpisodeVideoFilter() + + #expect(filter.languages == nil) + } + + @Test("init with languages sets languages property") + func initWithLanguagesSetsLanguagesProperty() { + let languages = ["en", "fr", "de"] + + let filter = TVEpisodeVideoFilter(languages: languages) + + #expect(filter.languages == languages) + } + +} diff --git a/Tests/TMDbTests/Domain/Services/TVEpisodes/Requests/TVEpisodeCreditsRequestTests.swift b/Tests/TMDbTests/Domain/Services/TVEpisodes/Requests/TVEpisodeCreditsRequestTests.swift index f3ad1caa..8f7a1fa2 100644 --- a/Tests/TMDbTests/Domain/Services/TVEpisodes/Requests/TVEpisodeCreditsRequestTests.swift +++ b/Tests/TMDbTests/Domain/Services/TVEpisodes/Requests/TVEpisodeCreditsRequestTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.requests, .tvEpisode)) diff --git a/Tests/TMDbTests/Domain/Services/TVEpisodes/Requests/TVEpisodeImagesRequestTests.swift b/Tests/TMDbTests/Domain/Services/TVEpisodes/Requests/TVEpisodeImagesRequestTests.swift index 4d56ec59..712824ec 100644 --- a/Tests/TMDbTests/Domain/Services/TVEpisodes/Requests/TVEpisodeImagesRequestTests.swift +++ b/Tests/TMDbTests/Domain/Services/TVEpisodes/Requests/TVEpisodeImagesRequestTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.requests, .tvEpisode)) diff --git a/Tests/TMDbTests/Domain/Services/TVEpisodes/Requests/TVEpisodeRequestTests.swift b/Tests/TMDbTests/Domain/Services/TVEpisodes/Requests/TVEpisodeRequestTests.swift index 84db331e..213b9bb9 100644 --- a/Tests/TMDbTests/Domain/Services/TVEpisodes/Requests/TVEpisodeRequestTests.swift +++ b/Tests/TMDbTests/Domain/Services/TVEpisodes/Requests/TVEpisodeRequestTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.requests, .tvEpisode)) diff --git a/Tests/TMDbTests/Domain/Services/TVEpisodes/Requests/TVEpisodeVideosRequestTests.swift b/Tests/TMDbTests/Domain/Services/TVEpisodes/Requests/TVEpisodeVideosRequestTests.swift index d9075354..1ec9f518 100644 --- a/Tests/TMDbTests/Domain/Services/TVEpisodes/Requests/TVEpisodeVideosRequestTests.swift +++ b/Tests/TMDbTests/Domain/Services/TVEpisodes/Requests/TVEpisodeVideosRequestTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.requests, .tvEpisode)) diff --git a/Tests/TMDbTests/Domain/Services/TVEpisodes/TMDbTVEpisodeServiceTests.swift b/Tests/TMDbTests/Domain/Services/TVEpisodes/TMDbTVEpisodeServiceTests.swift index 93cef183..31da51ef 100644 --- a/Tests/TMDbTests/Domain/Services/TVEpisodes/TMDbTVEpisodeServiceTests.swift +++ b/Tests/TMDbTests/Domain/Services/TVEpisodes/TMDbTVEpisodeServiceTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.services, .tvEpisode)) diff --git a/Tests/TMDbTests/Domain/Services/TVSeasons/Filters/TVSeasonImageFilterTests.swift b/Tests/TMDbTests/Domain/Services/TVSeasons/Filters/TVSeasonImageFilterTests.swift new file mode 100644 index 00000000..9d6a2987 --- /dev/null +++ b/Tests/TMDbTests/Domain/Services/TVSeasons/Filters/TVSeasonImageFilterTests.swift @@ -0,0 +1,31 @@ +// +// TVSeasonImageFilterTests.swift +// TMDb +// +// Copyright © 2026 Adam Young. +// + +import Foundation +import Testing +@testable import TMDb + +@Suite(.tags(.filters, .tvSeason)) +struct TVSeasonImageFilterTests { + + @Test("init with default values creates filter with nil properties") + func initWithDefaultValuesCreatesFilterWithNilProperties() { + let filter = TVSeasonImageFilter() + + #expect(filter.languages == nil) + } + + @Test("init with languages sets languages property") + func initWithLanguagesSetsLanguagesProperty() { + let languages = ["en", "fr", "de"] + + let filter = TVSeasonImageFilter(languages: languages) + + #expect(filter.languages == languages) + } + +} diff --git a/Tests/TMDbTests/Domain/Services/TVSeasons/Filters/TVSeasonVideoFilterTests.swift b/Tests/TMDbTests/Domain/Services/TVSeasons/Filters/TVSeasonVideoFilterTests.swift new file mode 100644 index 00000000..76413542 --- /dev/null +++ b/Tests/TMDbTests/Domain/Services/TVSeasons/Filters/TVSeasonVideoFilterTests.swift @@ -0,0 +1,31 @@ +// +// TVSeasonVideoFilterTests.swift +// TMDb +// +// Copyright © 2026 Adam Young. +// + +import Foundation +import Testing +@testable import TMDb + +@Suite(.tags(.filters, .tvSeason)) +struct TVSeasonVideoFilterTests { + + @Test("init with default values creates filter with nil properties") + func initWithDefaultValuesCreatesFilterWithNilProperties() { + let filter = TVSeasonVideoFilter() + + #expect(filter.languages == nil) + } + + @Test("init with languages sets languages property") + func initWithLanguagesSetsLanguagesProperty() { + let languages = ["en", "fr", "de"] + + let filter = TVSeasonVideoFilter(languages: languages) + + #expect(filter.languages == languages) + } + +} diff --git a/Tests/TMDbTests/Domain/Services/TVSeasons/Requests/TVSeasonAggregateCreditsRequestTests.swift b/Tests/TMDbTests/Domain/Services/TVSeasons/Requests/TVSeasonAggregateCreditsRequestTests.swift index 2ebe5217..13dffe0f 100644 --- a/Tests/TMDbTests/Domain/Services/TVSeasons/Requests/TVSeasonAggregateCreditsRequestTests.swift +++ b/Tests/TMDbTests/Domain/Services/TVSeasons/Requests/TVSeasonAggregateCreditsRequestTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.requests, .tvSeason)) diff --git a/Tests/TMDbTests/Domain/Services/TVSeasons/Requests/TVSeasonCreditsRequestTests.swift b/Tests/TMDbTests/Domain/Services/TVSeasons/Requests/TVSeasonCreditsRequestTests.swift index 96e50b44..929cce82 100644 --- a/Tests/TMDbTests/Domain/Services/TVSeasons/Requests/TVSeasonCreditsRequestTests.swift +++ b/Tests/TMDbTests/Domain/Services/TVSeasons/Requests/TVSeasonCreditsRequestTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.requests, .tvSeason)) diff --git a/Tests/TMDbTests/Domain/Services/TVSeasons/Requests/TVSeasonImagesRequestTests.swift b/Tests/TMDbTests/Domain/Services/TVSeasons/Requests/TVSeasonImagesRequestTests.swift index 57b1cb7c..fadcbf5f 100644 --- a/Tests/TMDbTests/Domain/Services/TVSeasons/Requests/TVSeasonImagesRequestTests.swift +++ b/Tests/TMDbTests/Domain/Services/TVSeasons/Requests/TVSeasonImagesRequestTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.requests, .tvSeason)) diff --git a/Tests/TMDbTests/Domain/Services/TVSeasons/Requests/TVSeasonRequestTests.swift b/Tests/TMDbTests/Domain/Services/TVSeasons/Requests/TVSeasonRequestTests.swift index d79b0b05..6d4f5544 100644 --- a/Tests/TMDbTests/Domain/Services/TVSeasons/Requests/TVSeasonRequestTests.swift +++ b/Tests/TMDbTests/Domain/Services/TVSeasons/Requests/TVSeasonRequestTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.requests, .tvSeason)) diff --git a/Tests/TMDbTests/Domain/Services/TVSeasons/Requests/TVSeasonVideosRequestTests.swift b/Tests/TMDbTests/Domain/Services/TVSeasons/Requests/TVSeasonVideosRequestTests.swift index aa1a6872..6a9e1442 100644 --- a/Tests/TMDbTests/Domain/Services/TVSeasons/Requests/TVSeasonVideosRequestTests.swift +++ b/Tests/TMDbTests/Domain/Services/TVSeasons/Requests/TVSeasonVideosRequestTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.requests, .tvSeason)) diff --git a/Tests/TMDbTests/Domain/Services/TVSeasons/TMDbTVSeasonServiceTests.swift b/Tests/TMDbTests/Domain/Services/TVSeasons/TMDbTVSeasonServiceTests.swift index 996991d5..59c31924 100644 --- a/Tests/TMDbTests/Domain/Services/TVSeasons/TMDbTVSeasonServiceTests.swift +++ b/Tests/TMDbTests/Domain/Services/TVSeasons/TMDbTVSeasonServiceTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.services, .tvSeason)) diff --git a/Tests/TMDbTests/Domain/Services/TVSeries/Filters/TVSeriesImageFilterTests.swift b/Tests/TMDbTests/Domain/Services/TVSeries/Filters/TVSeriesImageFilterTests.swift new file mode 100644 index 00000000..8a12bb56 --- /dev/null +++ b/Tests/TMDbTests/Domain/Services/TVSeries/Filters/TVSeriesImageFilterTests.swift @@ -0,0 +1,31 @@ +// +// TVSeriesImageFilterTests.swift +// TMDb +// +// Copyright © 2026 Adam Young. +// + +import Foundation +import Testing +@testable import TMDb + +@Suite(.tags(.filters, .tvSeries)) +struct TVSeriesImageFilterTests { + + @Test("init with default values creates filter with nil properties") + func initWithDefaultValuesCreatesFilterWithNilProperties() { + let filter = TVSeriesImageFilter() + + #expect(filter.languages == nil) + } + + @Test("init with languages sets languages property") + func initWithLanguagesSetsLanguagesProperty() { + let languages = ["en", "fr", "de"] + + let filter = TVSeriesImageFilter(languages: languages) + + #expect(filter.languages == languages) + } + +} diff --git a/Tests/TMDbTests/Domain/Services/TVSeries/Filters/TVSeriesVideoFilterTests.swift b/Tests/TMDbTests/Domain/Services/TVSeries/Filters/TVSeriesVideoFilterTests.swift new file mode 100644 index 00000000..d9c3e35c --- /dev/null +++ b/Tests/TMDbTests/Domain/Services/TVSeries/Filters/TVSeriesVideoFilterTests.swift @@ -0,0 +1,31 @@ +// +// TVSeriesVideoFilterTests.swift +// TMDb +// +// Copyright © 2026 Adam Young. +// + +import Foundation +import Testing +@testable import TMDb + +@Suite(.tags(.filters, .tvSeries)) +struct TVSeriesVideoFilterTests { + + @Test("init with default values creates filter with nil properties") + func initWithDefaultValuesCreatesFilterWithNilProperties() { + let filter = TVSeriesVideoFilter() + + #expect(filter.languages == nil) + } + + @Test("init with languages sets languages property") + func initWithLanguagesSetsLanguagesProperty() { + let languages = ["en", "fr", "de"] + + let filter = TVSeriesVideoFilter(languages: languages) + + #expect(filter.languages == languages) + } + +} diff --git a/Tests/TMDbTests/Domain/Services/TVSeries/Requests/PopularTVSeriesRequestTests.swift b/Tests/TMDbTests/Domain/Services/TVSeries/Requests/PopularTVSeriesRequestTests.swift index 04b5221e..81096ec0 100644 --- a/Tests/TMDbTests/Domain/Services/TVSeries/Requests/PopularTVSeriesRequestTests.swift +++ b/Tests/TMDbTests/Domain/Services/TVSeries/Requests/PopularTVSeriesRequestTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.requests, .tvSeries)) diff --git a/Tests/TMDbTests/Domain/Services/TVSeries/Requests/SimilarTVSeriesRequestTests.swift b/Tests/TMDbTests/Domain/Services/TVSeries/Requests/SimilarTVSeriesRequestTests.swift index 9312a122..762678c2 100644 --- a/Tests/TMDbTests/Domain/Services/TVSeries/Requests/SimilarTVSeriesRequestTests.swift +++ b/Tests/TMDbTests/Domain/Services/TVSeries/Requests/SimilarTVSeriesRequestTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.requests, .tvSeries)) diff --git a/Tests/TMDbTests/Domain/Services/TVSeries/Requests/TVSeriesAggregateCreditsRequestTests.swift b/Tests/TMDbTests/Domain/Services/TVSeries/Requests/TVSeriesAggregateCreditsRequestTests.swift index 8e6232e5..39ecff38 100644 --- a/Tests/TMDbTests/Domain/Services/TVSeries/Requests/TVSeriesAggregateCreditsRequestTests.swift +++ b/Tests/TMDbTests/Domain/Services/TVSeries/Requests/TVSeriesAggregateCreditsRequestTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.requests, .tvSeries)) diff --git a/Tests/TMDbTests/Domain/Services/TVSeries/Requests/TVSeriesAiringTodayRequestTests.swift b/Tests/TMDbTests/Domain/Services/TVSeries/Requests/TVSeriesAiringTodayRequestTests.swift index 21e7b688..1a348f27 100644 --- a/Tests/TMDbTests/Domain/Services/TVSeries/Requests/TVSeriesAiringTodayRequestTests.swift +++ b/Tests/TMDbTests/Domain/Services/TVSeries/Requests/TVSeriesAiringTodayRequestTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.requests, .tvSeries)) diff --git a/Tests/TMDbTests/Domain/Services/TVSeries/Requests/TVSeriesContentRatingsRequestTests.swift b/Tests/TMDbTests/Domain/Services/TVSeries/Requests/TVSeriesContentRatingsRequestTests.swift index 558ca683..038ddf09 100644 --- a/Tests/TMDbTests/Domain/Services/TVSeries/Requests/TVSeriesContentRatingsRequestTests.swift +++ b/Tests/TMDbTests/Domain/Services/TVSeries/Requests/TVSeriesContentRatingsRequestTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.requests, .tvSeries)) diff --git a/Tests/TMDbTests/Domain/Services/TVSeries/Requests/TVSeriesCreditsRequestTests.swift b/Tests/TMDbTests/Domain/Services/TVSeries/Requests/TVSeriesCreditsRequestTests.swift index ee016a48..bba81c8d 100644 --- a/Tests/TMDbTests/Domain/Services/TVSeries/Requests/TVSeriesCreditsRequestTests.swift +++ b/Tests/TMDbTests/Domain/Services/TVSeries/Requests/TVSeriesCreditsRequestTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.requests, .tvSeries)) diff --git a/Tests/TMDbTests/Domain/Services/TVSeries/Requests/TVSeriesExternalLinksRequestTests.swift b/Tests/TMDbTests/Domain/Services/TVSeries/Requests/TVSeriesExternalLinksRequestTests.swift index 97959315..ce56dde6 100644 --- a/Tests/TMDbTests/Domain/Services/TVSeries/Requests/TVSeriesExternalLinksRequestTests.swift +++ b/Tests/TMDbTests/Domain/Services/TVSeries/Requests/TVSeriesExternalLinksRequestTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.requests, .tvSeries)) diff --git a/Tests/TMDbTests/Domain/Services/TVSeries/Requests/TVSeriesImagesRequestTests.swift b/Tests/TMDbTests/Domain/Services/TVSeries/Requests/TVSeriesImagesRequestTests.swift index 339c9999..47324cad 100644 --- a/Tests/TMDbTests/Domain/Services/TVSeries/Requests/TVSeriesImagesRequestTests.swift +++ b/Tests/TMDbTests/Domain/Services/TVSeries/Requests/TVSeriesImagesRequestTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.requests, .tvSeries)) diff --git a/Tests/TMDbTests/Domain/Services/TVSeries/Requests/TVSeriesOnTheAirRequestTests.swift b/Tests/TMDbTests/Domain/Services/TVSeries/Requests/TVSeriesOnTheAirRequestTests.swift index 6e2d3b41..d81abec9 100644 --- a/Tests/TMDbTests/Domain/Services/TVSeries/Requests/TVSeriesOnTheAirRequestTests.swift +++ b/Tests/TMDbTests/Domain/Services/TVSeries/Requests/TVSeriesOnTheAirRequestTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.requests, .tvSeries)) diff --git a/Tests/TMDbTests/Domain/Services/TVSeries/Requests/TVSeriesRecommendationsRequestTests.swift b/Tests/TMDbTests/Domain/Services/TVSeries/Requests/TVSeriesRecommendationsRequestTests.swift index 81360d32..c22cddb2 100644 --- a/Tests/TMDbTests/Domain/Services/TVSeries/Requests/TVSeriesRecommendationsRequestTests.swift +++ b/Tests/TMDbTests/Domain/Services/TVSeries/Requests/TVSeriesRecommendationsRequestTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.requests, .tvSeries)) diff --git a/Tests/TMDbTests/Domain/Services/TVSeries/Requests/TVSeriesRequestTests.swift b/Tests/TMDbTests/Domain/Services/TVSeries/Requests/TVSeriesRequestTests.swift index a0142803..244558f1 100644 --- a/Tests/TMDbTests/Domain/Services/TVSeries/Requests/TVSeriesRequestTests.swift +++ b/Tests/TMDbTests/Domain/Services/TVSeries/Requests/TVSeriesRequestTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.requests, .tvSeries)) diff --git a/Tests/TMDbTests/Domain/Services/TVSeries/Requests/TVSeriesReviewsRequestTests.swift b/Tests/TMDbTests/Domain/Services/TVSeries/Requests/TVSeriesReviewsRequestTests.swift index e84e296b..ab3ad363 100644 --- a/Tests/TMDbTests/Domain/Services/TVSeries/Requests/TVSeriesReviewsRequestTests.swift +++ b/Tests/TMDbTests/Domain/Services/TVSeries/Requests/TVSeriesReviewsRequestTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.requests, .tvSeries)) diff --git a/Tests/TMDbTests/Domain/Services/TVSeries/Requests/TVSeriesVideosRequestTests.swift b/Tests/TMDbTests/Domain/Services/TVSeries/Requests/TVSeriesVideosRequestTests.swift index b61ba25e..09b0272c 100644 --- a/Tests/TMDbTests/Domain/Services/TVSeries/Requests/TVSeriesVideosRequestTests.swift +++ b/Tests/TMDbTests/Domain/Services/TVSeries/Requests/TVSeriesVideosRequestTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.requests, .tvSeries)) diff --git a/Tests/TMDbTests/Domain/Services/TVSeries/Requests/TVSeriesWatchProvidersRequestTests.swift b/Tests/TMDbTests/Domain/Services/TVSeries/Requests/TVSeriesWatchProvidersRequestTests.swift index f352c379..9131ac13 100644 --- a/Tests/TMDbTests/Domain/Services/TVSeries/Requests/TVSeriesWatchProvidersRequestTests.swift +++ b/Tests/TMDbTests/Domain/Services/TVSeries/Requests/TVSeriesWatchProvidersRequestTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.requests, .tvSeries)) diff --git a/Tests/TMDbTests/Domain/Services/TVSeries/Requests/TopRatedTVSeriesRequestTests.swift b/Tests/TMDbTests/Domain/Services/TVSeries/Requests/TopRatedTVSeriesRequestTests.swift index f7781e2a..97d25032 100644 --- a/Tests/TMDbTests/Domain/Services/TVSeries/Requests/TopRatedTVSeriesRequestTests.swift +++ b/Tests/TMDbTests/Domain/Services/TVSeries/Requests/TopRatedTVSeriesRequestTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.requests, .tvSeries)) diff --git a/Tests/TMDbTests/Domain/Services/TVSeries/TMDbTVSeriesServiceContentRatingTests.swift b/Tests/TMDbTests/Domain/Services/TVSeries/TMDbTVSeriesServiceContentRatingTests.swift index 166991ca..8339f0b3 100644 --- a/Tests/TMDbTests/Domain/Services/TVSeries/TMDbTVSeriesServiceContentRatingTests.swift +++ b/Tests/TMDbTests/Domain/Services/TVSeries/TMDbTVSeriesServiceContentRatingTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.services, .tvSeries)) diff --git a/Tests/TMDbTests/Domain/Services/TVSeries/TMDbTVSeriesServiceCreditsTests.swift b/Tests/TMDbTests/Domain/Services/TVSeries/TMDbTVSeriesServiceCreditsTests.swift index c358d083..9aa4d724 100644 --- a/Tests/TMDbTests/Domain/Services/TVSeries/TMDbTVSeriesServiceCreditsTests.swift +++ b/Tests/TMDbTests/Domain/Services/TVSeries/TMDbTVSeriesServiceCreditsTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.services, .tvSeries)) diff --git a/Tests/TMDbTests/Domain/Services/TVSeries/TMDbTVSeriesServiceDetailsTests.swift b/Tests/TMDbTests/Domain/Services/TVSeries/TMDbTVSeriesServiceDetailsTests.swift index 7b0909c9..57cf826b 100644 --- a/Tests/TMDbTests/Domain/Services/TVSeries/TMDbTVSeriesServiceDetailsTests.swift +++ b/Tests/TMDbTests/Domain/Services/TVSeries/TMDbTVSeriesServiceDetailsTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.services, .tvSeries)) diff --git a/Tests/TMDbTests/Domain/Services/TVSeries/TMDbTVSeriesServiceListsTests.swift b/Tests/TMDbTests/Domain/Services/TVSeries/TMDbTVSeriesServiceListsTests.swift index 96121b04..5dfff016 100644 --- a/Tests/TMDbTests/Domain/Services/TVSeries/TMDbTVSeriesServiceListsTests.swift +++ b/Tests/TMDbTests/Domain/Services/TVSeries/TMDbTVSeriesServiceListsTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.services, .tvSeries)) diff --git a/Tests/TMDbTests/Domain/Services/TVSeries/TMDbTVSeriesServiceMediaTests.swift b/Tests/TMDbTests/Domain/Services/TVSeries/TMDbTVSeriesServiceMediaTests.swift index 02e68df9..828c11e4 100644 --- a/Tests/TMDbTests/Domain/Services/TVSeries/TMDbTVSeriesServiceMediaTests.swift +++ b/Tests/TMDbTests/Domain/Services/TVSeries/TMDbTVSeriesServiceMediaTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.services, .tvSeries)) diff --git a/Tests/TMDbTests/Domain/Services/TVSeries/TMDbTVSeriesServiceOthersTests.swift b/Tests/TMDbTests/Domain/Services/TVSeries/TMDbTVSeriesServiceOthersTests.swift index 1a648aae..590b3639 100644 --- a/Tests/TMDbTests/Domain/Services/TVSeries/TMDbTVSeriesServiceOthersTests.swift +++ b/Tests/TMDbTests/Domain/Services/TVSeries/TMDbTVSeriesServiceOthersTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.services, .tvSeries)) diff --git a/Tests/TMDbTests/Domain/Services/TVSeries/TMDbTVSeriesServiceReviewsTests.swift b/Tests/TMDbTests/Domain/Services/TVSeries/TMDbTVSeriesServiceReviewsTests.swift index e18ff566..07070746 100644 --- a/Tests/TMDbTests/Domain/Services/TVSeries/TMDbTVSeriesServiceReviewsTests.swift +++ b/Tests/TMDbTests/Domain/Services/TVSeries/TMDbTVSeriesServiceReviewsTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.services, .tvSeries)) diff --git a/Tests/TMDbTests/Domain/Services/Trending/Filters/TrendingTimeWindowFilterTypeTests.swift b/Tests/TMDbTests/Domain/Services/Trending/Filters/TrendingTimeWindowFilterTypeTests.swift index 6c4f0c9f..32f45183 100644 --- a/Tests/TMDbTests/Domain/Services/Trending/Filters/TrendingTimeWindowFilterTypeTests.swift +++ b/Tests/TMDbTests/Domain/Services/Trending/Filters/TrendingTimeWindowFilterTypeTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.trending)) diff --git a/Tests/TMDbTests/Domain/Services/Trending/Requests/TrendingMoviesRequestTests.swift b/Tests/TMDbTests/Domain/Services/Trending/Requests/TrendingMoviesRequestTests.swift index 1cdeb5de..c77c5f58 100644 --- a/Tests/TMDbTests/Domain/Services/Trending/Requests/TrendingMoviesRequestTests.swift +++ b/Tests/TMDbTests/Domain/Services/Trending/Requests/TrendingMoviesRequestTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.requests, .trending)) diff --git a/Tests/TMDbTests/Domain/Services/Trending/Requests/TrendingPeopleRequestTests.swift b/Tests/TMDbTests/Domain/Services/Trending/Requests/TrendingPeopleRequestTests.swift index ca5564cc..1de70e8c 100644 --- a/Tests/TMDbTests/Domain/Services/Trending/Requests/TrendingPeopleRequestTests.swift +++ b/Tests/TMDbTests/Domain/Services/Trending/Requests/TrendingPeopleRequestTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.requests, .trending)) diff --git a/Tests/TMDbTests/Domain/Services/Trending/Requests/TrendingTVSeriesRequestTests.swift b/Tests/TMDbTests/Domain/Services/Trending/Requests/TrendingTVSeriesRequestTests.swift index 37142979..854da81a 100644 --- a/Tests/TMDbTests/Domain/Services/Trending/Requests/TrendingTVSeriesRequestTests.swift +++ b/Tests/TMDbTests/Domain/Services/Trending/Requests/TrendingTVSeriesRequestTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.requests, .trending)) diff --git a/Tests/TMDbTests/Domain/Services/Trending/TMDbTrendingServiceTests.swift b/Tests/TMDbTests/Domain/Services/Trending/TMDbTrendingServiceTests.swift index 587f1214..c1b2e199 100644 --- a/Tests/TMDbTests/Domain/Services/Trending/TMDbTrendingServiceTests.swift +++ b/Tests/TMDbTests/Domain/Services/Trending/TMDbTrendingServiceTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.services, .trending)) diff --git a/Tests/TMDbTests/Domain/Services/WatchProviders/Filters/WatchProviderFilterTests.swift b/Tests/TMDbTests/Domain/Services/WatchProviders/Filters/WatchProviderFilterTests.swift new file mode 100644 index 00000000..17b571dc --- /dev/null +++ b/Tests/TMDbTests/Domain/Services/WatchProviders/Filters/WatchProviderFilterTests.swift @@ -0,0 +1,31 @@ +// +// WatchProviderFilterTests.swift +// TMDb +// +// Copyright © 2026 Adam Young. +// + +import Foundation +import Testing +@testable import TMDb + +@Suite(.tags(.filters, .watchProvider)) +struct WatchProviderFilterTests { + + @Test("init with default values creates filter with nil properties") + func initWithDefaultValuesCreatesFilterWithNilProperties() { + let filter = WatchProviderFilter() + + #expect(filter.country == nil) + } + + @Test("init with country sets country property") + func initWithCountrySetsCountryProperty() { + let country = "US" + + let filter = WatchProviderFilter(country: country) + + #expect(filter.country == country) + } + +} diff --git a/Tests/TMDbTests/Domain/Services/WatchProviders/Requests/WatchProviderRegionsRequestTests.swift b/Tests/TMDbTests/Domain/Services/WatchProviders/Requests/WatchProviderRegionsRequestTests.swift index ac54e1ea..0c1e3aa0 100644 --- a/Tests/TMDbTests/Domain/Services/WatchProviders/Requests/WatchProviderRegionsRequestTests.swift +++ b/Tests/TMDbTests/Domain/Services/WatchProviders/Requests/WatchProviderRegionsRequestTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.requests, .watchProvider)) diff --git a/Tests/TMDbTests/Domain/Services/WatchProviders/Requests/WatchProvidersForMoviesRequestTests.swift b/Tests/TMDbTests/Domain/Services/WatchProviders/Requests/WatchProvidersForMoviesRequestTests.swift index dee5c4d6..6db9fc79 100644 --- a/Tests/TMDbTests/Domain/Services/WatchProviders/Requests/WatchProvidersForMoviesRequestTests.swift +++ b/Tests/TMDbTests/Domain/Services/WatchProviders/Requests/WatchProvidersForMoviesRequestTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.requests, .watchProvider)) diff --git a/Tests/TMDbTests/Domain/Services/WatchProviders/Requests/WatchProvidersForTVSeriesRequestTests.swift b/Tests/TMDbTests/Domain/Services/WatchProviders/Requests/WatchProvidersForTVSeriesRequestTests.swift index bb8320d5..e9d1ff15 100644 --- a/Tests/TMDbTests/Domain/Services/WatchProviders/Requests/WatchProvidersForTVSeriesRequestTests.swift +++ b/Tests/TMDbTests/Domain/Services/WatchProviders/Requests/WatchProvidersForTVSeriesRequestTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.requests, .watchProvider)) diff --git a/Tests/TMDbTests/Domain/Services/WatchProviders/TMDbWatchProviderServiceTests.swift b/Tests/TMDbTests/Domain/Services/WatchProviders/TMDbWatchProviderServiceTests.swift index 875fabae..330aa137 100644 --- a/Tests/TMDbTests/Domain/Services/WatchProviders/TMDbWatchProviderServiceTests.swift +++ b/Tests/TMDbTests/Domain/Services/WatchProviders/TMDbWatchProviderServiceTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.services, .watchProvider)) diff --git a/Tests/TMDbTests/Extensions/DateFormatter+TMDbTests.swift b/Tests/TMDbTests/Extensions/DateFormatter+TMDbTests.swift index 273e49aa..766a5c83 100644 --- a/Tests/TMDbTests/Extensions/DateFormatter+TMDbTests.swift +++ b/Tests/TMDbTests/Extensions/DateFormatter+TMDbTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite diff --git a/Tests/TMDbTests/Extensions/JSONDecoder+TMDbTests.swift b/Tests/TMDbTests/Extensions/JSONDecoder+TMDbTests.swift index 25989de5..591596c9 100644 --- a/Tests/TMDbTests/Extensions/JSONDecoder+TMDbTests.swift +++ b/Tests/TMDbTests/Extensions/JSONDecoder+TMDbTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite diff --git a/Tests/TMDbTests/Extensions/JSONEncoder+TMDbTests.swift b/Tests/TMDbTests/Extensions/JSONEncoder+TMDbTests.swift index 5fbe3263..257259b3 100644 --- a/Tests/TMDbTests/Extensions/JSONEncoder+TMDbTests.swift +++ b/Tests/TMDbTests/Extensions/JSONEncoder+TMDbTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite diff --git a/Tests/TMDbTests/Extensions/Sequence+UniquedTests.swift b/Tests/TMDbTests/Extensions/Sequence+UniquedTests.swift index d9667851..e3813e18 100644 --- a/Tests/TMDbTests/Extensions/Sequence+UniquedTests.swift +++ b/Tests/TMDbTests/Extensions/Sequence+UniquedTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite diff --git a/Tests/TMDbTests/Extensions/URL+TMDbTests.swift b/Tests/TMDbTests/Extensions/URL+TMDbTests.swift index 1bfa1387..bb16d8bf 100644 --- a/Tests/TMDbTests/Extensions/URL+TMDbTests.swift +++ b/Tests/TMDbTests/Extensions/URL+TMDbTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite diff --git a/Tests/TMDbTests/Mocks/Models/Certifications+Mocks.swift b/Tests/TMDbTests/Mocks/Models/Certifications+Mocks.swift index 05a79e8a..6a322384 100644 --- a/Tests/TMDbTests/Mocks/Models/Certifications+Mocks.swift +++ b/Tests/TMDbTests/Mocks/Models/Certifications+Mocks.swift @@ -6,7 +6,6 @@ // import Foundation - @testable import TMDb extension Certifications { diff --git a/Tests/TMDbTests/Mocks/Models/Collection+Mocks.swift b/Tests/TMDbTests/Mocks/Models/Collection+Mocks.swift index d0b93bba..feae5da9 100644 --- a/Tests/TMDbTests/Mocks/Models/Collection+Mocks.swift +++ b/Tests/TMDbTests/Mocks/Models/Collection+Mocks.swift @@ -6,7 +6,6 @@ // import Foundation - @testable import TMDb extension Collection { diff --git a/Tests/TMDbTests/Mocks/Models/CollectionImageCollection+Mocks.swift b/Tests/TMDbTests/Mocks/Models/CollectionImageCollection+Mocks.swift index 858d51e3..05ce1e0b 100644 --- a/Tests/TMDbTests/Mocks/Models/CollectionImageCollection+Mocks.swift +++ b/Tests/TMDbTests/Mocks/Models/CollectionImageCollection+Mocks.swift @@ -6,7 +6,6 @@ // import Foundation - @testable import TMDb extension CollectionImageCollection { diff --git a/Tests/TMDbTests/Mocks/Models/CollectionListItem+Mock.swift b/Tests/TMDbTests/Mocks/Models/CollectionListItem+Mock.swift index 0e37e8ca..f0e13da5 100644 --- a/Tests/TMDbTests/Mocks/Models/CollectionListItem+Mock.swift +++ b/Tests/TMDbTests/Mocks/Models/CollectionListItem+Mock.swift @@ -6,7 +6,6 @@ // import Foundation - @testable import TMDb extension CollectionListItem { diff --git a/Tests/TMDbTests/Mocks/Models/CollectionTranslation+Mocks.swift b/Tests/TMDbTests/Mocks/Models/CollectionTranslation+Mocks.swift index 5e234b40..d9674c55 100644 --- a/Tests/TMDbTests/Mocks/Models/CollectionTranslation+Mocks.swift +++ b/Tests/TMDbTests/Mocks/Models/CollectionTranslation+Mocks.swift @@ -6,7 +6,6 @@ // import Foundation - @testable import TMDb extension CollectionTranslation { diff --git a/Tests/TMDbTests/Mocks/Models/ContentRatingResult+Mocks.swift b/Tests/TMDbTests/Mocks/Models/ContentRatingResult+Mocks.swift index 381be03b..406f065c 100644 --- a/Tests/TMDbTests/Mocks/Models/ContentRatingResult+Mocks.swift +++ b/Tests/TMDbTests/Mocks/Models/ContentRatingResult+Mocks.swift @@ -6,7 +6,6 @@ // import Foundation - @testable import TMDb extension ContentRatingResult { diff --git a/Tests/TMDbTests/Mocks/Models/Creator+Mocks.swift b/Tests/TMDbTests/Mocks/Models/Creator+Mocks.swift index 298c7e56..8aca008b 100644 --- a/Tests/TMDbTests/Mocks/Models/Creator+Mocks.swift +++ b/Tests/TMDbTests/Mocks/Models/Creator+Mocks.swift @@ -6,7 +6,6 @@ // import Foundation - @testable import TMDb extension Creator { diff --git a/Tests/TMDbTests/Mocks/Models/FindResults+Mocks.swift b/Tests/TMDbTests/Mocks/Models/FindResults+Mocks.swift index d0a6c23d..ca361eae 100644 --- a/Tests/TMDbTests/Mocks/Models/FindResults+Mocks.swift +++ b/Tests/TMDbTests/Mocks/Models/FindResults+Mocks.swift @@ -6,7 +6,6 @@ // import Foundation - @testable import TMDb extension FindResults { diff --git a/Tests/TMDbTests/Mocks/Models/Genre+Mocks.swift b/Tests/TMDbTests/Mocks/Models/Genre+Mocks.swift index 5733921a..e774f417 100644 --- a/Tests/TMDbTests/Mocks/Models/Genre+Mocks.swift +++ b/Tests/TMDbTests/Mocks/Models/Genre+Mocks.swift @@ -6,7 +6,6 @@ // import Foundation - @testable import TMDb extension Genre { diff --git a/Tests/TMDbTests/Mocks/Models/GenreList+Mocks.swift b/Tests/TMDbTests/Mocks/Models/GenreList+Mocks.swift index 9888d3bc..f0af221e 100644 --- a/Tests/TMDbTests/Mocks/Models/GenreList+Mocks.swift +++ b/Tests/TMDbTests/Mocks/Models/GenreList+Mocks.swift @@ -6,7 +6,6 @@ // import Foundation - @testable import TMDb extension GenreList { diff --git a/Tests/TMDbTests/Mocks/Models/GuestSession+Mocks.swift b/Tests/TMDbTests/Mocks/Models/GuestSession+Mocks.swift index 7e581af9..32f2a3a9 100644 --- a/Tests/TMDbTests/Mocks/Models/GuestSession+Mocks.swift +++ b/Tests/TMDbTests/Mocks/Models/GuestSession+Mocks.swift @@ -6,7 +6,6 @@ // import Foundation - @testable import TMDb extension GuestSession { diff --git a/Tests/TMDbTests/Mocks/Models/Movie+Mocks.swift b/Tests/TMDbTests/Mocks/Models/Movie+Mocks.swift index 02713850..406a6989 100644 --- a/Tests/TMDbTests/Mocks/Models/Movie+Mocks.swift +++ b/Tests/TMDbTests/Mocks/Models/Movie+Mocks.swift @@ -6,7 +6,6 @@ // import Foundation - @testable import TMDb extension Movie { diff --git a/Tests/TMDbTests/Mocks/Models/MovieCastCredit+Mocks.swift b/Tests/TMDbTests/Mocks/Models/MovieCastCredit+Mocks.swift index 1030b694..04173a2a 100644 --- a/Tests/TMDbTests/Mocks/Models/MovieCastCredit+Mocks.swift +++ b/Tests/TMDbTests/Mocks/Models/MovieCastCredit+Mocks.swift @@ -6,7 +6,6 @@ // import Foundation - @testable import TMDb extension MovieCastCredit { diff --git a/Tests/TMDbTests/Mocks/Models/MovieCrewCredit+Mocks.swift b/Tests/TMDbTests/Mocks/Models/MovieCrewCredit+Mocks.swift index 0ce216f8..2a4735ce 100644 --- a/Tests/TMDbTests/Mocks/Models/MovieCrewCredit+Mocks.swift +++ b/Tests/TMDbTests/Mocks/Models/MovieCrewCredit+Mocks.swift @@ -6,7 +6,6 @@ // import Foundation - @testable import TMDb extension MovieCrewCredit { diff --git a/Tests/TMDbTests/Mocks/Models/MovieExternalLinksCollection+Mocks.swift b/Tests/TMDbTests/Mocks/Models/MovieExternalLinksCollection+Mocks.swift index da285e92..d91c2c96 100644 --- a/Tests/TMDbTests/Mocks/Models/MovieExternalLinksCollection+Mocks.swift +++ b/Tests/TMDbTests/Mocks/Models/MovieExternalLinksCollection+Mocks.swift @@ -6,7 +6,6 @@ // import Foundation - @testable import TMDb extension MovieExternalLinksCollection { diff --git a/Tests/TMDbTests/Mocks/Models/MovieListItem+Mocks.swift b/Tests/TMDbTests/Mocks/Models/MovieListItem+Mocks.swift index 61cbfb57..f47fc11c 100644 --- a/Tests/TMDbTests/Mocks/Models/MovieListItem+Mocks.swift +++ b/Tests/TMDbTests/Mocks/Models/MovieListItem+Mocks.swift @@ -6,7 +6,6 @@ // import Foundation - @testable import TMDb extension MovieListItem { diff --git a/Tests/TMDbTests/Mocks/Models/MovieReleaseDatesByCountry+Mocks.swift b/Tests/TMDbTests/Mocks/Models/MovieReleaseDatesByCountry+Mocks.swift index ec8bafcb..2ed50a52 100644 --- a/Tests/TMDbTests/Mocks/Models/MovieReleaseDatesByCountry+Mocks.swift +++ b/Tests/TMDbTests/Mocks/Models/MovieReleaseDatesByCountry+Mocks.swift @@ -6,7 +6,6 @@ // import Foundation - @testable import TMDb extension MovieReleaseDatesByCountry { diff --git a/Tests/TMDbTests/Mocks/Models/MovieReleaseDatesResult+Mocks.swift b/Tests/TMDbTests/Mocks/Models/MovieReleaseDatesResult+Mocks.swift index d9dc6896..3fc27c97 100644 --- a/Tests/TMDbTests/Mocks/Models/MovieReleaseDatesResult+Mocks.swift +++ b/Tests/TMDbTests/Mocks/Models/MovieReleaseDatesResult+Mocks.swift @@ -6,7 +6,6 @@ // import Foundation - @testable import TMDb extension MovieReleaseDatesResult { diff --git a/Tests/TMDbTests/Mocks/Models/PersonExternalLinksCollection+Mocks.swift b/Tests/TMDbTests/Mocks/Models/PersonExternalLinksCollection+Mocks.swift index b7d2ac83..7d92b181 100644 --- a/Tests/TMDbTests/Mocks/Models/PersonExternalLinksCollection+Mocks.swift +++ b/Tests/TMDbTests/Mocks/Models/PersonExternalLinksCollection+Mocks.swift @@ -6,7 +6,6 @@ // import Foundation - @testable import TMDb extension PersonExternalLinksCollection { diff --git a/Tests/TMDbTests/Mocks/Models/ReleaseDate+Mocks.swift b/Tests/TMDbTests/Mocks/Models/ReleaseDate+Mocks.swift index f000e570..540c3809 100644 --- a/Tests/TMDbTests/Mocks/Models/ReleaseDate+Mocks.swift +++ b/Tests/TMDbTests/Mocks/Models/ReleaseDate+Mocks.swift @@ -6,7 +6,6 @@ // import Foundation - @testable import TMDb extension ReleaseDate { diff --git a/Tests/TMDbTests/Mocks/Models/ShowCastCredit+Mocks.swift b/Tests/TMDbTests/Mocks/Models/ShowCastCredit+Mocks.swift index 8d025082..f1bd509b 100644 --- a/Tests/TMDbTests/Mocks/Models/ShowCastCredit+Mocks.swift +++ b/Tests/TMDbTests/Mocks/Models/ShowCastCredit+Mocks.swift @@ -6,7 +6,6 @@ // import Foundation - @testable import TMDb extension ShowCastCredit { diff --git a/Tests/TMDbTests/Mocks/Models/ShowCrewCredit+Mocks.swift b/Tests/TMDbTests/Mocks/Models/ShowCrewCredit+Mocks.swift index dc80b1f9..5a70df62 100644 --- a/Tests/TMDbTests/Mocks/Models/ShowCrewCredit+Mocks.swift +++ b/Tests/TMDbTests/Mocks/Models/ShowCrewCredit+Mocks.swift @@ -6,7 +6,6 @@ // import Foundation - @testable import TMDb extension ShowCrewCredit { diff --git a/Tests/TMDbTests/Mocks/Models/ShowWatchProvider+Mocks.swift b/Tests/TMDbTests/Mocks/Models/ShowWatchProvider+Mocks.swift index fce683d3..573a2106 100644 --- a/Tests/TMDbTests/Mocks/Models/ShowWatchProvider+Mocks.swift +++ b/Tests/TMDbTests/Mocks/Models/ShowWatchProvider+Mocks.swift @@ -6,7 +6,6 @@ // import Foundation - @testable import TMDb extension ShowWatchProvider { diff --git a/Tests/TMDbTests/Mocks/Models/ShowWatchProviderResult+Mocks.swift b/Tests/TMDbTests/Mocks/Models/ShowWatchProviderResult+Mocks.swift index 111923df..5d6d512d 100644 --- a/Tests/TMDbTests/Mocks/Models/ShowWatchProviderResult+Mocks.swift +++ b/Tests/TMDbTests/Mocks/Models/ShowWatchProviderResult+Mocks.swift @@ -6,7 +6,6 @@ // import Foundation - @testable import TMDb extension ShowWatchProviderResult { diff --git a/Tests/TMDbTests/Mocks/Models/ShowWatchProvidersByCountry+Mocks.swift b/Tests/TMDbTests/Mocks/Models/ShowWatchProvidersByCountry+Mocks.swift index ff021797..6f6a9892 100644 --- a/Tests/TMDbTests/Mocks/Models/ShowWatchProvidersByCountry+Mocks.swift +++ b/Tests/TMDbTests/Mocks/Models/ShowWatchProvidersByCountry+Mocks.swift @@ -6,7 +6,6 @@ // import Foundation - @testable import TMDb extension ShowWatchProvidersByCountry { diff --git a/Tests/TMDbTests/Mocks/Models/TVSeries+Mocks.swift b/Tests/TMDbTests/Mocks/Models/TVSeries+Mocks.swift index dd13a411..3859a82a 100644 --- a/Tests/TMDbTests/Mocks/Models/TVSeries+Mocks.swift +++ b/Tests/TMDbTests/Mocks/Models/TVSeries+Mocks.swift @@ -6,7 +6,6 @@ // import Foundation - @testable import TMDb extension TVSeries { diff --git a/Tests/TMDbTests/Mocks/Models/TVSeriesCastCredit+Mocks.swift b/Tests/TMDbTests/Mocks/Models/TVSeriesCastCredit+Mocks.swift index cb2a1f47..016b04e7 100644 --- a/Tests/TMDbTests/Mocks/Models/TVSeriesCastCredit+Mocks.swift +++ b/Tests/TMDbTests/Mocks/Models/TVSeriesCastCredit+Mocks.swift @@ -6,7 +6,6 @@ // import Foundation - @testable import TMDb extension TVSeriesCastCredit { diff --git a/Tests/TMDbTests/Mocks/Models/TVSeriesCrewCredit+Mocks.swift b/Tests/TMDbTests/Mocks/Models/TVSeriesCrewCredit+Mocks.swift index 8b42e15c..2b8f623e 100644 --- a/Tests/TMDbTests/Mocks/Models/TVSeriesCrewCredit+Mocks.swift +++ b/Tests/TMDbTests/Mocks/Models/TVSeriesCrewCredit+Mocks.swift @@ -6,7 +6,6 @@ // import Foundation - @testable import TMDb extension TVSeriesCrewCredit { diff --git a/Tests/TMDbTests/Mocks/Models/TVSeriesExternalLinksCollection+Mocks.swift b/Tests/TMDbTests/Mocks/Models/TVSeriesExternalLinksCollection+Mocks.swift index e8332437..95ea2941 100644 --- a/Tests/TMDbTests/Mocks/Models/TVSeriesExternalLinksCollection+Mocks.swift +++ b/Tests/TMDbTests/Mocks/Models/TVSeriesExternalLinksCollection+Mocks.swift @@ -6,7 +6,6 @@ // import Foundation - @testable import TMDb extension TVSeriesExternalLinksCollection { diff --git a/Tests/TMDbTests/Mocks/Models/TVSeriesListItem+Mocks.swift b/Tests/TMDbTests/Mocks/Models/TVSeriesListItem+Mocks.swift index f07d8c9b..02532eb9 100644 --- a/Tests/TMDbTests/Mocks/Models/TVSeriesListItem+Mocks.swift +++ b/Tests/TMDbTests/Mocks/Models/TVSeriesListItem+Mocks.swift @@ -6,7 +6,6 @@ // import Foundation - @testable import TMDb extension TVSeriesListItem { diff --git a/Tests/TMDbTests/Mocks/Models/Token+Mocks.swift b/Tests/TMDbTests/Mocks/Models/Token+Mocks.swift index 71ce775d..7484ec55 100644 --- a/Tests/TMDbTests/Mocks/Models/Token+Mocks.swift +++ b/Tests/TMDbTests/Mocks/Models/Token+Mocks.swift @@ -6,7 +6,6 @@ // import Foundation - @testable import TMDb extension Token { diff --git a/Tests/TMDbTests/Mocks/Models/WatchProviderRegions+Mocks.swift b/Tests/TMDbTests/Mocks/Models/WatchProviderRegions+Mocks.swift index 87dbe36f..73197e5b 100644 --- a/Tests/TMDbTests/Mocks/Models/WatchProviderRegions+Mocks.swift +++ b/Tests/TMDbTests/Mocks/Models/WatchProviderRegions+Mocks.swift @@ -6,7 +6,6 @@ // import Foundation - @testable import TMDb extension WatchProviderRegions { diff --git a/Tests/TMDbTests/Mocks/Models/WatchProviderResult+Mocks.swift b/Tests/TMDbTests/Mocks/Models/WatchProviderResult+Mocks.swift index e848f338..f93f326d 100644 --- a/Tests/TMDbTests/Mocks/Models/WatchProviderResult+Mocks.swift +++ b/Tests/TMDbTests/Mocks/Models/WatchProviderResult+Mocks.swift @@ -6,7 +6,6 @@ // import Foundation - @testable import TMDb extension WatchProviderResult { diff --git a/Tests/TMDbTests/Networking/HTTPClient/HTTPMockClient.swift b/Tests/TMDbTests/Networking/HTTPClient/HTTPMockClient.swift index 0bbef790..286e7ba6 100644 --- a/Tests/TMDbTests/Networking/HTTPClient/HTTPMockClient.swift +++ b/Tests/TMDbTests/Networking/HTTPClient/HTTPMockClient.swift @@ -6,7 +6,6 @@ // import Foundation - @testable import TMDb @MainActor diff --git a/Tests/TMDbTests/Networking/HTTPClient/HTTPRequestMethodTests.swift b/Tests/TMDbTests/Networking/HTTPClient/HTTPRequestMethodTests.swift index ae77d98a..f46e4cad 100644 --- a/Tests/TMDbTests/Networking/HTTPClient/HTTPRequestMethodTests.swift +++ b/Tests/TMDbTests/Networking/HTTPClient/HTTPRequestMethodTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.networking)) diff --git a/Tests/TMDbTests/Networking/Serialisers/TMDbAuthJSONSerialiserTests.swift b/Tests/TMDbTests/Networking/Serialisers/TMDbAuthJSONSerialiserTests.swift index ec10b01e..93a1f254 100644 --- a/Tests/TMDbTests/Networking/Serialisers/TMDbAuthJSONSerialiserTests.swift +++ b/Tests/TMDbTests/Networking/Serialisers/TMDbAuthJSONSerialiserTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.networking)) diff --git a/Tests/TMDbTests/Networking/Serialisers/TMDbJSONSerialiserTests.swift b/Tests/TMDbTests/Networking/Serialisers/TMDbJSONSerialiserTests.swift index 20dedb9b..db979441 100644 --- a/Tests/TMDbTests/Networking/Serialisers/TMDbJSONSerialiserTests.swift +++ b/Tests/TMDbTests/Networking/Serialisers/TMDbJSONSerialiserTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.networking)) diff --git a/Tests/TMDbTests/Networking/TMDbAPIClientTests.swift b/Tests/TMDbTests/Networking/TMDbAPIClientTests.swift index 527b7ecf..5abef954 100644 --- a/Tests/TMDbTests/Networking/TMDbAPIClientTests.swift +++ b/Tests/TMDbTests/Networking/TMDbAPIClientTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb #if canImport(FoundationNetworking) diff --git a/Tests/TMDbTests/Networking/TMDbAPIErrorHTTPStatusCodeTests.swift b/Tests/TMDbTests/Networking/TMDbAPIErrorHTTPStatusCodeTests.swift index 222f7a15..b2708319 100644 --- a/Tests/TMDbTests/Networking/TMDbAPIErrorHTTPStatusCodeTests.swift +++ b/Tests/TMDbTests/Networking/TMDbAPIErrorHTTPStatusCodeTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.networking)) diff --git a/Tests/TMDbTests/Networking/TMDbAPIErrorTests.swift b/Tests/TMDbTests/Networking/TMDbAPIErrorTests.swift index 6f91081f..cb93e0e2 100644 --- a/Tests/TMDbTests/Networking/TMDbAPIErrorTests.swift +++ b/Tests/TMDbTests/Networking/TMDbAPIErrorTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite(.tags(.networking)) diff --git a/Tests/TMDbTests/Resources/json/account-avatar.json b/Tests/TMDbTests/Resources/json/account-avatar.json new file mode 100644 index 00000000..6af0bd06 --- /dev/null +++ b/Tests/TMDbTests/Resources/json/account-avatar.json @@ -0,0 +1,8 @@ +{ + "gravatar": { + "hash": "c9e9fc152ee756a900db85757c29815d" + }, + "tmdb": { + "avatar_path": "/5pF2ecF4fW9v7cEyxJQh8VkJZyL.jpg" + } +} diff --git a/Tests/TMDbTests/Resources/json/cast-role.json b/Tests/TMDbTests/Resources/json/cast-role.json new file mode 100644 index 00000000..3a163c11 --- /dev/null +++ b/Tests/TMDbTests/Resources/json/cast-role.json @@ -0,0 +1,5 @@ +{ + "creditId": "52fe4250c3a36847f80149f3", + "character": "Jack Sparrow", + "episodeCount": 24 +} diff --git a/Tests/TMDbTests/Resources/json/collection-translations-single.json b/Tests/TMDbTests/Resources/json/collection-translations-single.json new file mode 100644 index 00000000..d71fc858 --- /dev/null +++ b/Tests/TMDbTests/Resources/json/collection-translations-single.json @@ -0,0 +1,27 @@ +{ + "id": 10, + "translations": [ + { + "iso_3166_1": "DE", + "iso_639_1": "de", + "name": "Deutsch", + "english_name": "German", + "data": { + "title": "Star Wars Filmreihe", + "overview": "Star Wars™ ist die größte Science-Fiction-Saga aller Zeiten.", + "homepage": "http://www.starwars-union.de" + } + }, + { + "iso_3166_1": "US", + "iso_639_1": "en", + "name": "English", + "english_name": "English", + "data": { + "title": "", + "overview": "An epic space-opera theatrical film series.", + "homepage": "https://www.starwars.com/films" + } + } + ] +} diff --git a/Tests/TMDbTests/Resources/json/crew-job.json b/Tests/TMDbTests/Resources/json/crew-job.json new file mode 100644 index 00000000..90f28022 --- /dev/null +++ b/Tests/TMDbTests/Resources/json/crew-job.json @@ -0,0 +1,5 @@ +{ + "creditId": "52fe4250c3a36847f80149f4", + "job": "Director", + "episodeCount": 12 +} diff --git a/Tests/TMDbTests/Resources/json/find-results.json b/Tests/TMDbTests/Resources/json/find-results.json new file mode 100644 index 00000000..c9cbc347 --- /dev/null +++ b/Tests/TMDbTests/Resources/json/find-results.json @@ -0,0 +1,57 @@ +{ + "movie_results": [ + { + "adult": false, + "backdrop_path": "/fCayJrkfRaCRCTh8GqN30f8oyQF.jpg", + "belongs_to_collection": null, + "budget": 63000000, + "genres": [ + { + "id": 18, + "name": "Drama" + } + ], + "homepage": null, + "id": 550, + "imdb_id": "tt0137523", + "original_language": "en", + "original_title": "Fight Club", + "overview": "A ticking-time-bomb insomniac and a slippery soap salesman channel primal male aggression into a shocking new form of therapy.", + "popularity": 0.5, + "poster_path": null, + "production_companies": [ + { + "id": 508, + "logo_path": "/7PzJdsLGlR7oW4J0J5Xcd0pHGRg.png", + "name": "Regency Enterprises", + "origin_country": "US" + } + ], + "production_countries": [ + { + "iso_3166_1": "US", + "name": "United States of America" + } + ], + "release_date": "1999-10-12", + "revenue": 100853753, + "runtime": 139, + "spoken_languages": [ + { + "iso_639_1": "en", + "name": "English" + } + ], + "status": "Released", + "tagline": "How much can you know about yourself if you've never been in a fight?", + "title": "Fight Club", + "video": false, + "vote_average": 7.8, + "vote_count": 3439 + } + ], + "person_results": [], + "tv_results": [], + "tv_season_results": [], + "tv_episode_results": [] +} diff --git a/Tests/TMDbTests/Resources/json/network-logo.json b/Tests/TMDbTests/Resources/json/network-logo.json new file mode 100644 index 00000000..40e7941c --- /dev/null +++ b/Tests/TMDbTests/Resources/json/network-logo.json @@ -0,0 +1,4 @@ +{ + "file_path": "/tuomPhY2UtuPTqqFnKMVHvSb724.png", + "aspect_ratio": 3.73134328358209 +} diff --git a/Tests/TMDbTests/Resources/json/person-list-item.json b/Tests/TMDbTests/Resources/json/person-list-item.json new file mode 100644 index 00000000..f132f717 --- /dev/null +++ b/Tests/TMDbTests/Resources/json/person-list-item.json @@ -0,0 +1,29 @@ +{ + "adult": false, + "gender": 2, + "id": 287, + "known_for_department": "Acting", + "name": "Brad Pitt", + "original_name": "William Bradley Pitt", + "popularity": 65.732, + "profile_path": "/kU3B75TyRiCgE270EyZnHjfivoq.jpg", + "known_for": [ + { + "media_type": "movie", + "adult": false, + "backdrop_path": "/tkHQ7tnYYUEnqlrKuhufIsSVToU.jpg", + "genre_ids": [27], + "id": 550, + "original_language": "en", + "original_title": "Fight Club", + "overview": "A ticking-time-bomb insomniac and a slippery soap salesman channel primal male aggression into a shocking new form of therapy.", + "popularity": 1080.713, + "poster_path": "/uGyiewQnDHPuiHN9V4k2t9QBPnh.jpg", + "release_date": "1999-10-12", + "title": "Fight Club", + "video": false, + "vote_average": 7.8, + "vote_count": 3439 + } + ] +} diff --git a/Tests/TMDbTests/Resources/json/show-watch-provider.json b/Tests/TMDbTests/Resources/json/show-watch-provider.json new file mode 100644 index 00000000..e1686498 --- /dev/null +++ b/Tests/TMDbTests/Resources/json/show-watch-provider.json @@ -0,0 +1,31 @@ +{ + "link": "https://www.themoviedb.org/movie/550-fight-club/watch", + "flatrate": [ + { + "logo_path": "/t2yyOv40HZeVlLjYsCsPHnWLk4W.jpg", + "provider_id": 8, + "provider_name": "Netflix" + } + ], + "buy": [ + { + "logo_path": "/peURlLlr8jggOwK53fJ5wdQl05y.jpg", + "provider_id": 2, + "provider_name": "Apple TV" + } + ], + "rent": [ + { + "logo_path": "/peURlLlr8jggOwK53fJ5wdQl05y.jpg", + "provider_id": 2, + "provider_name": "Apple TV" + } + ], + "free": [ + { + "logo_path": "/aS2zvJWn9mwiCOeaaCkIh4wleZS.jpg", + "provider_id": 300, + "provider_name": "Pluto TV" + } + ] +} diff --git a/Tests/TMDbTests/Resources/json/tv-season-image-collection.json b/Tests/TMDbTests/Resources/json/tv-season-image-collection.json new file mode 100644 index 00000000..5ced83c0 --- /dev/null +++ b/Tests/TMDbTests/Resources/json/tv-season-image-collection.json @@ -0,0 +1,14 @@ +{ + "id": 3624, + "posters": [ + { + "aspect_ratio": 1.77777777777778, + "file_path": "/fCayJrkfRaCRCTh8GqN30f8oyQF.jpg", + "height": 720, + "iso_639_1": "en", + "vote_average": 5.7, + "vote_count": 957, + "width": 1280 + } + ] +} diff --git a/Tests/TMDbTests/TMDbClientTests.swift b/Tests/TMDbTests/TMDbClientTests.swift index d4d30bca..95a2fe86 100644 --- a/Tests/TMDbTests/TMDbClientTests.swift +++ b/Tests/TMDbTests/TMDbClientTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite diff --git a/Tests/TMDbTests/TMDbConfigurationTests.swift b/Tests/TMDbTests/TMDbConfigurationTests.swift index 74b2acc9..2ad8812a 100644 --- a/Tests/TMDbTests/TMDbConfigurationTests.swift +++ b/Tests/TMDbTests/TMDbConfigurationTests.swift @@ -7,7 +7,6 @@ import Foundation import Testing - @testable import TMDb @Suite diff --git a/Tests/TMDbTests/TestUtils/JSONDecoder+DecodeFromFile.swift b/Tests/TMDbTests/TestUtils/JSONDecoder+DecodeFromFile.swift index 8f12804c..13f29e71 100644 --- a/Tests/TMDbTests/TestUtils/JSONDecoder+DecodeFromFile.swift +++ b/Tests/TMDbTests/TestUtils/JSONDecoder+DecodeFromFile.swift @@ -10,13 +10,13 @@ import Testing extension JSONDecoder { - func decode( + func decode( _: T.Type, fromResource fileName: String, withExtension fileType: String = "json", file _: StaticString = #filePath, line _: UInt = #line - ) throws -> T where T: Decodable { + ) throws -> T { do { let data = try Data(fromResource: fileName, withExtension: fileType) return try decode(T.self, from: data) diff --git a/Tests/TMDbTests/TestUtils/Tags.swift b/Tests/TMDbTests/TestUtils/Tags.swift index 3a85820f..f4060aff 100644 --- a/Tests/TMDbTests/TestUtils/Tags.swift +++ b/Tests/TMDbTests/TestUtils/Tags.swift @@ -16,6 +16,7 @@ extension Tag { @Tag static var models: Self @Tag static var services: Self @Tag static var apiClient: Self + @Tag static var filters: Self @Tag static var decoding: Self @Tag static var encoding: Self