From b6231a4ea8af44626ee94bdd1af27104fe514430 Mon Sep 17 00:00:00 2001 From: DeluxeAlonso Date: Sun, 3 Sep 2023 17:45:16 -0500 Subject: [PATCH 1/2] Adds unit tests for favorite list in account client --- .../Services/AccountClientTests.swift | 70 +++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 NetworkInfrastructure/NetworkInfrastructureTests/Services/AccountClientTests.swift diff --git a/NetworkInfrastructure/NetworkInfrastructureTests/Services/AccountClientTests.swift b/NetworkInfrastructure/NetworkInfrastructureTests/Services/AccountClientTests.swift new file mode 100644 index 00000000..1eb61f89 --- /dev/null +++ b/NetworkInfrastructure/NetworkInfrastructureTests/Services/AccountClientTests.swift @@ -0,0 +1,70 @@ +// +// AccountClientTests.swift +// NetworkInfrastructure-Unit-NetworkInfrastructureTests +// +// Created by Alonso on 3/09/23. +// + +import XCTest +@testable import NetworkInfrastructure + +final class AccountClientTests: XCTestCase { + + private var urlSession: MockURLSession! + private var accountClient: AccountClient! + + override func setUpWithError() throws { + try super.setUpWithError() + urlSession = MockURLSession() + accountClient = AccountClient(session: urlSession) + + } + + override func tearDownWithError() throws { + urlSession = nil + accountClient = nil + try super.tearDownWithError() + } + + func testGetFavoriteListSuccess() throws { + // Arrange + let data = try JSONEncoder().encode(MovieResult(results: [], currentPage: 1, totalPages: 1)) + guard let url = URL(string: "www.google.com") else { + XCTFail("Invalid URL") + return + } + urlSession.dataTaskWithRequestCompletionHandler = (data, HTTPURLResponse(url: url, statusCode: 200, httpVersion: nil, headerFields: nil), nil) + let expectation = XCTestExpectation(description: "Get favorite list success") + // Act + accountClient.getFavoriteList(page: 1, sortBy: .createdAtAsc, sessionId: "", accountId: 1) { result in + switch result { + case .success: + break + case .failure: + XCTFail("Get favorite list error") + } + expectation.fulfill() + } + // Assert + wait(for: [expectation], timeout: 1.0) + } + + func testGetFavoriteListError() throws { + // Arrange + urlSession.dataTaskWithRequestCompletionHandler = (nil, nil, nil) + let expectation = XCTestExpectation(description: "Get favorite list error") + // Act + accountClient.getFavoriteList(page: 1, sortBy: .createdAtAsc, sessionId: "", accountId: 1) { result in + switch result { + case .success: + XCTFail("Get favorite list success") + case .failure: + break + } + expectation.fulfill() + } + // Assert + wait(for: [expectation], timeout: 1.0) + } + +} From 8701e61e2cb5ccefad2f7b3ff88a668c9d93e101 Mon Sep 17 00:00:00 2001 From: DeluxeAlonso Date: Sun, 3 Sep 2023 17:48:47 -0500 Subject: [PATCH 2/2] Adds unit tests for watchlist in account client --- .../Services/AccountClientTests.swift | 41 +++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/NetworkInfrastructure/NetworkInfrastructureTests/Services/AccountClientTests.swift b/NetworkInfrastructure/NetworkInfrastructureTests/Services/AccountClientTests.swift index 1eb61f89..f3b412ff 100644 --- a/NetworkInfrastructure/NetworkInfrastructureTests/Services/AccountClientTests.swift +++ b/NetworkInfrastructure/NetworkInfrastructureTests/Services/AccountClientTests.swift @@ -67,4 +67,45 @@ final class AccountClientTests: XCTestCase { wait(for: [expectation], timeout: 1.0) } + func testGetWatchlistSuccess() throws { + // Arrange + let data = try JSONEncoder().encode(MovieResult(results: [], currentPage: 1, totalPages: 1)) + guard let url = URL(string: "www.google.com") else { + XCTFail("Invalid URL") + return + } + urlSession.dataTaskWithRequestCompletionHandler = (data, HTTPURLResponse(url: url, statusCode: 200, httpVersion: nil, headerFields: nil), nil) + let expectation = XCTestExpectation(description: "Get watchlist success") + // Act + accountClient.getWatchlist(page: 1, sortBy: .createdAtAsc, sessionId: "", accountId: 1) { result in + switch result { + case .success: + break + case .failure: + XCTFail("Get watchlist error") + } + expectation.fulfill() + } + // Assert + wait(for: [expectation], timeout: 1.0) + } + + func testGetWatchlistError() throws { + // Arrange + urlSession.dataTaskWithRequestCompletionHandler = (nil, nil, nil) + let expectation = XCTestExpectation(description: "Get watchlist error") + // Act + accountClient.getWatchlist(page: 1, sortBy: .createdAtAsc, sessionId: "", accountId: 1) { result in + switch result { + case .success: + XCTFail("Get watchlist success") + case .failure: + break + } + expectation.fulfill() + } + // Assert + wait(for: [expectation], timeout: 1.0) + } + }