From 01374e6e29e799a0be00e8c3433f80fc87476f07 Mon Sep 17 00:00:00 2001 From: Adam Young Date: Wed, 15 May 2024 20:17:21 +0100 Subject: [PATCH] TECH DEBT: Tidy models --- .../Models/MovieExternalLinksCollection.swift | 18 ----------- .../PersonExternalLinksCollection.swift | 20 ------------- Sources/TMDb/Domain/Models/TMDbError.swift | 2 ++ .../TVSeriesExternalLinksCollection.swift | 18 ----------- .../Models/PersonCombinedCreditsTests.swift | 30 +++++++++++++++++++ 5 files changed, 32 insertions(+), 56 deletions(-) diff --git a/Sources/TMDb/Domain/Models/MovieExternalLinksCollection.swift b/Sources/TMDb/Domain/Models/MovieExternalLinksCollection.swift index 2df8e56f..4945fdd0 100644 --- a/Sources/TMDb/Domain/Models/MovieExternalLinksCollection.swift +++ b/Sources/TMDb/Domain/Models/MovieExternalLinksCollection.swift @@ -81,24 +81,6 @@ public struct MovieExternalLinksCollection: Identifiable, Codable, Equatable, Ha self.twitter = twitter } - public func hash(into hasher: inout Hasher) { - hasher.combine(id) - hasher.combine(imdb?.id) - hasher.combine(wikiData?.id) - hasher.combine(facebook?.id) - hasher.combine(instagram?.id) - hasher.combine(twitter?.id) - } - - public static func == (lhs: MovieExternalLinksCollection, rhs: MovieExternalLinksCollection) -> Bool { - lhs.id == rhs.id - && lhs.imdb == rhs.imdb - && lhs.wikiData == rhs.wikiData - && lhs.facebook == rhs.facebook - && lhs.instagram == rhs.instagram - && lhs.twitter == rhs.twitter - } - } public extension MovieExternalLinksCollection { diff --git a/Sources/TMDb/Domain/Models/PersonExternalLinksCollection.swift b/Sources/TMDb/Domain/Models/PersonExternalLinksCollection.swift index 31186dfd..b94c21c4 100644 --- a/Sources/TMDb/Domain/Models/PersonExternalLinksCollection.swift +++ b/Sources/TMDb/Domain/Models/PersonExternalLinksCollection.swift @@ -89,26 +89,6 @@ public struct PersonExternalLinksCollection: Identifiable, Codable, Equatable, H self.tikTok = tikTok } - public func hash(into hasher: inout Hasher) { - hasher.combine(id) - hasher.combine(imdb?.id) - hasher.combine(wikiData?.id) - hasher.combine(facebook?.id) - hasher.combine(instagram?.id) - hasher.combine(twitter?.id) - hasher.combine(tikTok?.id) - } - - public static func == (lhs: PersonExternalLinksCollection, rhs: PersonExternalLinksCollection) -> Bool { - lhs.id == rhs.id - && lhs.imdb == rhs.imdb - && lhs.wikiData == rhs.wikiData - && lhs.facebook == rhs.facebook - && lhs.instagram == rhs.instagram - && lhs.twitter == rhs.twitter - && lhs.tikTok == rhs.tikTok - } - } public extension PersonExternalLinksCollection { diff --git a/Sources/TMDb/Domain/Models/TMDbError.swift b/Sources/TMDb/Domain/Models/TMDbError.swift index 48d86d8e..ae20b78e 100644 --- a/Sources/TMDb/Domain/Models/TMDbError.swift +++ b/Sources/TMDb/Domain/Models/TMDbError.swift @@ -55,7 +55,9 @@ public enum TMDbError: Equatable, LocalizedError, Sendable { public extension TMDbError { + /// /// A localized message describing what error occurred. + /// var errorDescription: String? { switch self { case .notFound: diff --git a/Sources/TMDb/Domain/Models/TVSeriesExternalLinksCollection.swift b/Sources/TMDb/Domain/Models/TVSeriesExternalLinksCollection.swift index 771a5ac2..c0a23ea2 100644 --- a/Sources/TMDb/Domain/Models/TVSeriesExternalLinksCollection.swift +++ b/Sources/TMDb/Domain/Models/TVSeriesExternalLinksCollection.swift @@ -81,24 +81,6 @@ public struct TVSeriesExternalLinksCollection: Identifiable, Codable, Equatable, self.twitter = twitter } - public func hash(into hasher: inout Hasher) { - hasher.combine(id) - hasher.combine(imdb?.id) - hasher.combine(wikiData?.id) - hasher.combine(facebook?.id) - hasher.combine(instagram?.id) - hasher.combine(twitter?.id) - } - - public static func == (lhs: TVSeriesExternalLinksCollection, rhs: TVSeriesExternalLinksCollection) -> Bool { - lhs.id == rhs.id - && lhs.imdb == rhs.imdb - && lhs.wikiData == rhs.wikiData - && lhs.facebook == rhs.facebook - && lhs.instagram == rhs.instagram - && lhs.twitter == rhs.twitter - } - } public extension TVSeriesExternalLinksCollection { diff --git a/Tests/TMDbTests/Domain/Models/PersonCombinedCreditsTests.swift b/Tests/TMDbTests/Domain/Models/PersonCombinedCreditsTests.swift index c82d04f5..08f73b61 100644 --- a/Tests/TMDbTests/Domain/Models/PersonCombinedCreditsTests.swift +++ b/Tests/TMDbTests/Domain/Models/PersonCombinedCreditsTests.swift @@ -31,6 +31,36 @@ final class PersonCombinedCreditsTests: XCTestCase { XCTAssertEqual(result.crew, personCombinedCredits.crew) } + func testAllShows() { + let credits = PersonCombinedCredits( + id: 1, + cast: [ + .movie(Movie(id: 1, title: "Movie 1")), + .movie(Movie(id: 2, title: "Movie 2")), + .tvSeries(TVSeries(id: 11, name: "TV 1")), + .tvSeries(TVSeries(id: 12, name: "TV 2")) + ], + crew: [ + .movie(Movie(id: 1, title: "Movie 1")), + .movie(Movie(id: 3, title: "Movie 3")), + .tvSeries(TVSeries(id: 11, name: "TV 1")), + .tvSeries(TVSeries(id: 13, name: "TV 3")) + ] + ) + let expectedResult: [Show] = [ + .movie(Movie(id: 1, title: "Movie 1")), + .movie(Movie(id: 2, title: "Movie 2")), + .movie(Movie(id: 3, title: "Movie 3")), + .tvSeries(TVSeries(id: 11, name: "TV 1")), + .tvSeries(TVSeries(id: 12, name: "TV 2")), + .tvSeries(TVSeries(id: 13, name: "TV 3")) + ].sorted { $0.id < $1.id } + + let result = credits.allShows.sorted { $0.id < $1.id } + + XCTAssertEqual(result, expectedResult) + } + // swiftlint:disable line_length private let personCombinedCredits = PersonCombinedCredits( id: 287,